Tesseract-Engine/assets/shaders/UnlitMaterial.vert
OusmBlueNinja 41a09cc8f3 shtuff
2024-12-30 00:51:58 -06:00

34 lines
1.0 KiB
GLSL

#version 330 core
// Input vertex attributes (from the VAO)
layout(location = 0) in vec3 aPos; // Vertex position
layout(location = 1) in vec3 aNormal; // Vertex normal
layout(location = 2) in vec2 aTexCoords; // Vertex texture coordinates
layout(location = 3) in int aTexIndex; // Texture index (integer)
// Uniforms
uniform mat4 uMVP; // Model-View-Projection matrix
uniform mat4 uModel; // Model matrix
// Output variables to the fragment shader
out vec2 TexCoords; // Passed texture coordinates
flat out int TextureIndex; // Passed texture index
void main()
{
// Transform vertex position to clip space
gl_Position = uMVP * vec4(aPos, 1.0);
// Transform vertex position to world space
vec3 FragPos = vec3(uModel * vec4(aPos, 1.0));
// Transform normal to world space
vec3 Normal = mat3(transpose(inverse(uModel))) * aNormal;
// Pass through texture coordinates
TexCoords = aTexCoords;
// Pass through the texture index
TextureIndex = aTexIndex;
}