Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graphite/dist/shaders/deferred/static.vert

36 lines
1.1 KiB
GLSL
Raw Normal View History

2024-01-03 16:05:02 -05:00
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inNormal;
layout(location = 2) in vec2 inUV;
layout(location = 3) in vec3 inTangent;
layout(location = 4) in mat4 inModel;
layout(location = 0) out vec3 outFragPos;
layout(location = 1) out vec3 outNormal;
layout(location = 2) out vec2 outUV;
layout(location = 3) out mat3 TBN;
layout(std140, binding = 0) uniform UniformObjectData {
mat4 projection, view, model;
vec4 albedoTint;
vec4 emission;
float metallic, roughness;
} objectData;
out gl_PerVertex {
vec4 gl_Position;
};
void main() {
gl_Position = objectData.projection * objectData.view * inModel * vec4(inPosition, 1.0);
outFragPos = vec3(inModel * vec4(inPosition, 1.0));
outNormal = transpose(inverse(mat3(inModel))) * inNormal;
outUV = inUV;
vec3 Bitangent = cross(inTangent, normalize(outNormal));
vec3 T = normalize(vec3(inModel * vec4(inTangent, 0.0)));
vec3 B = normalize(vec3(inModel * vec4(Bitangent, 0.0)));
vec3 N = normalize(vec3(inModel * vec4(inNormal, 0.0)));
TBN = mat3(T, B, N);
}