summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_scene_gles3.cpp
AgeCommit message (Collapse)Author
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-03Ignore depth draw optimization when using depth draw alpha prepassclayjohn
This is necessary as the scene shader still uses alpha in this case so we can't discard fragments that weren't written to the depth buffer
2022-12-23Merge pull request #69998 from BastiaanOlij/sorting-pivot-4Rémi Verschelde
Added options for sorting transparent objects (port of PR #63040)
2022-12-23Added options for sorting transparent objects (port of PR 63040)Bastiaan Olij
2022-12-15Flip culling when rendering a camera with negative scaleLyuma
2022-12-13Remove high quality glow as it is not any higher quality than regular glowclayjohn
2022-12-10Invalidate the previous index array after calling glBindVertexArray, as this ↵Malcolm Nixon
call clears the GL_ELEMEMT_ARRAY_BUFFER when changing the state. Update rasterizer_scene_gles3.cpp Fix white-space to match godotengine checks.
2022-12-06Merge pull request #69636 from Malcolmnixon/vulkan-mobile-sky-matrixRémi Verschelde
Fix mobile renderer sky_transform operations
2022-12-06Modified the mobile renderer to apply the sky_transform operations in the ↵Malcolm Nixon
same order as the forward_plus renderer. Update rasterizer_scene_gles3.cpp Apply sky_transform order fix to the gles3 renderer.
2022-12-05Clean up specialization constants in OpenGL scene rendererclayjohn
Also add support for disabling omni and spot lights when not used
2022-12-03Implement CAMERA_VISIBLE_LAYERS as built-in shader variableNumbuhFour
2022-11-29Add Skeletons and Blend Shapes to the OpenGL rendererclayjohn
This uses a similar multipass approach to blend shapes as Godot 3.x, the major difference here is that we need to convert the normals and tangents to octahedral for rendering. Skeletons work the same as the Vulkan renderer except the bones are stored in a texture as they were in 3.x.
2022-11-14Add GPUParticles to the OpenGL3 renderer.clayjohn
This includes collision (2D SDF, Box, Sphere, Heightmap), attraction (Box, Sphere), and all sorting modes. This does not include 3D SDF collisions, trails, or manual emission.
2022-11-09Merge pull request #68440 from clayjohn/redraw-TIMERémi Verschelde
Request redraw in OpenGL3 and mobile renderers when TIME used in shader
2022-11-08Request redraw in OpenGL3 and mobile renderers when TIME used in shaderclayjohn
2022-11-08Add support for OpenGL to OpenXRDavid Snopek
2022-11-03Merge pull request #67770 from clayjohn/GLES3-flip_yRémi Verschelde
Remove depth correction in GLES3 renderer
2022-11-02Bind DirectionalLight buffer to uniform slot even when not usedclayjohn
This avoids a WEBGL error causes PanoramaSkys to fail to render
2022-10-26Fix EXE_BAD_ACCESS caused by optional argumentGordon MacPherson
This argument is now non optional, but this never hits the same bad access. I voted to simplify the code here since the argument is never used optionally in our codebase.
2022-10-22Remove depth correction in GLES3 rendererclayjohn
This code should only have been included in the RD renderer where the depth range is 0 - 1 instead of -1 - 1
2022-10-21Add multiview to the opengl3 driverDavid Snopek
2022-10-12Use radial distance for making LOD decisions.TechnoPorg
Previously, only forward basis distance from the camera was used. This means that unnecessarily high LOD levels were used for objects located to the side of the camera. The distance from the camera origin is now used, independently of direction.
2022-10-04Rename Projection `matrix` to `columns`Aaron Franke
2022-10-04Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij
light and probe elements into storage and reorganise our render_scene method.
2022-09-30Remove ERR_FAIL_COND that never happens in _draw_skyMarkus Sauermann
In the conditional `sky` is always true.
2022-09-29Use `constexpr` in the conditions with template parameters and `sizeof`s to ↵bruvzg
suppress C4127 warnings.
2022-09-19Split rendering driver project setting into renderer_name and ↵clayjohn
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-14Clear last frame directional light buffer when number of lights changes.clayjohn
This ensures that the buffers don't go out of sync.
2022-09-02Merge pull request #65170 from KoBeWi/your_argument_is_TypedArrayRémi Verschelde
2022-09-02Merge pull request #64952 from Chaosus/vs_rename_uniform_to_paramRémi Verschelde
2022-09-01Change Array arguments to TypedArraykobewi
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-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-19Remove requirement to have vertex positions when creating a mesh. Meshes can ↵clayjohn
now be constructed from an index buffer alone
2022-08-12Bind uniform buffer locations for lights even when no lights present to ↵clayjohn
comply with strict webGL drivers
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-01Fix various bugs in GLES3 renderer that stopped it from running on webclayjohn
2022-08-01Initialise singleton in RendererSceneGLES3Bastiaan Olij
2022-07-29Merge pull request #63527 from BastiaanOlij/rework_environmentRémi Verschelde
Restructure environment in render implementation
2022-07-29Restructure environment in render implementationBastiaan Olij
2022-07-28Merge pull request #59840 from Calinou/renderingserver-global-uniform-renameRémi Verschelde
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-28Allow changing mipmap LOD bias when FSR 1.0 scaling is not usedHugo Locurcio
Mipmap LOD bias can be useful to improve the appearance of distant textures without increasing anisotropic filtering (or in situations where anisotropic filtering is not effective). `fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly. The property hint now allows for greater precision as well.
2022-07-27Merge pull request #62364 from clayjohn/GLES3-sky-optimizationRémi Verschelde
2022-07-27Change RendererSceneRender::GeometryInstance so more code is shared among ↵Bastiaan Olij
renderers
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-13Rename soft shadow quality project settings for easier searchingHugo Locurcio
`rendering/quality/shadows` is now `rendering/quality/positional_shadow` to explicitly denote that the settings only affect positional light shadows, not directional light shadows. Shadow atlas settings now contain the word "atlas" for easier searching. Soft shadow quality settings were renamed to contain the word "filter". This makes the settings appear when searching for "filter" in the project settings dialog, like in Godot 3.x.
2022-06-28Split dependency logicBastiaan Olij
Split FOG Split visibility notifier Final cleanup of storage classes