virtualx-engine/servers/rendering/renderer_rd
Robbie Cooper 79d3e090cd Vulkan Clustered: Fix culling of negatively-scaled objects
Negatively scaled objects should be mirrored. This is already implemented, but it breaks when mirrored and non-mirrored instances of the same object are visible together.

It turns out that the code that skips-over repeats in `RenderForwardClustered::_render_list_template` also skips the code that accounts for the culling mode of mirrored objects.

The solution here is to consider the `mirror` flag when determining repeats. This might result in more draw commands than necessary since a mirrored object can split a group of non-mirrored instances in two.

This problem doesn't appear in the mobile renderer because the repeat optimization isn't implemented there yet.

The problem still appears in MultiMeshInstance3D in *all* renderers.

Fixes #62879 and #58546.
2022-10-10 03:20:59 -04:00
..
effects Merge pull request #66756 from BastiaanOlij/fix_ssr 2022-10-06 22:27:49 +02:00
environment Merge pull request #66683 from clayjohn/SRGB-canvasitem 2022-10-05 11:44:52 +02:00
forward_clustered Vulkan Clustered: Fix culling of negatively-scaled objects 2022-10-10 03:20:59 -04:00
forward_mobile Merge pull request #66922 from BastiaanOlij/fix_direct_shadow 2022-10-05 13:38:24 +02:00
shaders Fixing artifacts in SSR 2022-10-04 23:47:13 +11:00
storage_rd Merge pull request #66683 from clayjohn/SRGB-canvasitem 2022-10-05 11:44:52 +02:00
cluster_builder_rd.cpp Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
cluster_builder_rd.h Rename str2var to str_to_var and similar 2022-08-26 14:58:22 +02:00
effects_rd.cpp Extracting render buffers and changing it to a more generic solution 2022-09-01 20:01:45 +10:00
effects_rd.h Extracting render buffers and changing it to a more generic solution 2022-09-01 20:01:45 +10:00
framebuffer_cache_rd.cpp Add a Framebuffer cache 2022-08-05 13:37:29 +02:00
framebuffer_cache_rd.h Extracting render buffers and changing it to a more generic solution 2022-09-01 20:01:45 +10:00
pipeline_cache_rd.cpp Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
pipeline_cache_rd.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
renderer_canvas_render_rd.cpp Allow clearing backbuffer after finishing CanvasGroup 2022-10-07 14:13:40 -07:00
renderer_canvas_render_rd.h Rename uniform to parameter across the engine 2022-09-01 11:42:57 +03:00
renderer_compositor_rd.cpp Adding getters to RenderTarget and implementing override functionality for XR 2022-10-05 11:37:49 +11:00
renderer_compositor_rd.h Add a Framebuffer cache 2022-08-05 13:37:29 +02:00
renderer_scene_render_rd.cpp Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
renderer_scene_render_rd.h Moving SSEffects settings into class 2022-10-04 11:03:36 +11:00
SCsub Split GI effects and fix stereoscopic rendering of GI effects 2022-06-22 12:50:17 +10:00
shader_rd.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
shader_rd.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
uniform_set_cache_rd.cpp
uniform_set_cache_rd.h Add a Framebuffer cache 2022-08-05 13:37:29 +02:00