1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

481 Commits

Author SHA1 Message Date
Rémi Verschelde
85e47d6fac Merge pull request #109447 from jon1solution/ssao-in-gles3
Implement a very simple SSAO in GLES3.
2025-11-01 19:04:57 +01:00
clayjohn
2e59cb41f4 Optimize glow and tonemap gather step in the mobile renderer
Mobile devices are typically bandwidth bound which means we need to do as few texture samples as possible.

They typically use TBDR GPUs which means that all rendering takes place on special optimized tiles. As a side effect, reading back memory from tile to VRAM is really slow, especially on Mali devices.

This commit uses a technique where you do a small blur while downsampling, and then another small blur while upsampling to get really high quality glow. While this doesn't reduce the renderpass count very much, it does reduce the texture read bandwidth by almost 10 times. Overall glow was more texture-read bound than memory write, bound, so this was a huge win.

A side effect of this new technique is that we can gather the glow as we upsample instead of gathering the glow in the final tonemap pass. Doing so allows us to significantly reduce the cost of the tonemap pass as well.
2025-10-30 21:56:26 -07:00
jon1solution
31ee691fbf Implemented a very simple SSAO in GLES3. 2025-10-27 06:02:04 -07:00
Skyth
c128886c63 Overhaul screen space reflections. 2025-10-21 19:23:38 +03:00
Clay John
36b92128b1 Merge pull request #110671 from allenwp/environment-glow-consistent
Blend glow before tonemapping and change default to screen.
2025-10-14 21:29:43 -07:00
Allen Pestaluky
cafc012b05 Blend Environment glow before tonemapping and change default blend mode to screen.
Additionally, change the minimum `tonemap_white` parameter to `1.0`; users can increase `tonemap_exposure` for a similar effect to decreasing `tonemap_white` below `1.0`.

