Cleanup: Use defines in Voronoi GLSL implementation

Use defines in Voronoi GLSL implementation instead of magic numbers.

Pull Request: https://projects.blender.org/blender/blender/pulls/109289
This commit is contained in:
Hoshinova
2023-06-23 17:16:53 +02:00
committed by Omar Emara
parent ff2f16db6d
commit f7589751f1
3 changed files with 45 additions and 46 deletions

View File

@@ -18,10 +18,10 @@
\
for (int i = 0; i <= ceil(params.detail); ++i) { \
VoronoiOutput octave; \
if (params.feature == 1) /* SHD_VORONOI_F1 */ { \
if (params.feature == SHD_VORONOI_F2) { \
octave = voronoi_f2(params, coord * scale); \
} \
else if (params.feature == 2 && params.smoothness != 0.0) /* SHD_VORONOI_SMOOTH_F1 */ { \
else if (params.feature == SHD_VORONOI_SMOOTH_F1 && params.smoothness != 0.0) { \
octave = voronoi_smooth_f1(params, coord * scale); \
} \
else { \

View File

@@ -53,7 +53,7 @@ void node_tex_voronoi_f1_1d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F1)
w *= scale;
@@ -83,7 +83,7 @@ void node_tex_voronoi_smooth_f1_1d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_SMOOTH_F1)
w *= scale;
@@ -113,7 +113,7 @@ void node_tex_voronoi_f2_1d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F2)
w *= scale;
@@ -143,7 +143,7 @@ void node_tex_voronoi_distance_to_edge_1d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_DISTANCE_TO_EDGE)
w *= scale;
@@ -169,7 +169,7 @@ void node_tex_voronoi_n_sphere_radius_1d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_N_SPHERE_RADIUS)
w *= scale;
@@ -197,7 +197,7 @@ void node_tex_voronoi_f1_2d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F1)
coord *= scale;
@@ -227,7 +227,7 @@ void node_tex_voronoi_smooth_f1_2d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_SMOOTH_F1)
coord *= scale;
@@ -257,7 +257,7 @@ void node_tex_voronoi_f2_2d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F2)
coord *= scale;
@@ -288,7 +288,7 @@ void node_tex_voronoi_distance_to_edge_2d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_DISTANCE_TO_EDGE)
coord *= scale;
@@ -314,7 +314,7 @@ void node_tex_voronoi_n_sphere_radius_2d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_N_SPHERE_RADIUS)
coord *= scale;
@@ -342,7 +342,7 @@ void node_tex_voronoi_f1_3d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F1)
coord *= scale;
@@ -372,7 +372,7 @@ void node_tex_voronoi_smooth_f1_3d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_SMOOTH_F1)
coord *= scale;
@@ -402,7 +402,7 @@ void node_tex_voronoi_f2_3d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F2)
coord *= scale;
@@ -433,7 +433,7 @@ void node_tex_voronoi_distance_to_edge_3d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_DISTANCE_TO_EDGE)
coord *= scale;
@@ -459,7 +459,7 @@ void node_tex_voronoi_n_sphere_radius_3d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_N_SPHERE_RADIUS)
coord *= scale;
@@ -487,7 +487,7 @@ void node_tex_voronoi_f1_4d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F1)
w *= scale;
coord *= scale;
@@ -519,7 +519,7 @@ void node_tex_voronoi_smooth_f1_4d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_SMOOTH_F1)
w *= scale;
coord *= scale;
@@ -551,7 +551,7 @@ void node_tex_voronoi_f2_4d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_F2)
w *= scale;
coord *= scale;
@@ -584,7 +584,7 @@ void node_tex_voronoi_distance_to_edge_4d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_DISTANCE_TO_EDGE)
w *= scale;
coord *= scale;
@@ -611,7 +611,7 @@ void node_tex_voronoi_n_sphere_radius_4d(vec3 coord,
{
VoronoiParams params;
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS(SHD_VORONOI_N_SPHERE_RADIUS)
w *= scale;
coord *= scale;

View File

@@ -17,6 +17,17 @@
* as explained in https://www.shadertoy.com/view/llG3zy.
*/
#define SHD_VORONOI_EUCLIDEAN 0
#define SHD_VORONOI_MANHATTAN 1
#define SHD_VORONOI_CHEBYCHEV 2
#define SHD_VORONOI_MINKOWSKI 3
#define SHD_VORONOI_F1 0
#define SHD_VORONOI_F2 1
#define SHD_VORONOI_SMOOTH_F1 2
#define SHD_VORONOI_DISTANCE_TO_EDGE 3
#define SHD_VORONOI_N_SPHERE_RADIUS 4
struct VoronoiParams {
float scale;
float detail;
@@ -46,20 +57,16 @@ float voronoi_distance(float a, float b)
float voronoi_distance(vec2 a, vec2 b, VoronoiParams params)
{
if (params.metric == 0) // SHD_VORONOI_EUCLIDEAN
{
if (params.metric == SHD_VORONOI_EUCLIDEAN) {
return distance(a, b);
}
else if (params.metric == 1) // SHD_VORONOI_MANHATTAN
{
else if (params.metric == SHD_VORONOI_MANHATTAN) {
return abs(a.x - b.x) + abs(a.y - b.y);
}
else if (params.metric == 2) // SHD_VORONOI_CHEBYCHEV
{
else if (params.metric == SHD_VORONOI_CHEBYCHEV) {
return max(abs(a.x - b.x), abs(a.y - b.y));
}
else if (params.metric == 3) // SHD_VORONOI_MINKOWSKI
{
else if (params.metric == SHD_VORONOI_MINKOWSKI) {
return pow(pow(abs(a.x - b.x), params.exponent) + pow(abs(a.y - b.y), params.exponent),
1.0 / params.exponent);
}
@@ -70,20 +77,16 @@ float voronoi_distance(vec2 a, vec2 b, VoronoiParams params)
float voronoi_distance(vec3 a, vec3 b, VoronoiParams params)
{
if (params.metric == 0) // SHD_VORONOI_EUCLIDEAN
{
if (params.metric == SHD_VORONOI_EUCLIDEAN) {
return distance(a, b);
}
else if (params.metric == 1) // SHD_VORONOI_MANHATTAN
{
else if (params.metric == SHD_VORONOI_MANHATTAN) {
return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);
}
else if (params.metric == 2) // SHD_VORONOI_CHEBYCHEV
{
else if (params.metric == SHD_VORONOI_CHEBYCHEV) {
return max(abs(a.x - b.x), max(abs(a.y - b.y), abs(a.z - b.z)));
}
else if (params.metric == 3) // SHD_VORONOI_MINKOWSKI
{
else if (params.metric == SHD_VORONOI_MINKOWSKI) {
return pow(pow(abs(a.x - b.x), params.exponent) + pow(abs(a.y - b.y), params.exponent) +
pow(abs(a.z - b.z), params.exponent),
1.0 / params.exponent);
@@ -95,20 +98,16 @@ float voronoi_distance(vec3 a, vec3 b, VoronoiParams params)
float voronoi_distance(vec4 a, vec4 b, VoronoiParams params)
{
if (params.metric == 0) // SHD_VORONOI_EUCLIDEAN
{
if (params.metric == SHD_VORONOI_EUCLIDEAN) {
return distance(a, b);
}
else if (params.metric == 1) // SHD_VORONOI_MANHATTAN
{
else if (params.metric == SHD_VORONOI_MANHATTAN) {
return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z) + abs(a.w - b.w);
}
else if (params.metric == 2) // SHD_VORONOI_CHEBYCHEV
{
else if (params.metric == SHD_VORONOI_CHEBYCHEV) {
return max(abs(a.x - b.x), max(abs(a.y - b.y), max(abs(a.z - b.z), abs(a.w - b.w))));
}
else if (params.metric == 3) // SHD_VORONOI_MINKOWSKI
{
else if (params.metric == SHD_VORONOI_MINKOWSKI) {
return pow(pow(abs(a.x - b.x), params.exponent) + pow(abs(a.y - b.y), params.exponent) +
pow(abs(a.z - b.z), params.exponent) + pow(abs(a.w - b.w), params.exponent),
1.0 / params.exponent);