From 9472a990b4ed169b4cd7be9d6faa63f81ad42876 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 24 Dec 2024 17:15:21 -0500 Subject: [PATCH] fix particle shader datatype --- assets/Shaders/entities/particle/particle.vs | 4 ++-- .../electrosphere/client/entity/particle/ParticleService.java | 2 +- .../renderer/actor/instance/HomogenousInstanceData.java | 2 +- .../renderer/buffer/HomogenousInstancedArray.java | 2 +- .../renderer/buffer/HomogenousUniformBuffer.java | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/assets/Shaders/entities/particle/particle.vs b/assets/Shaders/entities/particle/particle.vs index 2beafcb6..2f85a1e7 100644 --- a/assets/Shaders/entities/particle/particle.vs +++ b/assets/Shaders/entities/particle/particle.vs @@ -10,7 +10,7 @@ Bind points for different SSBOs A point light */ struct ParticleData { - mat4 model; + dmat4 model; vec4 color; vec4 texture; }; @@ -48,7 +48,7 @@ out vec4 instanceColor; void main() { ParticleData currentParticle = particleData[gl_InstanceID]; - mat4 model = currentParticle.model; + mat4 model = mat4(currentParticle.model); //normalize posiiton and normal vec4 FinalVertex = vec4(aPos, 1.0); diff --git a/src/main/java/electrosphere/client/entity/particle/ParticleService.java b/src/main/java/electrosphere/client/entity/particle/ParticleService.java index ff443d4d..dbb15775 100644 --- a/src/main/java/electrosphere/client/entity/particle/ParticleService.java +++ b/src/main/java/electrosphere/client/entity/particle/ParticleService.java @@ -96,7 +96,7 @@ public class ParticleService extends SignalServiceImpl { boolean rVal = false; switch(signal.getType()){ case RENDERING_ENGINE_READY: { - modelAttrib = new ShaderAttribute("model", HomogenousBufferTypes.MAT4F); + modelAttrib = new ShaderAttribute("model", HomogenousBufferTypes.MAT4D); colorAttrib = new ShaderAttribute("color", HomogenousBufferTypes.VEC4F); textureAttrib = new ShaderAttribute("texture", HomogenousBufferTypes.VEC4F); List types = Arrays.asList(new ShaderAttribute[]{ diff --git a/src/main/java/electrosphere/renderer/actor/instance/HomogenousInstanceData.java b/src/main/java/electrosphere/renderer/actor/instance/HomogenousInstanceData.java index 46a2a111..33d85bb1 100644 --- a/src/main/java/electrosphere/renderer/actor/instance/HomogenousInstanceData.java +++ b/src/main/java/electrosphere/renderer/actor/instance/HomogenousInstanceData.java @@ -97,7 +97,7 @@ public class HomogenousInstanceData implements InstanceData { attributeCpuBufferMap.put(shaderAttribute, BufferUtils.createFloatBuffer(capacity * 4 * 4)); } break; case MAT4D: { - attributeCpuBufferMap.put(shaderAttribute, BufferUtils.createFloatBuffer(capacity * 4 * 4)); + attributeCpuBufferMap.put(shaderAttribute, BufferUtils.createFloatBuffer(capacity * 4 * 8)); } break; } if(shaderAttribute.isSingleIndex()){ diff --git a/src/main/java/electrosphere/renderer/buffer/HomogenousInstancedArray.java b/src/main/java/electrosphere/renderer/buffer/HomogenousInstancedArray.java index d125c0dd..9950b558 100644 --- a/src/main/java/electrosphere/renderer/buffer/HomogenousInstancedArray.java +++ b/src/main/java/electrosphere/renderer/buffer/HomogenousInstancedArray.java @@ -120,7 +120,7 @@ public class HomogenousInstancedArray { return capacity * 4 * 4 * 4; } case MAT4D: { - return capacity * 4 * 4 * 4; + return capacity * 4 * 4 * 8; } } return 0; diff --git a/src/main/java/electrosphere/renderer/buffer/HomogenousUniformBuffer.java b/src/main/java/electrosphere/renderer/buffer/HomogenousUniformBuffer.java index 4c91cc8e..09302dda 100644 --- a/src/main/java/electrosphere/renderer/buffer/HomogenousUniformBuffer.java +++ b/src/main/java/electrosphere/renderer/buffer/HomogenousUniformBuffer.java @@ -113,7 +113,7 @@ public class HomogenousUniformBuffer { return capacity * 4 * 4 * 4; } case MAT4D: { - return capacity * 4 * 4 * 4; + return capacity * 4 * 4 * 8; } } return 0; @@ -150,7 +150,7 @@ public class HomogenousUniformBuffer { return 4 * 4 * 4; } case MAT4D: { - return 4 * 4 * 4; + return 4 * 4 * 8; } } return 0;