Cleanup: Assign corresponding expressions to variable params.max_distance

Pull Request: https://projects.blender.org/blender/blender/pulls/109328
This commit is contained in:
Hoshinova
2023-07-06 18:13:22 +02:00
committed by Brecht Van Lommel
parent 71273df2d5
commit c9fbbea261
7 changed files with 26 additions and 16 deletions

View File

@@ -75,7 +75,7 @@
float fractal_voronoi_distance_to_edge(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.5 + 0.5 * params.randomness; \
float max_amplitude = params.max_distance; \
float scale = 1.0; \
float distance = 8.0; \
\
@@ -89,7 +89,7 @@
break; \
} \
else if (i <= params.detail) { \
max_amplitude = mix(max_amplitude, (0.5 + 0.5 * params.randomness) / scale, amplitude); \
max_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude); \
distance = mix(distance, min(distance, octave_distance / scale), amplitude); \
scale *= params.lacunarity; \
amplitude *= params.roughness; \
@@ -97,8 +97,7 @@
else { \
float remainder = params.detail - floor(params.detail); \
if (remainder != 0.0) { \
float lerp_amplitude = mix( \
max_amplitude, (0.5 + 0.5 * params.randomness) / scale, amplitude); \
float lerp_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude); \
max_amplitude = mix(max_amplitude, lerp_amplitude, remainder); \
float lerp_distance = mix(distance, min(distance, octave_distance / scale), amplitude); \
distance = mix(distance, min(distance, lerp_distance), remainder); \

View File

@@ -53,6 +53,7 @@ shader node_voronoi_texture(
coord *= Scale;
if (feature == "distance_to_edge") {
params.max_distance = 0.5 + 0.5 * params.randomness;
if (dimensions == "1D") {
Distance = fractal_voronoi_distance_to_edge(params, w);
}

View File

@@ -926,7 +926,7 @@ ccl_device float fractal_voronoi_distance_to_edge(ccl_private const VoronoiParam
const T coord)
{
float amplitude = 1.0f;
float max_amplitude = 0.5f + 0.5f * params.randomness;
float max_amplitude = params.max_distance;
float scale = 1.0f;
float distance = 8.0f;
@@ -941,7 +941,7 @@ ccl_device float fractal_voronoi_distance_to_edge(ccl_private const VoronoiParam
break;
}
else if (i <= params.detail) {
max_amplitude = mix(max_amplitude, (0.5f + 0.5f * params.randomness) / scale, amplitude);
max_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude);
distance = mix(distance, min(distance, octave_distance / scale), amplitude);
scale *= params.lacunarity;
amplitude *= params.roughness;
@@ -949,8 +949,7 @@ ccl_device float fractal_voronoi_distance_to_edge(ccl_private const VoronoiParam
else {
float remainder = params.detail - floorf(params.detail);
if (remainder != 0.0f) {
float lerp_amplitude = mix(
max_amplitude, (0.5f + 0.5f * params.randomness) / scale, amplitude);
float lerp_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude);
max_amplitude = mix(max_amplitude, lerp_amplitude, remainder);
float lerp_distance = mix(distance, min(distance, octave_distance / scale), amplitude);
distance = mix(distance, min(distance, lerp_distance), remainder);
@@ -1053,6 +1052,7 @@ ccl_device_noinline int svm_node_tex_voronoi(KernelGlobals kg,
switch (params.feature) {
case NODE_VORONOI_DISTANCE_TO_EDGE: {
float distance = 0.0f;
params.max_distance = 0.5f + 0.5f * params.randomness;
switch (dimensions) {
case 1:
distance = fractal_voronoi_distance_to_edge(params, w);

View File

@@ -2310,7 +2310,7 @@ template<typename T>
float fractal_voronoi_distance_to_edge(const VoronoiParams &params, const T coord)
{
float amplitude = 1.0f;
float max_amplitude = 0.5f + 0.5f * params.randomness;
float max_amplitude = params.max_distance;
float scale = 1.0f;
float distance = 8.0f;
@@ -2325,7 +2325,7 @@ float fractal_voronoi_distance_to_edge(const VoronoiParams &params, const T coor
break;
}
else if (i <= params.detail) {
max_amplitude = mix(max_amplitude, (0.5f + 0.5f * params.randomness) / scale, amplitude);
max_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude);
distance = mix(distance, math::min(distance, octave_distance / scale), amplitude);
scale *= params.lacunarity;
amplitude *= params.roughness;
@@ -2333,8 +2333,7 @@ float fractal_voronoi_distance_to_edge(const VoronoiParams &params, const T coor
else {
float remainder = params.detail - floorf(params.detail);
if (remainder != 0.0f) {
float lerp_amplitude = mix(
max_amplitude, (0.5f + 0.5f * params.randomness) / scale, amplitude);
float lerp_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude);
max_amplitude = mix(max_amplitude, lerp_amplitude, remainder);
float lerp_distance = mix(
distance, math::min(distance, octave_distance / scale), amplitude);

View File

@@ -69,7 +69,7 @@
float fractal_voronoi_distance_to_edge(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.5 + 0.5 * params.randomness; \
float max_amplitude = params.max_distance; \
float scale = 1.0; \
float distance = 8.0; \
\
@@ -84,7 +84,7 @@
break; \
} \
else if (i <= params.detail) { \
max_amplitude = mix(max_amplitude, (0.5 + 0.5 * params.randomness) / scale, amplitude); \
max_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude); \
distance = mix(distance, min(distance, octave_distance / scale), amplitude); \
scale *= params.lacunarity; \
amplitude *= params.roughness; \
@@ -92,8 +92,7 @@
else { \
float remainder = params.detail - floor(params.detail); \
if (remainder != 0.0) { \
float lerp_amplitude = mix( \
max_amplitude, (0.5 + 0.5 * params.randomness) / scale, amplitude); \
float lerp_amplitude = mix(max_amplitude, params.max_distance / scale, amplitude); \
max_amplitude = mix(max_amplitude, lerp_amplitude, remainder); \
float lerp_distance = mix(distance, min(distance, octave_distance / scale), amplitude); \
distance = mix(distance, min(distance, lerp_distance), remainder); \

View File

@@ -147,6 +147,7 @@ void node_tex_voronoi_distance_to_edge_1d(vec3 coord,
w *= scale;
params.max_distance = 0.5 + 0.5 * params.randomness;
outDistance = fractal_voronoi_distance_to_edge(params, w);
}
@@ -292,6 +293,7 @@ void node_tex_voronoi_distance_to_edge_2d(vec3 coord,
coord *= scale;
params.max_distance = 0.5 + 0.5 * params.randomness;
outDistance = fractal_voronoi_distance_to_edge(params, coord.xy);
}
@@ -437,6 +439,7 @@ void node_tex_voronoi_distance_to_edge_3d(vec3 coord,
coord *= scale;
params.max_distance = 0.5 + 0.5 * params.randomness;
outDistance = fractal_voronoi_distance_to_edge(params, coord);
}
@@ -589,6 +592,7 @@ void node_tex_voronoi_distance_to_edge_4d(vec3 coord,
w *= scale;
coord *= scale;
params.max_distance = 0.5 + 0.5 * params.randomness;
outDistance = fractal_voronoi_distance_to_edge(params, vec4(coord, w));
}

View File

@@ -612,6 +612,7 @@ class VoronoiDistToEdgeFunction : public mf::MultiFunction {
params.roughness = roughness[i];
params.lacunarity = lacunarity[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
params.max_distance = 0.5f + 0.5f * params.randomness;
r_distance[i] = noise::fractal_voronoi_distance_to_edge<float>(params,
w[i] * params.scale);
@@ -625,6 +626,7 @@ class VoronoiDistToEdgeFunction : public mf::MultiFunction {
params.roughness = roughness[i];
params.lacunarity = lacunarity[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
params.max_distance = 0.5f + 0.5f * params.randomness;
r_distance[i] = noise::fractal_voronoi_distance_to_edge<float2>(
params, float2{vector[i].x, vector[i].y} * params.scale);
@@ -638,6 +640,7 @@ class VoronoiDistToEdgeFunction : public mf::MultiFunction {
params.roughness = roughness[i];
params.lacunarity = lacunarity[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
params.max_distance = 0.5f + 0.5f * params.randomness;
r_distance[i] = noise::fractal_voronoi_distance_to_edge<float3>(
params, vector[i] * params.scale);
@@ -651,6 +654,7 @@ class VoronoiDistToEdgeFunction : public mf::MultiFunction {
params.roughness = roughness[i];
params.lacunarity = lacunarity[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
params.max_distance = 0.5f + 0.5f * params.randomness;
r_distance[i] = noise::fractal_voronoi_distance_to_edge<float4>(
params, float4{vector[i].x, vector[i].y, vector[i].z, w[i]} * params.scale);
@@ -735,6 +739,7 @@ class VoronoiNSphereFunction : public mf::MultiFunction {
mask.foreach_index([&](const int64_t i) {
params.scale = scale[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
r_radius[i] = noise::voronoi_n_sphere_radius(params, w[i] * params.scale);
});
break;
@@ -743,6 +748,7 @@ class VoronoiNSphereFunction : public mf::MultiFunction {
mask.foreach_index([&](const int64_t i) {
params.scale = scale[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
r_radius[i] = noise::voronoi_n_sphere_radius(
params, float2{vector[i].x, vector[i].y} * params.scale);
});
@@ -752,6 +758,7 @@ class VoronoiNSphereFunction : public mf::MultiFunction {
mask.foreach_index([&](const int64_t i) {
params.scale = scale[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
r_radius[i] = noise::voronoi_n_sphere_radius(params, vector[i] * params.scale);
});
break;
@@ -760,6 +767,7 @@ class VoronoiNSphereFunction : public mf::MultiFunction {
mask.foreach_index([&](const int64_t i) {
params.scale = scale[i];
params.randomness = std::min(std::max(randomness[i], 0.0f), 1.0f);
r_radius[i] = noise::voronoi_n_sphere_radius(
params, float4{vector[i].x, vector[i].y, vector[i].z, w[i]} * params.scale);
});