Commit Graph

156 Commits

Author SHA1 Message Date
Hugo Locurcio 0eb06da057 Jitter shadow map dithering pattern across frames when TAA is enabled
This improves shadow quality by reducing the visibility of the noisy
pattern caused by dithering.

This jittering also applies when FSR2 is enabled, as it provides its own
form of temporal antialiasing.

Co-authored-by: Clay John <claynjohn@gmail.com>
2024-09-24 15:52:07 -07:00
Rémi Verschelde 032235b6fc
Merge pull request #95503 from clayjohn/instance_none_crash
Avoid indexing instances without a base in scene cull phase
2024-09-03 11:43:08 +02:00
Ricardo Buring 1728f80e7c Fixed Timestep Interpolation: MultiMesh
Adds fixed timestep interpolation to multimeshes.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-08-18 17:14:59 +02:00
Rémi Verschelde 94e9b2e2af
Merge pull request #95379 from SlashScreen/fix_dir_light_layers
Consider visual layers for DirectionalLight
2024-08-16 10:35:44 +02:00
clayjohn b5fd29e7bc Avoid indexing instances without a base in scene cull phase 2024-08-13 13:02:15 -07:00
Slashscreen 4457b11ff0 Apply patch for considering visual layers for DirectionalLight
Co-authored-by: majikayogames <152851004+majikayogames@users.noreply.github.com>
2024-08-13 08:45:38 -07:00
Ricardo Buring 2f8ab4a654 Fixed Timestep Interpolation (3D)
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
jsjtxietian 97af135f1b Fix mesh instance not updated when changing blend shape values 2024-05-23 12:36:31 +08:00
Rémi Verschelde 258f2705f6
Merge pull request #90440 from Calinou/geometryinstance3d-fix-custom-aabb-assignment
Fix GeometryInstance3D Custom AABB assignment in the editor not working
2024-04-10 14:22:33 +02:00
Rémi Verschelde c59f493620
Merge pull request #89729 from jitspoe/master.shadow_distance_fade_optimization
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-04-10 14:21:56 +02:00
Hugo Locurcio 084b8d1246
Fix GeometryInstance3D Custom AABB assignment in the editor not working
This also fixes error spam when changing Custom AABB on a MeshInstance3D
that has no Mesh resource assigned yet (which is allowed in the editor).
This avoids pitfalls when assigning a custom AABB in a script when
loading meshes at runtime.
2024-04-09 19:02:43 +02:00
Rémi Verschelde a28be933ee
Merge pull request #89398 from clayjohn/visual-debugger-coverage
Increase coverage of timestamps for visual profiler
2024-04-04 14:31:19 +02:00
clayjohn ac6c648645 Increase coverage of timestamps for visual profiler 2024-04-03 19:29:02 -07:00
lawnjelly 691854d589 Jitter raster occlusion camera to reduce false positives.
Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
2024-04-03 12:18:45 +01:00
jitspoe a0969a0931 Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance. 2024-03-25 21:25:56 -04:00
Per Melin 46610117d3 Fix lightmap capture not applied in one octant
GI from probe captures was not applied to dynamic objects in the (-,-,-)
octant of the lightmap. If the object had traveled from a different part
of the lightmap, it would simply not update anymore and kept whatever
ambient light it had from before. If the object on the other hand came
from outside of the lightmap into this octant, it would receive no
ambient light at all.
2024-03-08 12:43:38 +01:00
Bastiaan Olij a5d3d23db4 Fix never ending loop with overlapping probes 2024-03-05 10:07:56 +11:00
Bastiaan Olij 5a98845655 Implement hooks into renderer 2024-02-18 21:54:21 +11:00
lawnjelly 4577dfdb67 Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling takes no account of the camera.
This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
2024-01-30 08:38:31 +00:00
clayjohn 21ade7f0f7 Add DummyShader handling to Dummy RenderingServer to ensure shader parameters are saved in headless export 2024-01-22 13:57:11 -08:00
mrjustaguy 45948dc2c9 Directional 2 Split Shadow Stabilization Fix 2023-10-07 17:55:26 +02:00
Rémi Verschelde f2ba8ec6ca
Merge pull request #81124 from bitsawer/fix_voxelgi_static_lights
Fix VoxelGI static light pairing
2023-10-06 00:24:29 +02:00
A Thousand Ships fdd3d36c6d [Servers] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-25 18:45:30 +02:00
Dario 057367bf4f Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.
Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
2023-09-25 10:37:47 -03:00
bitsawer 5e22ded4c9 Fix VoxelGI static light pairing 2023-08-29 14:58:56 +03:00
Rémi Verschelde faaf27f284
Fix various typos with codespell
Also includes typo fixes from #79993, #80068, #80276, and #80303.

Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
bitsawer 7a9783737a Fix instance uniform data buffer update delay 2023-07-18 12:19:15 +03:00
Bastiaan Olij 1a128fcccd Properly clear material slots on mesh instance when material is freed 2023-05-22 23:00:00 +10:00
dearthdev 53903f07dc Correctly insert lightmap captures and geometries. 2023-05-15 03:05:19 -05:00
Johan Aires Rastén 26aecbfe57 Fix instance uniforms breaking when setting a new mesh.
Fixes #58113
2023-03-04 11:49:18 +01:00
myaaaaaaaaa 6f88392d02 Move some worker_thread_pool.h includes out of header files 2023-02-13 14:02:01 -05:00
clayjohn 56450fb179 Implement cull_mask for decals and lights in mobile and compatibility backends 2023-02-06 12:12:47 -08:00
Rémi Verschelde 3eb1ac9fd2
Merge pull request #72075 from Maran23/extents-to-size
Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal  and GPUParticles*3D
2023-02-01 07:30:09 +01:00
Marius Hanl a59819630d Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and GPUParticles*3D
- Extents are replaced by Size (Size is Extents * 2)
- The UI text displays 'Size'
- Snapping is adjusted to work with Size
- _set and _get handle extents for compatibility

