29 lines
789 B
GLSL
29 lines
789 B
GLSL
#version 450
|
|
|
|
layout(location = 0) in vec4 aPosition;
|
|
layout(location = 1) in vec4 aNormal;
|
|
layout(location = 2) in vec2 aTexCoord;
|
|
|
|
layout(set = 0, binding = 0, std140) uniform SceneData {
|
|
mat4 gProjectionMatrix;
|
|
mat4 gViewMatrix;
|
|
mat4 gModelMatrix;
|
|
vec4 gCameraPosition;
|
|
vec4 gLightDirection;
|
|
vec4 gLightColor;
|
|
vec4 gAmbientColor;
|
|
};
|
|
|
|
layout(location = 0) out vec3 vWorldPosition;
|
|
layout(location = 1) out vec3 vWorldNormal;
|
|
layout(location = 2) out vec2 vTexCoord;
|
|
|
|
void main() {
|
|
vec4 worldPosition = gModelMatrix * aPosition;
|
|
vec4 viewPosition = gViewMatrix * worldPosition;
|
|
gl_Position = gProjectionMatrix * viewPosition;
|
|
vWorldPosition = worldPosition.xyz;
|
|
vWorldNormal = mat3(gModelMatrix) * aNormal.xyz;
|
|
vTexCoord = aTexCoord;
|
|
}
|