|
@@ -659,9 +659,8 @@ void ParticlesMaterial::_update_shader() {
|
|
|
}
|
|
|
//scale by scale
|
|
|
code += " float base_scale = tex_scale * mix(scale, 1.0, scale_random * scale_rand);\n";
|
|
|
- code += " if (base_scale < 0.000001) {\n";
|
|
|
- code += " base_scale = 0.000001;\n";
|
|
|
- code += " }\n";
|
|
|
+ // Prevent zero scale (which can cause rendering issues).
|
|
|
+ code += " base_scale = sign(base_scale) * max(abs(base_scale), 0.000001);\n";
|
|
|
if (trail_size_modifier.is_valid()) {
|
|
|
code += " if (trail_divisor > 1) {\n";
|
|
|
code += " base_scale *= textureLod(trail_size_modifier, vec2(float(int(NUMBER) % trail_divisor) / float(trail_divisor - 1), 0.0), 0.0).r;\n";
|
|
@@ -1307,7 +1306,7 @@ void ParticlesMaterial::_bind_methods() {
|
|
|
ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angle_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ANGLE);
|
|
|
ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "angle_curve", PROPERTY_HINT_RESOURCE_TYPE, "CurveTexture"), "set_param_texture", "get_param_texture", PARAM_ANGLE);
|
|
|
ADD_GROUP("Scale", "");
|
|
|
- ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE);
|
|
|
+ ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale", PROPERTY_HINT_RANGE, "-1000,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE);
|
|
|
ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_SCALE);
|
|
|
ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "scale_curve", PROPERTY_HINT_RESOURCE_TYPE, "CurveTexture"), "set_param_texture", "get_param_texture", PARAM_SCALE);
|
|
|
ADD_GROUP("Color", "");
|