mirror of
https://github.com/godotengine/godot.git
synced 2024-12-27 11:24:59 +08:00
79d3e090cd
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. |
||
---|---|---|
.. | ||
dummy | ||
environment | ||
renderer_rd | ||
storage | ||
renderer_canvas_cull.cpp | ||
renderer_canvas_cull.h | ||
renderer_canvas_render.cpp | ||
renderer_canvas_render.h | ||
renderer_compositor.cpp | ||
renderer_compositor.h | ||
renderer_geometry_instance.cpp | ||
renderer_geometry_instance.h | ||
renderer_scene_cull.cpp | ||
renderer_scene_cull.h | ||
renderer_scene_occlusion_cull.cpp | ||
renderer_scene_occlusion_cull.h | ||
renderer_scene_render.cpp | ||
renderer_scene_render.h | ||
renderer_viewport.cpp | ||
renderer_viewport.h | ||
rendering_device_binds.cpp | ||
rendering_device_binds.h | ||
rendering_device.cpp | ||
rendering_device.h | ||
rendering_method.cpp | ||
rendering_method.h | ||
rendering_server_default.cpp | ||
rendering_server_default.h | ||
rendering_server_globals.cpp | ||
rendering_server_globals.h | ||
SCsub | ||
shader_compiler.cpp | ||
shader_compiler.h | ||
shader_language.cpp | ||
shader_language.h | ||
shader_preprocessor.cpp | ||
shader_preprocessor.h | ||
shader_types.cpp | ||
shader_types.h | ||
shader_warnings.cpp | ||
shader_warnings.h |