diff options
author | Jean-Michaël Celerier <jean-michael.celerier@kdab.com> | 2020-03-17 16:07:38 +0100 |
---|---|---|
committer | Jean-Michaël Celerier <jean-michael.celerier@kdab.com> | 2020-04-22 09:36:46 +0200 |
commit | df4ec04dae8c0ce9fa3b27bc8e48eb2d36a20962 (patch) | |
tree | 723fe393774b3f697bd9bc5d87a41220b377953c /src/extras/shaders/rhi/default.vert | |
parent | a01dbe5b0e1b912c7210abc304700020e685aff0 (diff) |
rhi: Port most of Qt3DExtras materials to RHI
Change-Id: Iba20f047404b20c1e5b9bdcef917b3c2a1000d59
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/extras/shaders/rhi/default.vert')
-rw-r--r-- | src/extras/shaders/rhi/default.vert | 55 |
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); |