Fix GPUParticles3D generate AABB

This commit is contained in:
CaptainProton42 2021-09-25 17:35:56 +02:00
parent 46cc0af5c5
commit dd70daafba
2 changed files with 2 additions and 5 deletions

View file

@ -4352,10 +4352,8 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
total_amount *= particles->trail_bind_poses.size(); total_amount *= particles->trail_bind_poses.size();
} }
Vector<ParticleData> data;
data.resize(total_amount);
Vector<uint8_t> buffer = RD::get_singleton()->buffer_get_data(particles->particle_buffer); Vector<uint8_t> buffer = RD::get_singleton()->buffer_get_data(particles->particle_buffer);
ERR_FAIL_COND_V(buffer.size() != (int)(total_amount * sizeof(ParticleData)), AABB());
Transform3D inv = particles->emission_transform.affine_inverse(); Transform3D inv = particles->emission_transform.affine_inverse();
@ -4363,7 +4361,7 @@ AABB RendererStorageRD::particles_get_current_aabb(RID p_particles) {
if (buffer.size()) { if (buffer.size()) {
bool first = true; bool first = true;
const ParticleData *particle_data = (const ParticleData *)data.ptr(); const ParticleData *particle_data = reinterpret_cast<const ParticleData *>(buffer.ptr());
for (int i = 0; i < total_amount; i++) { for (int i = 0; i < total_amount; i++) {
if (particle_data[i].active) { if (particle_data[i].active) {
Vector3 pos = Vector3(particle_data[i].xform[12], particle_data[i].xform[13], particle_data[i].xform[14]); Vector3 pos = Vector3(particle_data[i].xform[12], particle_data[i].xform[13], particle_data[i].xform[14]);

View file

@ -621,7 +621,6 @@ private:
float color[4]; float color[4];
float custom[3]; float custom[3];
float lifetime; float lifetime;
uint32_t pad[3];
}; };
struct ParticlesFrameParams { struct ParticlesFrameParams {