24 lines
582 B
GLSL
24 lines
582 B
GLSL
#version 410 core
|
|
layout(location = 0) in vec3 aPos;
|
|
layout(location = 1) in vec3 aColor;
|
|
layout(location = 2) in vec3 aNormal;
|
|
layout(location = 6) in mat4 aInstanceModel;
|
|
|
|
uniform mat4 uView;
|
|
uniform mat4 uProjection;
|
|
|
|
out vec3 FragPos;
|
|
out vec3 Normal;
|
|
out vec3 Color;
|
|
|
|
void main() {
|
|
vec4 worldPos = aInstanceModel * vec4(aPos, 1.0);
|
|
FragPos = worldPos.xyz;
|
|
|
|
// Transform normal to world space (assuming uniform scaling)
|
|
Normal = mat3(transpose(inverse(aInstanceModel))) * aNormal;
|
|
|
|
Color = aColor;
|
|
gl_Position = uProjection * uView * worldPos;
|
|
}
|