godot/servers/rendering
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
..
dummy Use a giant UBO to optimize performance in 2D 2022-10-06 11:24:45 -07:00
environment Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method. 2022-10-04 11:03:32 +11:00
renderer_rd Vulkan Clustered: Fix culling of negatively-scaled objects 2022-10-10 03:20:59 -04:00
storage Adding getters to RenderTarget and implementing override functionality for XR 2022-10-05 11:37:49 +11:00
renderer_canvas_cull.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_canvas_cull.h Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
renderer_canvas_render.cpp
renderer_canvas_render.h
renderer_compositor.cpp
renderer_compositor.h Use a giant UBO to optimize performance in 2D 2022-10-06 11:24:45 -07:00
renderer_geometry_instance.cpp
renderer_geometry_instance.h
renderer_scene_cull.cpp Fix material overlay overriding shadow casting logic 2022-10-07 10:15:39 -07:00
renderer_scene_cull.h Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method. 2022-10-04 11:03:32 +11:00
renderer_scene_occlusion_cull.cpp
renderer_scene_occlusion_cull.h
renderer_scene_render.cpp
renderer_scene_render.h Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method. 2022-10-04 11:03:32 +11:00
renderer_viewport.cpp Adding getters to RenderTarget and implementing override functionality for XR 2022-10-05 11:37:49 +11:00
renderer_viewport.h Merge pull request #65541 from clayjohn/renderer-setting 2022-09-20 09:43:59 +02:00
rendering_device_binds.cpp
rendering_device_binds.h Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
rendering_device.cpp
rendering_device.h
rendering_method.cpp
rendering_method.h Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method. 2022-10-04 11:03:32 +11:00
rendering_server_default.cpp
rendering_server_default.h Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method. 2022-10-04 11:03:32 +11:00
rendering_server_globals.cpp
rendering_server_globals.h
SCsub
shader_compiler.cpp Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
shader_compiler.h Fix global uniform crash at editor startup 2022-10-03 15:06:20 +03:00
shader_language.cpp Merge pull request #66548 from akien-mga/msvc-warnings-c4701-c4703 2022-09-28 20:47:50 +02:00
shader_language.h Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used 2022-09-28 17:05:34 +02:00
shader_preprocessor.cpp Add defines to completion list in shaders 2022-09-26 16:04:19 +03:00
shader_preprocessor.h Add defines to completion list in shaders 2022-09-26 16:04:19 +03:00
shader_types.cpp Merge pull request #66178 from clayjohn/double-precision-rendering 2022-09-30 09:59:45 +02:00
shader_types.h
shader_warnings.cpp
shader_warnings.h