Co-authored-by: ator-dev <dominic.codedeveloper@gmail.com>
2023-01-31 20:04:11 +01:00
Bastiaan Olij 43a63db7cf Fix SSAO/SSIl being applied to reflection probes 2023-01-30 15:20:27 +11:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Rémi Verschelde d5838a06fa
Merge pull request #71709 from clayjohn/decals-lights-sorting
Sort decals and lights based on camera origin
2023-01-20 23:57:55 +01:00
clayjohn a804556ab9 Add mutex when adding geometry instances to the dirty list in the Forward Clustered renderer 2023-01-20 10:34:19 -08:00
clayjohn 49bebf2bfb Sort decals and lights based on camera origin
Also implement sort_offset for decals

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-01-20 09:58:17 -08:00
clayjohn b2a31a3bbf Remove light from dynamic light list when removing scenario 2023-01-17 14:33:15 -08:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
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-05 13:25:55 +01:00
Markus Grafen 041b64ea7e visual instance layers are regarded during shadow culling
Partially cherry-picked from 16517ecb. Todos:
- setting Camera cull_mask should mark affected shadows dirty somehow
2022-12-27 18:43:53 +01:00
Rémi Verschelde f064898956
Merge pull request #70253 from BastiaanOlij/cleanup_sky_render
Cleanup and improve sky render
2022-12-23 23:44:02 +01:00
Bastiaan Olij e886a7af81 Cleanup and improve sky render 2022-12-23 19:45:19 +11:00
Bastiaan Olij 6f4f38db07 Added options for sorting transparent objects (port of PR 63040) 2022-12-23 19:30:33 +11:00
NumbuhFour 1b09fd5410 Implement CAMERA_VISIBLE_LAYERS as built-in shader variable 2022-12-03 22:41:27 -08:00
David Snopek 310bf39cd3 Get WebXR fully working in Godot 4! 2022-12-01 21:46:30 -06:00
clayjohn 21ac6d7d8e Finish implementing Canvas Background mode 2022-11-17 12:51:26 -08:00
Yuri Rubinsky 11e1bac768
Merge pull request #67112 from Chaosus/fix_boolean_uniform_instances 2022-10-28 23:17:23 +03:00
Yuri Rubinsky f4db4bb7a2 Fix incorrect setup of boolean uniform instances 2022-10-09 08:50:18 +03:00