Implement GPU Particle Collisions

-Sphere Attractor
-Box Attractor
-Vector Field
-Sphere Collider
-Box Collider
-Baked SDF Collider
-Heightmap Collider
This commit is contained in:
reduz 2020-10-07 21:29:49 -03:00
parent c35005ba25
commit 26f5bd245c
32 changed files with 2947 additions and 102 deletions

View file

@ -452,6 +452,7 @@ public:
BIND1(particles_restart, RID)
BIND6(particles_emit, RID, const Transform &, const Vector3 &, const Color &, const Color &, uint32_t)
BIND2(particles_set_subemitter, RID, RID)
BIND2(particles_set_collision_base_size, RID, float)
BIND2(particles_set_draw_order, RID, RS::ParticlesDrawOrder)
@ -461,6 +462,21 @@ public:
BIND1R(AABB, particles_get_current_aabb, RID)
BIND2(particles_set_emission_transform, RID, const Transform &)
/* PARTICLES COLLISION */
BIND0R(RID, particles_collision_create)
BIND2(particles_collision_set_collision_type, RID, ParticlesCollisionType)
BIND2(particles_collision_set_cull_mask, RID, uint32_t)
BIND2(particles_collision_set_sphere_radius, RID, float)
BIND2(particles_collision_set_box_extents, RID, const Vector3 &)
BIND2(particles_collision_set_attractor_strength, RID, float)
BIND2(particles_collision_set_attractor_directionality, RID, float)
BIND2(particles_collision_set_attractor_attenuation, RID, float)
BIND2(particles_collision_set_field_texture, RID, RID)
BIND1(particles_collision_height_field_update, RID)
BIND2(particles_collision_set_height_field_resolution, RID, ParticlesCollisionHeightfieldResolution)
#undef BINDBASE
//from now on, calls forwarded to this singleton
#define BINDBASE RSG::scene