27 lines
837 B
GLSL
27 lines
837 B
GLSL
|
#version 330
|
||
|
layout(location = 0) in vec3 aPosition;
|
||
|
layout(location = 1) in vec3 aNormal;
|
||
|
|
||
|
// Solid color input from application
|
||
|
|
||
|
// Color to output to fragment shader
|
||
|
out vec3 vNormal;
|
||
|
|
||
|
// Model View Projection matrix found by P * V * M
|
||
|
//uniform mat3 uModelInverseTransposed;
|
||
|
uniform mat4 uModel;
|
||
|
uniform mat4 uView;
|
||
|
uniform mat4 uProjection;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
gl_Position = uProjection * uView * uModel * vec4(aPosition, 1.0);
|
||
|
|
||
|
// This isn't a shader we plan to use heavily, it's useful for testing normals
|
||
|
// + We can see what the value of normals are on the object based on color
|
||
|
vNormal = mat3(transpose(inverse(uModel))) * aNormal;
|
||
|
// vNormal = uModelInverseTransposed * aNormal;
|
||
|
// vNormal = aNormal; // This is possible without the additional uniform
|
||
|
// Or you could find this on the GPU using the uModel matrix
|
||
|
}
|