More explicitly unpack v_base_normal

This commit is contained in:
Grant Sanderson 2024-08-19 21:45:26 -05:00
parent 6223623b40
commit 0b2c59ac6b
2 changed files with 8 additions and 7 deletions

View file

@ -38,6 +38,5 @@ void main() {
float x = uv_coords.x;
float y = uv_coords.y;
float Fxy = (y - x * x);
// if(!winding && orientation < 0) Fxy *= -1;
if(Fxy < 0) discard;
}

View file

@ -26,9 +26,7 @@ const vec2 SIMPLE_QUADRATIC[3] = vec2[3](
#INSERT finalize_color.glsl
void emit_triangle(vec3 points[3], vec4 v_color[3]){
vec3 unit_normal = v_base_normal[1];
void emit_triangle(vec3 points[3], vec4 v_color[3], vec3 unit_normal){
orientation = sign(determinant(mat3(
unit_normal,
points[1] - points[0],
@ -57,17 +55,21 @@ void main(){
// Check zero fill
if (vec3(v_color[0].a, v_color[1].a, v_color[2].a) == vec3(0.0, 0.0, 0.0)) return;
vec3 base_point = v_base_normal[0];
vec3 unit_normal = v_base_normal[1];
// Emit main triangle
fill_all = 1.0;
emit_triangle(
vec3[3](v_base_normal[0], verts[0], verts[2]),
vec4[3](v_color[1], v_color[0], v_color[2])
vec3[3](base_point, verts[0], verts[2]),
vec4[3](v_color[1], v_color[0], v_color[2]),
unit_normal
);
// Edge triangle
fill_all = 0.0;
emit_triangle(
vec3[3](verts[0], verts[1], verts[2]),
vec4[3](v_color[0], v_color[1], v_color[2])
vec4[3](v_color[0], v_color[1], v_color[2]),
unit_normal
);
}