[#24593] Cloud Depth setting above 30 cause texture corruption
disallow cloud depth over 30, it causes a lot of floating point exceptions (and nan value pixels), because of hitting the int limit with 1<<(oct+1) in BLI_gTurbulence
This commit is contained in:
@@ -224,7 +224,7 @@ typedef struct Tex {
|
||||
float vn_mexp;
|
||||
short vn_distm, vn_coltype;
|
||||
|
||||
short noisedepth, noisetype;
|
||||
short noisedepth, noisetype; /* noisedepth MUST be <= 30 else we get floating point exceptions */
|
||||
|
||||
/* newnoise: noisebasis type for clouds/marble/etc, noisebasis2 only used for distorted noise */
|
||||
short noisebasis, noisebasis2;
|
||||
|
||||
@@ -676,7 +676,7 @@ static void rna_def_texture_clouds(BlenderRNA *brna)
|
||||
|
||||
prop= RNA_def_property(srna, "noise_depth", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "noisedepth");
|
||||
RNA_def_property_range(prop, 0, INT_MAX);
|
||||
RNA_def_property_range(prop, 0, 30);
|
||||
RNA_def_property_ui_range(prop, 0, 24, 0, 2);
|
||||
RNA_def_property_ui_text(prop, "Noise Depth", "Sets the depth of the cloud calculation");
|
||||
RNA_def_property_update(prop, 0, "rna_Texture_nodes_update");
|
||||
@@ -811,7 +811,7 @@ static void rna_def_texture_marble(BlenderRNA *brna)
|
||||
|
||||
prop= RNA_def_property(srna, "noise_depth", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "noisedepth");
|
||||
RNA_def_property_range(prop, 0, INT_MAX);
|
||||
RNA_def_property_range(prop, 0, 30);
|
||||
RNA_def_property_ui_range(prop, 0, 24, 0, 2);
|
||||
RNA_def_property_ui_text(prop, "Noise Depth", "Sets the depth of the cloud calculation");
|
||||
RNA_def_property_update(prop, 0, "rna_Texture_update");
|
||||
@@ -866,7 +866,7 @@ static void rna_def_texture_magic(BlenderRNA *brna)
|
||||
|
||||
prop= RNA_def_property(srna, "noise_depth", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "noisedepth");
|
||||
RNA_def_property_range(prop, 0, INT_MAX);
|
||||
RNA_def_property_range(prop, 0, 30);
|
||||
RNA_def_property_ui_range(prop, 0, 24, 0, 2);
|
||||
RNA_def_property_ui_text(prop, "Noise Depth", "Sets the depth of the cloud calculation");
|
||||
RNA_def_property_update(prop, 0, "rna_Texture_update");
|
||||
@@ -1520,7 +1520,7 @@ static void rna_def_texture_pointdensity(BlenderRNA *brna)
|
||||
|
||||
prop= RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "noise_depth");
|
||||
RNA_def_property_range(prop, 0, INT_MAX);
|
||||
RNA_def_property_range(prop, 0, 30);
|
||||
RNA_def_property_ui_text(prop, "Depth", "Level of detail in the added turbulent noise");
|
||||
RNA_def_property_update(prop, 0, "rna_Texture_update");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user