3b1b-manim/manimlib/shaders/surface/vert.glsl

24 lines
532 B
Text
Raw Normal View History

2020-06-04 15:41:20 -07:00
#version 330
in vec3 point;
in vec3 du_point;
in vec3 dv_point;
2023-01-15 19:09:29 -08:00
in vec4 rgba;
2020-06-04 15:41:20 -07:00
out vec4 v_color;
#INSERT emit_gl_Position.glsl
#INSERT get_unit_normal.glsl
#INSERT finalize_color.glsl
2020-06-04 15:41:20 -07:00
const float EPSILON = 1e-10;
2020-06-04 15:41:20 -07:00
void main(){
emit_gl_Position(point);
vec3 du = (du_point - point);
vec3 dv = (dv_point - point);
vec3 normal = cross(du, dv);
float mag = length(normal);
vec3 unit_normal = (mag < EPSILON) ? vec3(0, 0, sign(point.z)) : normal / mag;
v_color = finalize_color(rgba, point, unit_normal);
2020-06-04 15:41:20 -07:00
}