Comments (7)
Reclassifying this as a documentation issue. The behaviour is certainly annoying, but its not a bug per se. Godot uses the AABB of the particles to determine what area the particles will reach. Because of the disconnect between GPU data and CPU data, it is possible to create particles that extend outside there AABB.
This creates numerous problems:
- As described here, particles won't register with the collision shape and so the particles will fail to collide
- Particles won't register with lights and so they won't cast shadows
- Particles will become invisible if the AABB is not on screen
MRP where the camera is looking slightly down
All these issues come down to the same fundamental problem: if the AABB isn't an accurate representation of the area covered by your particle effect, then things will break.
I think we should document this problem in more places so that users are aware that they need to manually tweak the AABB when working on custom particle effects
from godot.
Well interestingly enough if you use a height field collision, it will work even if you don't increase the AABB. At least the behaviour should be consistent there, shouldn't it?
from godot.
Well interestingly enough if you use a height field collision, it will work even if you don't increase the AABB. At least the behaviour should be consistent there, shouldn't it?
The behaviour should be consistent, yes. The AABB of the heightfield collider needs to overlap the AABB of the Particles node.
I ran a quick test and can confirm that the height field collision AABB does indeed need to overlap the Particles AABB, just like the other Collision shapes.
Using the same size as the box collider
from godot.
Thank you very much for the explanation! I was referring to this setup, where the particle system AABB and the height field size overlap, but the collision point is actually outside of the particle system AAAB. In this case the collision seemingly still seems to work:
Until the AABB leaves the camera at which time the particle simulation seems to be partially halted (note how the particles are not drawn anymore but their shadows are).
2024-06-25_09-04-58.mp4
So maybe a checklist for the developer could look like this:
- Make sure your particle system AABB is large enough to enclose all surfaces that you want your particles to interact with.
- If you use a height field, its size and positioning should match the AABB of your particle system.
There are probably some other items on the list for tweaking the FPS to prevent tunneling, and I'm also not sure about the the SDF based collision yet, but I'll clarify these in #93570 as to not convolute the discussion here. Again thanks a lot for explaining this!
from godot.
Another question related to that is how AABBs of subemitters are handled. Should they have the same AABB as their parent emitter or do they "inherit" their parent's AABB and their own AABB doesn't matter?
from godot.
Another question related to that is how AABBs of subemitters are handled. Should they have the same AABB as their parent emitter or do they "inherit" their parent's AABB and their own AABB doesn't matter?
I just tested this, and subemitters need to have their AABBs correctly configured, just like their parent. They do not inherit their parent's AABB.
from godot.
That is good to know, thank you very much!
from godot.
Related Issues (20)
- DX12 renderer does not support window transparency HOT 2
- Renaming the Skeleton3D does not correct fix track paths in AnimationPlayer
- Creating a signal with an argument tries to link it before automatically making the function. HOT 3
- Connecting signal from Inspector doesn't create method HOT 1
- 4.2 project getting lagged after 4.3 update HOT 2
- Corrupted scene when moving a GLB file and its animation files HOT 2
- Can't drag things between monitors anymore since 4.3 HOT 6
- CollisionPolygon2D sprite doesn't follow parent when set to "Top Level" while "Visible Collision Shapes" is on, although parent still collides.
- Projectile-like RigidBody3D loses it's initial velocity when launched from non-zero position with specific direction HOT 1
- Tooltip doesn't work behind control node? HOT 6
- Sky goes black after closing a scene and switching to another that uses the same sky material
- @tool script object added to scene do not always get accurately recorded into .tscn HOT 8
- AnimationPlayer dictionary for AnimationLibraries does not accept values after the first
- Inconsistent Copy Behavior in Script Editor when Using Wayland Display Driver HOT 2
- AnimationPlayer's default snap value is 0.0333 HOT 2
- AudioStreamSynchronized.set_sync_stream_volume() doesn't appear in the auto-fill list HOT 4
- Clicking on C# script does not launch Visual Studio anymore in 4.3 HOT 3
- Vulkan ignores VSync setting and leaks memory on Windows.
- C# code leads to crashing the game (instead of just logging an error) HOT 1
- Models randomly deleting(vanishing) and making every other models to dissapear as well
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from godot.