Files

44 lines
874 B
GLSL
Raw Permalink Normal View History

2026-07-18 14:31:15 +02:00
#version 450
layout(location = 0) in vec3 pos;
layout(location = 1) in vec3 norm;
layout(location = 2) in vec2 uv;
layout(location = 3) in vec4 tangent;
layout(set = 0, binding = 0) uniform Camera {
mat4 proj;
mat4 view;
} cam;
struct SceneNode {
uint transformIdx;
uint meshIdx;
};
layout(set = 2, binding = 1) uniform ObjectInfo {
SceneNode nodes[];
} objectInfo;
layout(location = 0) out vec3 outPos;
layout(location = 1) out vec3 outNormal;
layout(location = 2) out vec2 outUV;
layout(location = 3) out mat3 outTBN;
layout( push_constant ) uniform constants
{
uint transformIdx;
uint materialIdx;
} PushConstants;
void main() {
vec3 bitangent = cross(norm, tangent.xyz) * tangent.w;
outTBN = mat3(tangent.xyz, bitangent, norm);
outPos = pos.xyz * 0.05;
outNormal = norm.xyz;
outUV = uv;
gl_Position = cam.proj * cam.view * vec4(outPos, 1.0);
}