瀏覽代碼

Merge pull request #12706 from MillionOstrich/particle-random-velocity

Fix randomisation of initial particle velocity
Rémi Verschelde 7 年之前
父節點
當前提交
5fb359d8b1
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      scene/3d/particles.cpp

+ 2 - 2
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";