Fix particle shader deterministic random values
This commit is contained in:
parent
013e8e3afb
commit
cb7400d67a
|
@ -683,11 +683,13 @@ void ParticleProcessMaterial::_update_shader() {
|
||||||
code += " pos.z = 0.0;\n";
|
code += " pos.z = 0.0;\n";
|
||||||
}
|
}
|
||||||
code += " // apply linear acceleration\n";
|
code += " // apply linear acceleration\n";
|
||||||
code += " force += length(VELOCITY) > 0.0 ? normalize(VELOCITY) * tex_linear_accel * mix(linear_accel_min, linear_accel_max, rand_from_seed(alt_seed)) : vec3(0.0);\n";
|
code += " float linear_accel_rand = rand_from_seed(alt_seed);\n";
|
||||||
|
code += " force += length(VELOCITY) > 0.0 ? normalize(VELOCITY) * tex_linear_accel * mix(linear_accel_min, linear_accel_max, linear_accel_rand) : vec3(0.0);\n";
|
||||||
code += " // apply radial acceleration\n";
|
code += " // apply radial acceleration\n";
|
||||||
code += " vec3 org = EMISSION_TRANSFORM[3].xyz;\n";
|
code += " vec3 org = EMISSION_TRANSFORM[3].xyz;\n";
|
||||||
code += " vec3 diff = pos - org;\n";
|
code += " vec3 diff = pos - org;\n";
|
||||||
code += " force += length(diff) > 0.0 ? normalize(diff) * tex_radial_accel * mix(radial_accel_min, radial_accel_max, rand_from_seed(alt_seed)) : vec3(0.0);\n";
|
code += " float radial_accel_rand = rand_from_seed(alt_seed);\n";
|
||||||
|
code += " force += length(diff) > 0.0 ? normalize(diff) * tex_radial_accel * mix(radial_accel_min, radial_accel_max, radial_accel_rand) : vec3(0.0);\n";
|
||||||
code += " // apply tangential acceleration;\n";
|
code += " // apply tangential acceleration;\n";
|
||||||
code += " float tangent_accel_val = tex_tangent_accel * mix(tangent_accel_min, tangent_accel_max, rand_from_seed(alt_seed));\n";
|
code += " float tangent_accel_val = tex_tangent_accel * mix(tangent_accel_min, tangent_accel_max, rand_from_seed(alt_seed));\n";
|
||||||
if (particle_flags[PARTICLE_FLAG_DISABLE_Z]) {
|
if (particle_flags[PARTICLE_FLAG_DISABLE_Z]) {
|
||||||
|
|
Loading…
Reference in New Issue