| #version 450 |
| |
| layout(location = 0) in vec3 vertexPosition; |
| layout(location = 0) out vec3 texCoord0; |
| |
| layout(std140, binding = 0) uniform qt3d_render_view_uniforms { |
| mat4 viewMatrix; |
| mat4 projectionMatrix; |
| mat4 viewProjectionMatrix; |
| mat4 inverseViewMatrix; |
| mat4 inverseProjectionMatrix; |
| mat4 inverseViewProjectionMatrix; |
| mat4 viewportMatrix; |
| mat4 inverseViewportMatrix; |
| vec4 textureTransformMatrix; |
| vec3 eyePosition; |
| float aspectRatio; |
| float gamma; |
| float exposure; |
| float time; |
| }; |
| |
| layout(std140, binding = 1) uniform qt3d_command_uniforms { |
| mat4 modelMatrix; |
| mat4 inverseModelMatrix; |
| mat4 modelViewMatrix; |
| mat3 modelNormalMatrix; |
| mat4 inverseModelViewMatrix; |
| mat4 modelViewProjection; |
| mat4 inverseModelViewProjectionMatrix; |
| }; |
| |
| void main() |
| { |
| texCoord0 = vertexPosition.xyz; |
| // Converting the viewMatrix to a mat3, then back to a mat4 |
| // removes the translation component from it |
| gl_Position = vec4(projectionMatrix * mat4(mat3(viewMatrix)) * modelMatrix * vec4(vertexPosition, 1.0)).xyww; |
| } |