diff options
author | MillionOstrich <31486600+MillionOstrich@users.noreply.github.com> | 2017-11-06 16:39:10 +0000 |
---|---|---|
committer | MillionOstrich <31486600+MillionOstrich@users.noreply.github.com> | 2017-11-06 16:39:10 +0000 |
commit | eaa8c461c3c156d3c3d2a85dae90bc2d5b47a9fe (patch) | |
tree | 339df441d8ed5d39a93b1336674532802f7b3c07 /scene/3d/particles.cpp | |
parent | 9437db7bc59a33b134306e8fa46eede2fb4ffde6 (diff) |
Fix randomisation of initial particle velocity
Diffstat (limited to 'scene/3d/particles.cpp')
-rw-r--r-- | scene/3d/particles.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index 4e19214c59..040266843d 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -642,7 +642,7 @@ void ParticlesMaterial::_update_shader() { code += " float angle1 = (rand_from_seed(alt_seed)*2.0-1.0)*spread/180.0*3.1416;\n"; code += " vec3 rot = vec3( cos(angle1), sin(angle1),0.0 );\n"; - code += " VELOCITY = (rot*initial_linear_velocity+rot*initial_linear_velocity_random*rand_from_seed(alt_seed));\n"; + code += " VELOCITY = rot*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n"; } else { //initiate velocity spread in 3D @@ -650,7 +650,7 @@ void ParticlesMaterial::_update_shader() { code += " float angle2 = rand_from_seed(alt_seed)*20.0*3.1416; // make it more random like\n"; code += " vec3 rot_xz = vec3( sin(angle1), 0.0, cos(angle1) );\n"; code += " vec3 rot = vec3( cos(angle2)*rot_xz.x,sin(angle2)*rot_xz.x, rot_xz.z);\n"; - code += " VELOCITY = (rot*initial_linear_velocity+rot*initial_linear_velocity_random*rand_from_seed(alt_seed));\n"; + code += " VELOCITY = rot*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n"; } code += " float base_angle = (initial_angle+tex_angle)*mix(1.0,angle_rand,initial_angle_random);\n"; |