forked from LeenkxTeam/LNXSDK
21 lines
554 B
GLSL
21 lines
554 B
GLSL
#version 450
|
|
|
|
// World to view projection matrix to correctly position the vertex on screen
|
|
uniform mat4 WVP;
|
|
// Matrix to transform normals from local into world space
|
|
uniform mat3 N;
|
|
|
|
// Position and normal vectors of the current vertex in local space
|
|
// Leenkx packs the vertex data to preserve memory, so nor.z values are
|
|
// saved in pos.w
|
|
in vec4 pos; // pos.xyz, nor.w
|
|
in vec2 nor; // nor.xy
|
|
|
|
// Normal vector in world space
|
|
out vec3 wnormal;
|
|
|
|
void main() {
|
|
wnormal = normalize(N * vec3(nor.xy, pos.w));
|
|
gl_Position = WVP * vec4(pos.xyz, 1.0);
|
|
}
|