summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_scene_gles3.cpp
AgeCommit message (Collapse)Author
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
2022-06-22Precompute on the CPU as much as possible for the Cubemap filter shaderclayjohn
2022-06-17Introduce eye_offset for correcting stereoscopic reflectionsBastiaan Olij
Use view instead of vertex for reflections.
2022-06-14Implement MultiMesh in 3D and flesh out MultiMesh functionsclayjohn
2022-06-07Initial TAA implementationjfons
Initial TAA support based on the implementation in Spartan Engine. Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
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-19Fix sky updating when DirectionalLight mode changed and shader compatibility ↵clayjohn
for certain drivers
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-12Basic 3D renderingclayjohn
2022-05-11SceneShader compilingclayjohn
2022-05-11SkyShaders workingclayjohn
2022-05-03Rename Basis get_axis to get_column, remove redundant methodsAaron Franke
2022-04-28Fix typo after #60503Rémi Verschelde
2022-04-28Merge pull request #60503 from clayjohn/OPENGL-3DRémi Verschelde
2022-04-26Fix "ortogonal" -> "orthogonal" typo in rasterizer codeHugo Locurcio
2022-04-26Overhaul GLES3: Add basis for 3D renderer, overhaul materials and texturesclayjohn
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-01-20add support for glow mapsAnsraer
2022-01-17Allow using between 1 and 8 cascades for SDFGIHugo Locurcio
This provides more flexibility between performance and quality adjustments, especially when using SDFGI for small-scale levels (which can be useful for procedurally generated scenes).
2022-01-11New OpenGL batching canvas rendererclayjohn
2022-01-05Added material_overlay property to MeshInstance3DFernando Cosentino
Applying overlay materials into multi-surface meshes currently requires adding a next pass material to all the surfaces, which might be cumbersome when the material is to be applied to a range of different geometries. This also makes it not trivial to use AnimationPlayer to control the material in case of visual effects. The material_override property is not an option as it works replacing the active material for the surfaces, not adding a new pass. This commit adds the material_overlay property to GeometryInstance3D (and therefore MeshInstance3D), having the same reach as material_override (that is, all surfaces) but adding a new material pass on top of the active materials, instead of replacing them.
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde
2022-01-04Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio
This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.