// XC_BUILTIN_FORWARD_LIT_OPENGL_VS #version 430 layout(location = 0) in vec3 aPosition; layout(location = 1) in vec3 aNormal; layout(location = 2) in vec2 aTexCoord; layout(std140, binding = 0) uniform PerObjectConstants { mat4 gProjectionMatrix; mat4 gViewMatrix; mat4 gModelMatrix; mat4 gNormalMatrix; }; out vec3 vNormalWS; out vec2 vTexCoord; out vec3 vPositionWS; void main() { vec4 positionWS = gModelMatrix * vec4(aPosition, 1.0); vec4 positionVS = gViewMatrix * positionWS; gl_Position = gProjectionMatrix * positionVS; vNormalWS = mat3(gNormalMatrix) * aNormal; vTexCoord = aTexCoord; vPositionWS = positionWS.xyz; }