Add Fractal Voronoi Noise V.2 #106827
|
@ -417,6 +417,7 @@ set(GLSL_SRC
|
|||
shaders/material/gpu_shader_material_eevee_specular.glsl
|
||||
shaders/material/gpu_shader_material_emission.glsl
|
||||
shaders/material/gpu_shader_material_fractal_noise.glsl
|
||||
shaders/material/gpu_shader_material_fractal_voronoi.glsl
|
||||
shaders/material/gpu_shader_material_fresnel.glsl
|
||||
shaders/material/gpu_shader_material_gamma.glsl
|
||||
shaders/material/gpu_shader_material_geometry.glsl
|
||||
|
@ -481,6 +482,7 @@ set(GLSL_SRC
|
|||
shaders/material/gpu_shader_material_volume_absorption.glsl
|
||||
shaders/material/gpu_shader_material_volume_principled.glsl
|
||||
shaders/material/gpu_shader_material_volume_scatter.glsl
|
||||
shaders/material/gpu_shader_material_voronoi.glsl
|
||||
shaders/material/gpu_shader_material_wireframe.glsl
|
||||
shaders/material/gpu_shader_material_world_normals.glsl
|
||||
|
||||
|
|
|
@ -19,6 +19,6 @@ void fractal_voronoi_f1_3d(vec3 coord,
|
|||
randomness,
|
||||
metric,
|
||||
outDistance,
|
||||
vec4 outColor,
|
||||
vec3 outPosition);
|
||||
outColor,
|
||||
outPosition);
|
||||
}
|
||||
|
|
|
@ -1107,31 +1107,6 @@ void node_tex_voronoi_n_sphere_radius_2d(vec3 coord,
|
|||
|
||||
/* **** 3D Voronoi **** */
|
||||
|
||||
float voronoi_distance(vec3 a, vec3 b, float metric, float exponent)
|
||||
{
|
||||
if (metric == 0.0) // SHD_VORONOI_EUCLIDEAN
|
||||
{
|
||||
return distance(a, b);
|
||||
}
|
||||
else if (metric == 1.0) // SHD_VORONOI_MANHATTAN
|
||||
{
|
||||
return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);
|
||||
}
|
||||
else if (metric == 2.0) // SHD_VORONOI_CHEBYCHEV
|
||||
{
|
||||
return max(abs(a.x - b.x), max(abs(a.y - b.y), abs(a.z - b.z)));
|
||||
}
|
||||
else if (metric == 3.0) // SHD_VORONOI_MINKOWSKI
|
||||
{
|
||||
return pow(pow(abs(a.x - b.x), exponent) + pow(abs(a.y - b.y), exponent) +
|
||||
pow(abs(a.z - b.z), exponent),
|
||||
1.0 / exponent);
|
||||
}
|
||||
else {
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
void node_tex_voronoi_f1_3d(vec3 coord,
|
||||
float w,
|
||||
float scale,
|
||||
|
|
|
@ -1,7 +1,32 @@
|
|||
#pragma BLENDER_REQUIRE(gpu_shader_common_hash.glsl)
|
||||
#pragma BLENDER_REQUIRE(gpu_shader_common_math_utils.glsl)
|
||||
|
||||
voronoi_f1_3d(vec3 coord,
|
||||
float voronoi_distance(vec3 a, vec3 b, float metric, float exponent)
|
||||
{
|
||||
if (metric == 0.0) // SHD_VORONOI_EUCLIDEAN
|
||||
{
|
||||
return distance(a, b);
|
||||
}
|
||||
else if (metric == 1.0) // SHD_VORONOI_MANHATTAN
|
||||
{
|
||||
return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);
|
||||
}
|
||||
else if (metric == 2.0) // SHD_VORONOI_CHEBYCHEV
|
||||
{
|
||||
return max(abs(a.x - b.x), max(abs(a.y - b.y), abs(a.z - b.z)));
|
||||
}
|
||||
else if (metric == 3.0) // SHD_VORONOI_MINKOWSKI
|
||||
{
|
||||
return pow(pow(abs(a.x - b.x), exponent) + pow(abs(a.y - b.y), exponent) +
|
||||
pow(abs(a.z - b.z), exponent),
|
||||
1.0 / exponent);
|
||||
}
|
||||
else {
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
void voronoi_f1_3d(vec3 coord,
|
||||
float scale,
|
||||
float exponent,
|
||||
float randomness,
|
||||
|
|
Loading…
Reference in New Issue