1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-30 16:26:50 +00:00

CPUParticles2D - fix interpolated transforms and culling

1) Physics interpolated particles in global mode are specified in global space. In VisualServer they should therefore ignore local transform.

2) Additionally, the expected final_transform should be passed on to children, rather than the identity transform used on the local item.

3) Local bounds in hierarchical culling are fixed for items using identity transform, by calculating their local bound in local space from the global space particles.
This commit is contained in:
lawnjelly
2023-08-22 09:30:32 +01:00
parent 17b403af81
commit 723632a76a
7 changed files with 80 additions and 19 deletions

View File

@@ -1006,7 +1006,7 @@ public:
bool light_masked : 1;
bool on_interpolate_transform_list : 1;
bool interpolated : 1;
bool ignore_parent_xform : 1;
bool use_identity_xform : 1;
mutable bool custom_rect : 1;
mutable bool rect_dirty : 1;
mutable bool bound_dirty : 1;
@@ -1262,7 +1262,7 @@ public:
update_when_visible = false;
on_interpolate_transform_list = false;
interpolated = true;
ignore_parent_xform = false;
use_identity_xform = false;
local_bound_last_update_tick = 0;
}
virtual ~Item() {