EEVEE-Next: Voronoi colors are pure emissive

The voronoi texture node only sets the first 3 components of the
color. The alpha value is never set. Normally this is covered
when using it in a shader node, but when directly connected to
the AOV output, the color was stored as a pure emissive color.

This resulted in incorrect colors in the viewport and image renders.

This is a partial fix for #118494

Pull Request: https://projects.blender.org/blender/blender/pulls/118497
This commit is contained in:
Jeroen Bakker
2024-02-21 11:32:29 +01:00
parent a2a03252c6
commit e6eecdf614

View File

@@ -63,7 +63,7 @@ void node_tex_voronoi_f1_1d(vec3 coord,
params.max_distance = 0.5 + 0.5 * params.randomness;
VoronoiOutput Output = fractal_voronoi_x_fx(params, w);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outW = Output.Position.w;
}
@@ -93,7 +93,7 @@ void node_tex_voronoi_smooth_f1_1d(vec3 coord,
params.max_distance = 0.5 + 0.5 * params.randomness;
VoronoiOutput Output = fractal_voronoi_x_fx(params, w);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outW = Output.Position.w;
}
@@ -123,7 +123,7 @@ void node_tex_voronoi_f2_1d(vec3 coord,
params.max_distance = (0.5 + 0.5 * params.randomness) * 2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, w);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outW = Output.Position.w;
}
@@ -208,7 +208,7 @@ void node_tex_voronoi_f1_2d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -238,7 +238,7 @@ void node_tex_voronoi_smooth_f1_2d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -269,7 +269,7 @@ void node_tex_voronoi_f2_2d(vec3 coord,
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord.xy);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -354,7 +354,7 @@ void node_tex_voronoi_f1_3d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -384,7 +384,7 @@ void node_tex_voronoi_smooth_f1_3d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -415,7 +415,7 @@ void node_tex_voronoi_f2_3d(vec3 coord,
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, coord);
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
}
@@ -501,7 +501,7 @@ void node_tex_voronoi_f1_4d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
outW = Output.Position.w;
}
@@ -533,7 +533,7 @@ void node_tex_voronoi_smooth_f1_4d(vec3 coord,
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;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
outW = Output.Position.w;
}
@@ -566,7 +566,7 @@ void node_tex_voronoi_f2_4d(vec3 coord,
2.0;
VoronoiOutput Output = fractal_voronoi_x_fx(params, vec4(coord, w));
outDistance = Output.Distance;
outColor.xyz = Output.Color;
outColor = vec4(Output.Color, 1.0);
outPosition = Output.Position.xyz;
outW = Output.Position.w;
}