| #version 450 |
| |
| layout(location = 0) in vec3 vertexPosition; |
| layout(location = 1) in vec2 vertexTexCoord; |
| |
| layout(location = 0) out vec3 position; |
| layout(location = 1) out vec2 texCoord; |
| |
| 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 modelView; |
| mat3 modelNormalMatrix; |
| mat4 inverseModelViewMatrix; |
| mat4 mvp; |
| mat4 inverseModelViewProjectionMatrix; |
| }; |
| |
| layout(std140, binding = 2) uniform qt3d_custom_uniforms { |
| mat3 texCoordTransform; |
| }; |
| |
| void main() |
| { |
| vec3 tt = texCoordTransform * vec3(vertexTexCoord, 1.0); |
| texCoord = (tt / tt.z).xy; |
| position = vec3( modelView * vec4( vertexPosition, 1.0 ) ); |
| |
| gl_Position = mvp * vec4( vertexPosition, 1.0 ); |
| } |