@@ -830,6 +830,13 @@ void ParticleProcessMaterial::_update_shader() {
830
830
code += " TRANSFORM[3].z = 0.0;\n " ;
831
831
}
832
832
833
+ // scale by scale
834
+ code += " float base_scale = mix(scale_min, scale_max, scale_rand);\n " ;
835
+ code += " base_scale = sign(base_scale) * max(abs(base_scale), 0.001);\n " ;
836
+ code += " TRANSFORM[0].xyz *= base_scale * sign(tex_scale.r) * max(abs(tex_scale.r), 0.001);\n " ;
837
+ code += " TRANSFORM[1].xyz *= base_scale * sign(tex_scale.g) * max(abs(tex_scale.g), 0.001);\n " ;
838
+ code += " TRANSFORM[2].xyz *= base_scale * sign(tex_scale.b) * max(abs(tex_scale.b), 0.001);\n " ;
839
+
833
840
if (collision_mode == COLLISION_RIGID) {
834
841
code += " if (COLLIDED) {\n " ;
835
842
code += " if (length(VELOCITY) > 3.0) {\n " ;
@@ -844,21 +851,6 @@ void ParticleProcessMaterial::_update_shader() {
844
851
}
845
852
code += " }\n " ;
846
853
code += " }\n " ;
847
- }
848
-
849
- // scale by scale
850
- code += " float base_scale = mix(scale_min, scale_max, scale_rand);\n " ;
851
- code += " base_scale = sign(base_scale) * max(abs(base_scale), 0.001);\n " ;
852
- code += " TRANSFORM[0].xyz *= base_scale * sign(tex_scale.r) * max(abs(tex_scale.r), 0.001);\n " ;
853
- code += " TRANSFORM[1].xyz *= base_scale * sign(tex_scale.g) * max(abs(tex_scale.g), 0.001);\n " ;
854
- code += " TRANSFORM[2].xyz *= base_scale * sign(tex_scale.b) * max(abs(tex_scale.b), 0.001);\n " ;
855
-
856
- if (collision_mode == COLLISION_RIGID) {
857
- code += " if (COLLIDED) {\n " ;
858
- code += " TRANSFORM[3].xyz+=COLLISION_NORMAL * COLLISION_DEPTH;\n " ;
859
- code += " VELOCITY -= COLLISION_NORMAL * dot(COLLISION_NORMAL, VELOCITY) * (1.0 + collision_bounce);\n " ;
860
- code += " VELOCITY = mix(VELOCITY,vec3(0.0),collision_friction * DELTA * 100.0);\n " ;
861
- code += " }\n " ;
862
854
} else if (collision_mode == COLLISION_HIDE_ON_CONTACT) {
863
855
code += " if (COLLIDED) {\n " ;
864
856
code += " ACTIVE = false;\n " ;
0 commit comments