mirror of
https://github.com/quantum5/punyverse.git
synced 2025-04-24 13:11:57 -04:00
31 lines
726 B
GLSL
31 lines
726 B
GLSL
#version 130
|
|
|
|
in vec3 a_normal;
|
|
in vec2 a_tangent;
|
|
in vec2 a_uv;
|
|
|
|
out vec2 v_uv;
|
|
out vec3 v_normal;
|
|
out vec3 v_position;
|
|
out vec3 v_camDirection;
|
|
out mat3 v_TBN;
|
|
|
|
uniform float u_radius;
|
|
uniform mat4 u_mvpMatrix;
|
|
uniform mat4 u_mvMatrix;
|
|
uniform mat4 u_modelMatrix;
|
|
|
|
void main() {
|
|
vec3 position = u_radius * a_normal;
|
|
|
|
gl_Position = u_mvpMatrix * vec4(position, 1);
|
|
|
|
v_normal = normalize(vec3(u_modelMatrix * vec4(a_normal, 0)));
|
|
v_uv = a_uv;
|
|
v_position = (u_modelMatrix * vec4(position, 1)).xyz;
|
|
v_camDirection = (u_mvMatrix * vec4(position, 1)).xyz;
|
|
|
|
vec3 tangent = normalize((u_modelMatrix * vec4(a_tangent, a_normal.z, 0)).xyz);
|
|
v_TBN = mat3(tangent, cross(tangent, v_normal), v_normal);
|
|
}
|