Co-authored-by: Hei <40064911+Lielay9@users.noreply.github.com>
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-10-10 12:08:08 -04:00
Allen Pestaluky
bd9d1bf070 Add material debanding for use in Mobile rendering method.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-10-08 16:22:41 -04:00
Thaddeus Crews
cb164a38f2 Merge pull request #107384 from Kaleb-Reid/compat-directional-cull-mask
Implement DirectionalLight3D cull masks in Compatibility
2025-10-07 11:54:42 -05:00
Thaddeus Crews
d1d28c0bcf Merge pull request #111223 from Ivorforce/remove-iterator-include
Replace `std::size` usage with `std_size` to avoid `<iterator>` include.
2025-10-06 09:06:49 -05:00
Thaddeus Crews
12aa435bbb Merge pull request #107740 from Kaleb-Reid/compat-directional-shadow-scatter
Apply sun scatter from lights with shadows in compatibility
2025-10-06 09:06:44 -05:00
Thaddeus Crews
43a9999852 Merge pull request #111260 from devloglogan/compat-motion-vec-fix
Add null check when getting motion vector fbo
2025-10-06 09:06:30 -05:00
Kaleb Reid
79b1a6defc Implement DirectionalLight3D cull masks in Compatibility 2025-10-04 16:08:27 -07:00
Lukas Tenbrink
1db0a60dc0 Replace std::size usage with std_size to avoid <iterator> include. 2025-10-05 00:26:11 +02:00
devloglogan
39c449fc60 Add null check when getting motion vector fbo 2025-10-04 13:18:59 -05:00
Kaleb Reid
e1f19d14dd Always use RenderSceneBuffers to manage backbuffer in Compatibility 3D 2025-10-04 01:06:09 -07:00
Kaleb Reid
c20ab940aa Apply sun scatter from lights with shadows in compatibility 2025-10-04 00:35:31 -07:00
Thaddeus Crews
d9ba9ba3da Merge pull request #97151 from devloglogan/motion-vectors
Implement motion vectors in compatibility renderer
2025-10-03 12:01:10 -05:00
Aaron Franke
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
devloglogan
8fef9a689e Implement motion vectors in compatibility renderer 2025-09-30 09:42:17 -05:00
Lukas Tenbrink
bc7c05bfbd Use an array instead of TightLocalVector in RasterizerSceneGLES3::_render_uv2, to avoid allocation. 2025-09-22 16:16:28 +02:00
João Pedro Xavier
d6aca93c1a Fix bug where material with double-sided shadows ignores backface culling on compatibility renderer 2025-08-19 20:21:10 -07:00
Thaddeus Crews
5787f6fb6a Merge pull request #108044 from apples/107935-stencil-fixes
Fix opaque stencil rendering
2025-07-31 10:39:08 -05:00
brennen
2583aa4a68 Add error check for reflection probe invalid atlas index. 2025-07-10 19:03:21 -05:00
Apples
62a5cd90a7 Fix opaque stencil rendering 2025-07-02 21:49:19 -05:00
Kaleb Reid
e659daf6e0 Always send lights to sky shader if using sun scatter 2025-06-24 14:24:49 -07:00
Apples
d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 -05:00
Apples
7574a5dbb3 Add depth function for spatial materials 2025-06-06 09:21:19 -05:00
Kaleb Reid
bac9427325 Fix sky energy in fog sun scatter + colour space discrepancy in compatibility 2025-06-04 13:59:53 -07:00
Thaddeus Crews
821170f054 Merge pull request #106145 from lander-vr/ambient-light-specular-occlusion
Add specular occlusion from ambient light
2025-05-09 11:29:14 -05:00
landervr
56730d0cb2 Add specular occlusion from ambient light
Co-authored-by: guerro323 <kaltobattle@gmail.com>
2025-05-08 23:52:01 +02:00
Stuart Carnie
7a423ffdc0 GLES3: Fix errors baking light map with compatibility renderer
Helps #102696
2025-05-06 09:02:34 +10:00
Thaddeus Crews
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews
a77a28c029 Merge pull request #101971 from clayjohn/sky-light-size-fix
Pass angular diameter into light size constants for sky shaders.
2025-03-11 09:35:09 -05:00
kleonc
b691a997a3 Fix render info primitive count per TRIANGLE_STRIP 2025-02-15 23:50:07 +01:00
clayjohn
74989c639e Pass angular diameter into light size constants for sky shaders.
This flew under the radar for so long since tan is nearly linear at small values
2025-01-23 17:32:44 -08:00
clayjohn
441fc1cba3 Baked UV2 emission using half float in the compatibility backend
The Lightmapper expects a half float image anyway, so this is both more efficient and correct
2025-01-17 16:46:31 -08:00
Rémi Verschelde
3014eec40d Merge pull request #99407 from devloglogan/rec-resolution
Allow using custom `Rect2i` for rendering with OpenXR
2025-01-10 23:05:46 +01:00
devloglogan
e7f6b7ea0b Allow using custom Rect2i for rendering with OpenXR 2025-01-09 09:46:15 -06:00
Rémi Verschelde
3936d117e4 Merge pull request #100388 from Namey5/gles3-canvas-clear-fix
Fix canvas background mode not clearing correctly in Compatibility renderer
2025-01-03 00:48:38 +01:00
Thaddeus Crews
2fcd8223e8 Merge pull request #99538 from Geometror/lightmap-gi-transparent-surface
Add transparency support for LightmapGI
2024-12-19 19:59:52 -06:00
Alex Threlfo
830f25010f fix: canvas background mode not clearing correctly when using gles3 glow effect 2024-12-20 12:41:08 +11:00
Hendrik Brucker
a3525bc015 Add transparency support for LightmapGI
Co-authored-by: Guerro323 <kaltobattle@gmail.com>
2024-12-18 19:36:16 +01:00
Thaddeus Crews
9ecdeb3723 Merge pull request #98747 from tetrapod00/standardize-renderer-strings
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
Thaddeus Crews
7c015a768f Merge pull request #99958 from lander-vr/reflection-probe-blend-property
Add Blend Distance property to ReflectionProbe
2024-12-12 16:13:32 -06:00
BlueCube3310
189c8eb671 Implement shadowmasks for LightmapGI
Co-authored-by: dearthdev <nathandearthdev@gmail.com>
2024-12-12 11:00:28 +01:00
clayjohn
9320865796 Avoid calculating dynamic lights when lights are baked into LightmapGI using the static bake mode 2024-12-06 10:17:44 -08:00
landervr
05010180ce ReflectionProbe add Blend Distance 2024-12-05 23:29:47 +01:00
Jamie Pate
45a7bcc477 Fix gl_compatibility lightmap uniforms not being set
Fixes #99592

The following variables were set too early, and later code never ran..
prev_shader, prev_variant, prev_spec_constants variables

These variables were shared in two different branch conditions but were
updated inside the first one, so the second could never be true..

The condition to update lighting also should check prev_spec_constants
since it updates that uniform.
2024-11-23 16:43:07 -08:00
clayjohn
90b4b48b5a Ensure shadow material and mesh are not used with wireframe mode
And in the Compatibility renderer actually use the wireframe render mode
2024-11-16 22:25:00 -08:00