Add Fractal Voronoi Noise V.2 #106827

Merged
Jacques Lucke merged 77 commits from Hoshinova/blender:add-fractal-voronoi into main 2023-06-13 09:18:18 +02:00
4 changed files with 98 additions and 161 deletions
Showing only changes of commit cb467c5ae7 - Show all commits

View File

@ -8,7 +8,8 @@
#define vector3 point
#define FRACTAL_VORONOI_X_FX_FUNCTION_BODY \
#define FRACTAL_VORONOI_X_FX(T) \
VoronoiOutput fractal_voronoi_x_fx(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.0; \
@ -71,7 +72,8 @@
return Output; \
}
#define FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY \
#define FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(T) \
float fractal_voronoi_distance_to_edge(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.5 + 0.5 * params.randomness; \
@ -114,32 +116,24 @@
/* **** 1D Fractal Voronoi **** */
VoronoiOutput fractal_voronoi_x_fx(VoronoiParams params,
float coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(float)
float fractal_voronoi_distance_to_edge(VoronoiParams params, float coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(float)
/* **** 2D Fractal Voronoi **** */
/* **** 2D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vector2 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vector2)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vector2 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vector2)
/* **** 3D Fractal Voronoi **** */
/* **** 3D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vector3 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vector3)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vector3 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vector3)
/* **** 4D Fractal Voronoi **** */
/* **** 4D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vector4 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vector4)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vector4 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vector4)

View File

@ -2,7 +2,8 @@
#pragma BLENDER_REQUIRE(gpu_shader_common_math_utils.glsl)
#pragma BLENDER_REQUIRE(gpu_shader_material_voronoi.glsl)
#define FRACTAL_VORONOI_X_FX_FUNCTION_BODY \
#define FRACTAL_VORONOI_X_FX(T) \
VoronoiOutput fractal_voronoi_x_fx(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.0; \
@ -66,7 +67,8 @@
return Output; \
}
#define FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY \
#define FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(T) \
float fractal_voronoi_distance_to_edge(VoronoiParams params, T coord) \
{ \
float amplitude = 1.0; \
float max_amplitude = 0.5 + 0.5 * params.randomness; \
@ -110,32 +112,24 @@
/* **** 1D Fractal Voronoi **** */
VoronoiOutput fractal_voronoi_x_fx(VoronoiParams params,
float coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(float)
float fractal_voronoi_distance_to_edge(VoronoiParams params, float coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(float)
/* **** 2D Fractal Voronoi **** */
/* **** 2D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vec2 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vec2)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vec2 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vec2)
/* **** 3D Fractal Voronoi **** */
/* **** 3D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vec3 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vec3)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vec3 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vec3)
/* **** 4D Fractal Voronoi **** */
/* **** 4D Fractal Voronoi **** */
VoronoiOutput
fractal_voronoi_x_fx(VoronoiParams params, vec4 coord) FRACTAL_VORONOI_X_FX_FUNCTION_BODY
FRACTAL_VORONOI_X_FX(vec4)
float fractal_voronoi_distance_to_edge(VoronoiParams params, vec4 coord)
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION_BODY
FRACTAL_VORONOI_DISTANCE_TO_EDGE_FUNCTION(vec4)

View File

@ -19,7 +19,8 @@
* as explained in https://www.shadertoy.com/view/llG3zy.
*/
#define INITIALIZE_VORONOIPARAMS \
#define INITIALIZE_VORONOIPARAMS(FEATURE) \
params.feature = FEATURE; \
params.metric = int(metric); \
params.scale = scale; \
params.detail = clamp(detail, 0.0, 15.0); \
@ -52,8 +53,7 @@ void node_tex_voronoi_f1_1d(vec3 coord,
{
VoronoiParams params;
params.feature = 0; // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
w *= scale;
@ -83,8 +83,7 @@ void node_tex_voronoi_smooth_f1_1d(vec3 coord,
{
VoronoiParams params;
params.feature = 2; // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
w *= scale;
@ -114,8 +113,7 @@ void node_tex_voronoi_f2_1d(vec3 coord,
{
VoronoiParams params;
params.feature = 1; // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
w *= scale;
@ -145,8 +143,7 @@ void node_tex_voronoi_distance_to_edge_1d(vec3 coord,
{
VoronoiParams params;
params.feature = 3; // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
w *= scale;
@ -172,8 +169,7 @@ void node_tex_voronoi_n_sphere_radius_1d(vec3 coord,
{
VoronoiParams params;
params.feature = 4; // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
w *= scale;
@ -201,13 +197,11 @@ void node_tex_voronoi_f1_2d(vec3 coord,
{
VoronoiParams params;
params.feature = 0; // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
coord *= scale;
params.max_distance = voronoi_distance(
vec2(0.0, 0.0), vec2(0.5 + 0.5 * params.randomness, 0.5 + 0.5 * params.randomness), params);
params.max_distance = voronoi_distance(vec2(0.0), vec2(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord.xy);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -233,13 +227,11 @@ void node_tex_voronoi_smooth_f1_2d(vec3 coord,
{
VoronoiParams params;
params.feature = 2; // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
coord *= scale;
params.max_distance = voronoi_distance(
vec2(0.0, 0.0), vec2(0.5 + 0.5 * params.randomness, 0.5 + 0.5 * params.randomness), params);
params.max_distance = voronoi_distance(vec2(0.0), vec2(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord.xy);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -265,15 +257,11 @@ void node_tex_voronoi_f2_2d(vec3 coord,
{
VoronoiParams params;
params.feature = 1; // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
coord *= scale;
params.max_distance = voronoi_distance(
vec2(0.0, 0.0),
vec2(0.5 + 0.5 * params.randomness, 0.5 + 0.5 * params.randomness),
params) *
params.max_distance = voronoi_distance(vec2(0.0), vec2(0.5 + 0.5 * params.randomness), params) *
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord.xy);
outDistance = Output.Distance;
@ -300,8 +288,7 @@ void node_tex_voronoi_distance_to_edge_2d(vec3 coord,
{
VoronoiParams params;
params.feature = 3; // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
coord *= scale;
@ -327,8 +314,7 @@ void node_tex_voronoi_n_sphere_radius_2d(vec3 coord,
{
VoronoiParams params;
params.feature = 4; // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
coord *= scale;
@ -356,16 +342,11 @@ void node_tex_voronoi_f1_3d(vec3 coord,
{
VoronoiParams params;
params.feature = 0; // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
coord *= scale;
params.max_distance = voronoi_distance(vec3(0.0, 0.0, 0.0),
vec3(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params);
params.max_distance = voronoi_distance(vec3(0.0), vec3(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -391,16 +372,11 @@ void node_tex_voronoi_smooth_f1_3d(vec3 coord,
{
VoronoiParams params;
params.feature = 2; // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
coord *= scale;
params.max_distance = voronoi_distance(vec3(0.0, 0.0, 0.0),
vec3(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params);
params.max_distance = voronoi_distance(vec3(0.0), vec3(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -426,16 +402,11 @@ void node_tex_voronoi_f2_3d(vec3 coord,
{
VoronoiParams params;
params.feature = 1; // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
coord *= scale;
params.max_distance = voronoi_distance(vec3(0.0, 0.0, 0.0),
vec3(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params) *
params.max_distance = voronoi_distance(vec3(0.0), vec3(0.5 + 0.5 * params.randomness), params) *
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord);
outDistance = Output.Distance;
@ -462,8 +433,7 @@ void node_tex_voronoi_distance_to_edge_3d(vec3 coord,
{
VoronoiParams params;
params.feature = 3; // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
coord *= scale;
@ -489,8 +459,7 @@ void node_tex_voronoi_n_sphere_radius_3d(vec3 coord,
{
VoronoiParams params;
params.feature = 4; // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
coord *= scale;
@ -518,18 +487,12 @@ void node_tex_voronoi_f1_4d(vec3 coord,
{
VoronoiParams params;
params.feature = 0; // SHD_VORONOI_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(0) // SHD_VORONOI_F1
w *= scale;
coord *= scale;
params.max_distance = voronoi_distance(vec4(0.0, 0.0, 0.0, 0.0),
vec4(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params);
params.max_distance = voronoi_distance(vec4(0.0), vec4(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, vec4(coord, w));
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -556,18 +519,12 @@ void node_tex_voronoi_smooth_f1_4d(vec3 coord,
{
VoronoiParams params;
params.feature = 2; // SHD_VORONOI_SMOOTH_F1
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(2) // SHD_VORONOI_SMOOTH_F1
w *= scale;
coord *= scale;
params.max_distance = voronoi_distance(vec4(0.0, 0.0, 0.0, 0.0),
vec4(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params);
params.max_distance = voronoi_distance(vec4(0.0), vec4(0.5 + 0.5 * params.randomness), params);
VoronoiOutput Output = fractal_voronoi_x_fx(params, vec4(coord, w));
outDistance = Output.Distance;
outColor.xyz = Output.Color;
@ -594,18 +551,12 @@ void node_tex_voronoi_f2_4d(vec3 coord,
{
VoronoiParams params;
params.feature = 1; // SHD_VORONOI_F2
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(1) // SHD_VORONOI_F2
w *= scale;
coord *= scale;
params.max_distance = voronoi_distance(vec4(0.0, 0.0, 0.0, 0.0),
vec4(0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness,
0.5 + 0.5 * params.randomness),
params) *
params.max_distance = voronoi_distance(vec4(0.0), vec4(0.5 + 0.5 * params.randomness), params) *
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, vec4(coord, w));
outDistance = Output.Distance;
@ -633,8 +584,7 @@ void node_tex_voronoi_distance_to_edge_4d(vec3 coord,
{
VoronoiParams params;
params.feature = 3; // SHD_VORONOI_DISTANCE_TO_EDGE
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(3) // SHD_VORONOI_DISTANCE_TO_EDGE
w *= scale;
coord *= scale;
@ -661,8 +611,7 @@ void node_tex_voronoi_n_sphere_radius_4d(vec3 coord,
{
VoronoiParams params;
params.feature = 4; // SHD_VORONOI_N_SPHERE_RADIUS
INITIALIZE_VORONOIPARAMS
INITIALIZE_VORONOIPARAMS(4) // SHD_VORONOI_N_SPHERE_RADIUS
w *= scale;
coord *= scale;

View File

@ -159,7 +159,7 @@ VoronoiOutput voronoi_smooth_f1(VoronoiParams params, float coord)
float smoothDistance = 8.0;
float smoothPosition = 0.0;
vec3 smoothColor = vec3(0.0, 0.0, 0.0);
vec3 smoothColor = vec3(0.0);
for (int i = -2; i <= 2; i++) {
float cellOffset = i;
float pointPosition = cellOffset +
@ -286,8 +286,8 @@ VoronoiOutput voronoi_f1(VoronoiParams params, vec2 coord)
vec2 localPosition = coord - cellPosition;
float minDistance = 8.0;
vec2 targetOffset = vec2(0.0, 0.0);
vec2 targetPosition = vec2(0.0, 0.0);
vec2 targetOffset = vec2(0.0);
vec2 targetPosition = vec2(0.0);
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
vec2 cellOffset = vec2(i, j);
@ -315,8 +315,8 @@ VoronoiOutput voronoi_smooth_f1(VoronoiParams params, vec2 coord)
vec2 localPosition = coord - cellPosition;
float smoothDistance = 8.0;
vec3 smoothColor = vec3(0.0, 0.0, 0.0);
vec2 smoothPosition = vec2(0.0, 0.0);
vec3 smoothColor = vec3(0.0);
vec2 smoothPosition = vec2(0.0);
for (int j = -2; j <= 2; j++) {
for (int i = -2; i <= 2; i++) {
vec2 cellOffset = vec2(i, j);
@ -348,10 +348,10 @@ VoronoiOutput voronoi_f2(VoronoiParams params, vec2 coord)
float distanceF1 = 8.0;
float distanceF2 = 8.0;
vec2 offsetF1 = vec2(0.0, 0.0);
vec2 positionF1 = vec2(0.0, 0.0);
vec2 offsetF2 = vec2(0.0, 0.0);
vec2 positionF2 = vec2(0.0, 0.0);
vec2 offsetF1 = vec2(0.0);
vec2 positionF1 = vec2(0.0);
vec2 offsetF2 = vec2(0.0);
vec2 positionF2 = vec2(0.0);
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
vec2 cellOffset = vec2(i, j);
@ -386,7 +386,7 @@ float voronoi_distance_to_edge(VoronoiParams params, vec2 coord)
vec2 cellPosition = floor(coord);
vec2 localPosition = coord - cellPosition;
vec2 vectorToClosest = vec2(0.0, 0.0);
vec2 vectorToClosest = vec2(0.0);
float minDistance = 8.0;
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
@ -426,8 +426,8 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec2 coord)
vec2 cellPosition = floor(coord);
vec2 localPosition = coord - cellPosition;
vec2 closestPoint = vec2(0.0, 0.0);
vec2 closestPointOffset = vec2(0.0, 0.0);
vec2 closestPoint = vec2(0.0);
vec2 closestPointOffset = vec2(0.0);
float minDistance = 8.0;
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
@ -444,7 +444,7 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec2 coord)
}
minDistance = 8.0;
vec2 closestPointToClosestPoint = vec2(0.0, 0.0);
vec2 closestPointToClosestPoint = vec2(0.0);
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
if (i == 0 && j == 0) {
@ -477,8 +477,8 @@ VoronoiOutput voronoi_f1(VoronoiParams params, vec3 coord)
vec3 localPosition = coord - cellPosition;
float minDistance = 8.0;
vec3 targetOffset = vec3(0.0, 0.0, 0.0);
vec3 targetPosition = vec3(0.0, 0.0, 0.0);
vec3 targetOffset = vec3(0.0);
vec3 targetPosition = vec3(0.0);
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
@ -508,8 +508,8 @@ VoronoiOutput voronoi_smooth_f1(VoronoiParams params, vec3 coord)
vec3 localPosition = coord - cellPosition;
float smoothDistance = 8.0;
vec3 smoothColor = vec3(0.0, 0.0, 0.0);
vec3 smoothPosition = vec3(0.0, 0.0, 0.0);
vec3 smoothColor = vec3(0.0);
vec3 smoothPosition = vec3(0.0);
for (int k = -2; k <= 2; k++) {
for (int j = -2; j <= 2; j++) {
for (int i = -2; i <= 2; i++) {
@ -543,10 +543,10 @@ VoronoiOutput voronoi_f2(VoronoiParams params, vec3 coord)
float distanceF1 = 8.0;
float distanceF2 = 8.0;
vec3 offsetF1 = vec3(0.0, 0.0, 0.0);
vec3 positionF1 = vec3(0.0, 0.0, 0.0);
vec3 offsetF2 = vec3(0.0, 0.0, 0.0);
vec3 positionF2 = vec3(0.0, 0.0, 0.0);
vec3 offsetF1 = vec3(0.0);
vec3 positionF1 = vec3(0.0);
vec3 offsetF2 = vec3(0.0);
vec3 positionF2 = vec3(0.0);
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
@ -583,7 +583,7 @@ float voronoi_distance_to_edge(VoronoiParams params, vec3 coord)
vec3 cellPosition = floor(coord);
vec3 localPosition = coord - cellPosition;
vec3 vectorToClosest = vec3(0.0, 0.0, 0.0);
vec3 vectorToClosest = vec3(0.0);
float minDistance = 8.0;
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
@ -627,8 +627,8 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec3 coord)
vec3 cellPosition = floor(coord);
vec3 localPosition = coord - cellPosition;
vec3 closestPoint = vec3(0.0, 0.0, 0.0);
vec3 closestPointOffset = vec3(0.0, 0.0, 0.0);
vec3 closestPoint = vec3(0.0);
vec3 closestPointOffset = vec3(0.0);
float minDistance = 8.0;
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
@ -647,7 +647,7 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec3 coord)
}
minDistance = 8.0;
vec3 closestPointToClosestPoint = vec3(0.0, 0.0, 0.0);
vec3 closestPointToClosestPoint = vec3(0.0);
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
for (int i = -1; i <= 1; i++) {
@ -682,8 +682,8 @@ VoronoiOutput voronoi_f1(VoronoiParams params, vec4 coord)
vec4 localPosition = coord - cellPosition;
float minDistance = 8.0;
vec4 targetOffset = vec4(0.0, 0.0, 0.0, 0.0);
vec4 targetPosition = vec4(0.0, 0.0, 0.0, 0.0);
vec4 targetOffset = vec4(0.0);
vec4 targetPosition = vec4(0.0);
for (int u = -1; u <= 1; u++) {
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
@ -715,8 +715,8 @@ VoronoiOutput voronoi_smooth_f1(VoronoiParams params, vec4 coord)
vec4 localPosition = coord - cellPosition;
float smoothDistance = 8.0;
vec3 smoothColor = vec3(0.0, 0.0, 0.0);
vec4 smoothPosition = vec4(0.0, 0.0, 0.0, 0.0);
vec3 smoothColor = vec3(0.0);
vec4 smoothPosition = vec4(0.0);
for (int u = -2; u <= 2; u++) {
for (int k = -2; k <= 2; k++) {
for (int j = -2; j <= 2; j++) {
@ -752,10 +752,10 @@ VoronoiOutput voronoi_f2(VoronoiParams params, vec4 coord)
float distanceF1 = 8.0;
float distanceF2 = 8.0;
vec4 offsetF1 = vec4(0.0, 0.0, 0.0, 0.0);
vec4 positionF1 = vec4(0.0, 0.0, 0.0, 0.0);
vec4 offsetF2 = vec4(0.0, 0.0, 0.0, 0.0);
vec4 positionF2 = vec4(0.0, 0.0, 0.0, 0.0);
vec4 offsetF1 = vec4(0.0);
vec4 positionF1 = vec4(0.0);
vec4 offsetF2 = vec4(0.0);
vec4 positionF2 = vec4(0.0);
for (int u = -1; u <= 1; u++) {
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {
@ -794,7 +794,7 @@ float voronoi_distance_to_edge(VoronoiParams params, vec4 coord)
vec4 cellPosition = floor(coord);
vec4 localPosition = coord - cellPosition;
vec4 vectorToClosest = vec4(0.0, 0.0, 0.0, 0.0);
vec4 vectorToClosest = vec4(0.0);
float minDistance = 8.0;
for (int u = -1; u <= 1; u++) {
for (int k = -1; k <= 1; k++) {
@ -842,8 +842,8 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec4 coord)
vec4 cellPosition = floor(coord);
vec4 localPosition = coord - cellPosition;
vec4 closestPoint = vec4(0.0, 0.0, 0.0, 0.0);
vec4 closestPointOffset = vec4(0.0, 0.0, 0.0, 0.0);
vec4 closestPoint = vec4(0.0);
vec4 closestPointOffset = vec4(0.0);
float minDistance = 8.0;
for (int u = -1; u <= 1; u++) {
for (int k = -1; k <= 1; k++) {
@ -864,7 +864,7 @@ float voronoi_n_sphere_radius(VoronoiParams params, vec4 coord)
}
minDistance = 8.0;
vec4 closestPointToClosestPoint = vec4(0.0, 0.0, 0.0, 0.0);
vec4 closestPointToClosestPoint = vec4(0.0);
for (int u = -1; u <= 1; u++) {
for (int k = -1; k <= 1; k++) {
for (int j = -1; j <= 1; j++) {