32 lines
769 B
GLSL
32 lines
769 B
GLSL
#version 410 core
|
|
|
|
layout (location = 0) in vec3 aPos;
|
|
layout (location = 1) in vec3 aNormal;
|
|
layout (location = 2) in vec3 aColor;
|
|
layout (location = 3) in vec2 aTexCoord;
|
|
|
|
out DATA {
|
|
vec3 Normal;
|
|
vec3 color;
|
|
vec2 texCoord;
|
|
vec3 WorldPos;
|
|
} data_out;
|
|
|
|
uniform mat4 model;
|
|
// uniform mat4 camMatrix;
|
|
uniform mat4 view;
|
|
uniform mat4 proj;
|
|
uniform mat4 translation;
|
|
uniform mat4 rotation;
|
|
uniform mat4 scale;
|
|
|
|
void main() {
|
|
mat4 M = translation * rotation * scale * model;
|
|
vec4 worldPos = M * vec4(aPos, 1.0);
|
|
gl_Position = proj * view * worldPos;
|
|
data_out.WorldPos = worldPos.xyz;
|
|
data_out.Normal = mat3(transpose(inverse(M))) * aNormal;
|
|
data_out.color = aColor;
|
|
data_out.texCoord = vec2(aTexCoord.x, 1.0 - aTexCoord.y);
|
|
}
|