WarHorse/resources/EngineResources/shaders/scene_vertex.glsl
2026-06-20 03:04:33 +01:00

38 lines
No EOL
1.1 KiB
GLSL

#version 450
layout(location = 0) in vec3 inPos;
layout(location = 1) in vec3 inNormal;
layout(location = 2) in vec3 inTangent;
layout(location = 3) in vec3 inBitangent;
layout(location = 4) in vec2 inTextCoords;
layout(location = 0) out vec4 outPos;
layout(location = 1) out vec3 outNormal;
layout(location = 2) out vec3 outTangent;
layout(location = 3) out vec3 outBitangent;
layout(location = 4) out vec2 outTextCoords;
layout(set = 0, binding = 0) uniform ProjUniform{
mat4 matrix;
} projUniform;
layout(set = 1, binding = 0) uniform ViewUniform{
mat4 matrix;
} viewUniform;
layout(push_constant) uniform pc{
mat4 modelMatrix;
} push_constants;
void main()
{
vec4 worldPos = push_constants.modelMatrix * vec4(inPos,1);
gl_Position = projUniform.matrix * viewUniform.matrix * push_constants.modelMatrix * vec4(inPos,1);
mat3 mNormal = transpose(inverse(mat3(push_constants.modelMatrix)));
outPos = worldPos;
outNormal = mNormal * normalize(inNormal);
outTangent = mNormal * normalize(inTangent);
outBitangent = mNormal * normalize(inBitangent);
outTextCoords = inTextCoords;
}