Clamp BaseMaterial3D triplanar sharpness to values that never look broken
This commit is contained in:
parent
ff877adf0f
commit
81940c8e57
2 changed files with 8 additions and 4 deletions
|
@ -369,6 +369,7 @@
|
|||
</member>
|
||||
<member name="uv1_triplanar_sharpness" type="float" setter="set_uv1_triplanar_blend_sharpness" getter="get_uv1_triplanar_blend_sharpness" default="1.0">
|
||||
A lower number blends the texture more softly while a higher number blends the texture more sharply.
|
||||
[b]Note:[/b] [member uv1_triplanar_sharpness] is clamped between [code]0.0[/code] and [code]150.0[/code] (inclusive) as values outside that range can look broken depending on the mesh.
|
||||
</member>
|
||||
<member name="uv1_world_triplanar" type="bool" setter="set_flag" getter="get_flag" default="false">
|
||||
If [code]true[/code], triplanar mapping for [code]UV[/code] is calculated in world space rather than object local space. See also [member uv1_triplanar].
|
||||
|
@ -384,6 +385,7 @@
|
|||
</member>
|
||||
<member name="uv2_triplanar_sharpness" type="float" setter="set_uv2_triplanar_blend_sharpness" getter="get_uv2_triplanar_blend_sharpness" default="1.0">
|
||||
A lower number blends the texture more softly while a higher number blends the texture more sharply.
|
||||
[b]Note:[/b] [member uv2_triplanar_sharpness] is clamped between [code]0.0[/code] and [code]150.0[/code] (inclusive) as values outside that range can look broken depending on the mesh.
|
||||
</member>
|
||||
<member name="uv2_world_triplanar" type="bool" setter="set_flag" getter="get_flag" default="false">
|
||||
If [code]true[/code], triplanar mapping for [code]UV2[/code] is calculated in world space rather than object local space. See also [member uv2_triplanar].
|
||||
|
|
|
@ -1873,8 +1873,9 @@ Vector3 BaseMaterial3D::get_uv1_offset() const {
|
|||
}
|
||||
|
||||
void BaseMaterial3D::set_uv1_triplanar_blend_sharpness(float p_sharpness) {
|
||||
uv1_triplanar_sharpness = p_sharpness;
|
||||
RS::get_singleton()->material_set_param(_get_material(), shader_names->uv1_blend_sharpness, p_sharpness);
|
||||
// Negative values or values higher than 150 can result in NaNs, leading to broken rendering.
|
||||
uv1_triplanar_sharpness = CLAMP(p_sharpness, 0.0, 150.0);
|
||||
RS::get_singleton()->material_set_param(_get_material(), shader_names->uv1_blend_sharpness, uv1_triplanar_sharpness);
|
||||
}
|
||||
|
||||
float BaseMaterial3D::get_uv1_triplanar_blend_sharpness() const {
|
||||
|
@ -1900,8 +1901,9 @@ Vector3 BaseMaterial3D::get_uv2_offset() const {
|
|||
}
|
||||
|
||||
void BaseMaterial3D::set_uv2_triplanar_blend_sharpness(float p_sharpness) {
|
||||
uv2_triplanar_sharpness = p_sharpness;
|
||||
RS::get_singleton()->material_set_param(_get_material(), shader_names->uv2_blend_sharpness, p_sharpness);
|
||||
// Negative values or values higher than 150 can result in NaNs, leading to broken rendering.
|
||||
uv2_triplanar_sharpness = CLAMP(p_sharpness, 0.0, 150.0);
|
||||
RS::get_singleton()->material_set_param(_get_material(), shader_names->uv2_blend_sharpness, uv2_triplanar_sharpness);
|
||||
}
|
||||
|
||||
float BaseMaterial3D::get_uv2_triplanar_blend_sharpness() const {
|
||||
|
|
Loading…
Reference in a new issue