33 lines
920 B
GLSL
33 lines
920 B
GLSL
#version 460 core
|
|
|
|
layout(location = 0) in vec3 inPosition;
|
|
layout(location = 1) in vec3 inNormal;
|
|
layout(location = 2) in vec2 inUV;
|
|
|
|
layout(location = 0) out vec3 outFragPos;
|
|
layout(location = 1) out vec4 outShadowPos;
|
|
layout(location = 2) out vec3 outNormal;
|
|
layout(location = 3) out vec2 outUV;
|
|
|
|
layout(set = 0, binding = 0) uniform SceneInfo {
|
|
mat4 vp, lightSpace;
|
|
} sceneInfo;
|
|
|
|
layout(push_constant) uniform PushConstants {
|
|
mat4 m;
|
|
vec3 c;
|
|
} pushConstants;
|
|
|
|
const mat4 biasMat = mat4(
|
|
0.5, 0.0, 0.0, 0.0,
|
|
0.0, 0.5, 0.0, 0.0,
|
|
0.0, 0.0, 1.0, 0.0,
|
|
0.5, 0.5, 0.0, 1.0);
|
|
|
|
void main() {
|
|
gl_Position = sceneInfo.vp * pushConstants.m * vec4(inPosition, 1.0);
|
|
outFragPos = vec3(pushConstants.m * vec4(inPosition, 1.0));
|
|
outShadowPos = (biasMat * sceneInfo.lightSpace) * vec4(inPosition, 1.0);
|
|
outNormal = mat3(transpose(inverse(pushConstants.m))) * inNormal;
|
|
outUV = inUV;
|
|
}
|