summaryrefslogtreecommitdiff
path: root/drivers/gles3/storage
AgeCommit message (Collapse)Author
2022-09-02Merge pull request #64952 from Chaosus/vs_rename_uniform_to_paramRémi Verschelde
2022-09-01Extracting render buffers and changing it to a more generic solutionBastiaan Olij
2022-09-01Rename `uniform` to `parameter` across the engineYuri Rubinsky
2022-08-31Implement Physical Light Units as an optional setting.clayjohn
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value. In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-30Add a per-light volumetric fog energy propertyHugo Locurcio
Per-light energy gives more control to the user on the final result of volumetric fog. Specific lights can be fully excluded from volumetric fog by setting their volumetric fog energy to 0, which improves performance slightly. This can also be used to prevent short-lived dynamic effects from poorly interacting with volumetric fog, as it's updated over several frames by default unless temporal reprojection is disabled. Volumetric fog shadows now obey Light3D's Shadow Opacity property as well. The shadow fog fade property was removed as it had little visible impact on the final scene's rendering.
2022-08-30Merge pull request #63003 from Geometror/msaa-2dRémi Verschelde
2022-08-26Merge pull request #64367 from Mickeon/rename-var-to-strRémi Verschelde
Rename `str2var` to `str_to_var` and similar
2022-08-26Rename `str2var` to `str_to_var` and similarMicky
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too. - `var2str` -> `var_to_str` - `str2var` -> `str_to_var` - `bytes2var` -> `bytes_to_var` - `bytes2var_with_objects` -> `bytes_to_var_with_objects` - `var2bytes` -> `var_to_bytes` - `var2bytes_with_objects` -> `var_to_bytes_with_objects` - `linear2db` -> `linear_to_db` - `db2linear` -> `db_to_linear` - `deg2rad` -> `deg_to_rad` - `rad2deg` -> `rad_to_deg` - `dict2inst` -> `dict_to_inst` - `inst2dict` -> `inst_to_dict`
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-08-22Merge pull request #60309 from The-O-King/octRémi Verschelde
2022-08-20Merge pull request #62046 from clayjohn/vertexless-drawMax Hilbrunner
Allow creating meshes without vertex positions
2022-08-19Remove requirement to have vertex positions when creating a mesh. Meshes can ↵clayjohn
now be constructed from an index buffer alone
2022-08-19Merge pull request #64167 from clayjohn/screen-texture-hintMax Hilbrunner
Add shader uniform hints for screen textures
2022-08-18Use a const ref for the bone AABB in rendering codeAaron Franke
2022-08-14Don't try to merge unused bone AABBs in the rendering serverAaron Franke
2022-08-13Implement Octahedral on OpenGL3Omar El Sheikh
2022-08-13Implement MSAA for 2D [Vulkan only]Hendrik Brucker
2022-08-09Add shader uniform hints for screen textures so users can specify custom ↵clayjohn
filter and repeat modes. At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture. In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-08Fix macOS and iOS defines in the rendering code.bruvzg
2022-08-07Add a shadow opacity property to Light3DHugo Locurcio
This can be used to make shadows translucent for a specific light. The light distance fade system also uses this to smoothly fade the shadow when the light fade transition distance is greater than 0.
2022-08-04Rename shader parameter uniform setter/getter methods for consistencyHugo Locurcio
`shader_uniform` is now consistenly used across both per-shader and per-instance shader uniform methods. This makes methods easier to find in the class reference when looking for them.
2022-08-04Force disable S3TC support on Android/iOS since we don't handle itRémi Verschelde
Fixes #63909 for now. This could be improved in the future if we want to properly support S3TC on mobile.
2022-08-02Add spatial built-ins (camera-pos, object-pos, camera-eye etc.)Patrick Exner
2022-08-02Merge pull request #51672 from Calinou/shader-add-hint-transparent-textureRémi Verschelde
Add `hint_transparent` to use a transparent black placeholder texture
2022-08-01Add `hint_transparent` to use a transparent black placeholder textureHugo Locurcio
This can be used in shaders to avoid the need to supply a transparent placeholder texture manually.
2022-08-01Fix various bugs in GLES3 renderer that stopped it from running on webclayjohn
2022-08-01Fix passing values to the instance uniforms in the shaderYuri Rubinsky
2022-07-29fix 'Comparison result is always the same' warningsLinuxUserGD
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-27Fix `FOG` built-in in spatial/fragment shaderYuri Rubinsky
2022-07-26Implement shader uniform groups/subgroupsYuri Rubinsky
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-22Clean up Shader Preprocessorreduz
* Moved preprocessor to Shader and ShaderInclude * Clean up RenderingServer side * Preprocessor is separate from parser now, but it emits tokens with include location hints. * Improved ShaderEditor validation code * Added include file code completion * Added notification for all files affected by a broken include.
2022-07-18added usage_defines for SPECULAR_SHININESSDavid R
added usage defines for opengl3 renderer
2022-07-17Adding Variable Rate Shading support to GodotBastiaan Olij
Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
2022-07-06Prevent possible crash when mesh is freedYuri Rubinsky
2022-06-28Split dependency logicBastiaan Olij
Split FOG Split visibility notifier Final cleanup of storage classes
2022-06-14Implement MultiMesh in 3D and flesh out MultiMesh functionsclayjohn
2022-05-26Merge pull request #61425 from clayjohn/GLES3-2DRémi Verschelde
2022-05-25Implement 2D Meshes and MultiMeshes in GLES3 backendclayjohn
2022-05-24Merge pull request #60641 from clayjohn/Sky-ignRémi Verschelde
Use IGN instead of white noise for sky dithering
2022-05-24Add clipping, backbuffer, and CanvasGroups to 2D GLES3 rendererclayjohn
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
2022-05-24Use IGN instead of white noise for sky ditheringclayjohn
2022-05-24Merge pull request #60803 from Chaosus/shader_hint_renameRémi Verschelde
Rename `hint_albedo`, `hint_white/black` in shaders
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-16Add basic lighting to GLES3 renderer.clayjohn
This includes all three light types and IBL, but does not include shadows or any form of GI
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-13Merge pull request #60894 from derammo/derammo_opengl3_windowsRémi Verschelde