summaryrefslogtreecommitdiffstats
path: root/src/extras/shaders/rhi/default.vert
diff options
context:
space:
mode:
Diffstat (limited to 'src/extras/shaders/rhi/default.vert')
-rw-r--r--src/extras/shaders/rhi/default.vert55
1 files changed, 40 insertions, 15 deletions
diff --git a/src/extras/shaders/rhi/default.vert b/src/extras/shaders/rhi/default.vert
index f97cd099d..5679d8681 100644
--- a/src/extras/shaders/rhi/default.vert
+++ b/src/extras/shaders/rhi/default.vert
@@ -48,23 +48,48 @@
**
****************************************************************************/
-#version 150 core
+#version 450
-in vec3 vertexPosition;
-in vec3 vertexNormal;
-in vec4 vertexTangent;
-in vec2 vertexTexCoord;
+layout(location = 0) in vec3 vertexPosition;
+layout(location = 1) in vec3 vertexNormal;
+layout(location = 2) in vec4 vertexTangent;
+layout(location = 3) in vec2 vertexTexCoord;
-out vec3 worldPosition;
-out vec3 worldNormal;
-out vec4 worldTangent;
-out vec2 texCoord;
+layout(location = 0) out vec3 worldPosition;
+layout(location = 1) out vec3 worldNormal;
+layout(location = 2) out vec4 worldTangent;
+layout(location = 3) out vec2 texCoord;
-uniform mat4 modelMatrix;
-uniform mat3 modelNormalMatrix;
-uniform mat4 modelViewProjection;
+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;
+};
-uniform float texCoordScale;
+layout(std140, binding = 1) uniform qt3d_command_uniforms {
+ mat4 modelMatrix;
+ mat4 inverseModelMatrix;
+ mat4 modelViewMatrix;
+ mat3 modelNormalMatrix;
+ mat4 inverseModelViewMatrix;
+ mat4 modelViewProjection;
+ mat4 inverseModelViewProjectionMatrix;
+};
+
+layout(std140, binding = 2) uniform qt3d_extras_uniforms {
+ float texCoordScale;
+};
void main()
{
@@ -74,8 +99,8 @@ void main()
// Transform position, normal, and tangent to world space
worldPosition = vec3(modelMatrix * vec4(vertexPosition, 1.0));
worldNormal = normalize(modelNormalMatrix * vertexNormal);
- worldTangent.xyz = normalize(vec3(modelMatrix * vec4(vertexTangent.xyz, 0.0)));
- worldTangent.w = vertexTangent.w;
+ vec3 wt = normalize(vec3(modelMatrix * vec4(vertexTangent.xyz, 0.0)));
+ worldTangent = vec4(wt, vertexTangent.w);
// Calculate vertex position in clip coordinates
gl_Position = modelViewProjection * vec4(vertexPosition, 1.0);