diff options
author | Paul Lemire <paul.lemire350@gmail.com> | 2015-07-19 18:17:02 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2015-07-29 06:09:04 +0000 |
commit | e87187e9a0d6acb18c874ac27fc565bda1d51e6e (patch) | |
tree | 7db52a6e93c778f2683c4e9a18455a74960cc7e5 /examples/qt3d/clip-planes-qml/phong-clip.vert | |
parent | f05c1d69e415187b32bfc419d89cbd38265f9de0 (diff) |
clip-planes-qml examples
Demonstrates use of:
-StencilOp / StencilTest
-StateSet and nested StateSet
-ClipPlane
-Multiple render passes with different shaders
-Use of layers
Change-Id: I2d3f87e99e1fdbf9ed22e81838d6cc1744b6b8c1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples/qt3d/clip-planes-qml/phong-clip.vert')
-rw-r--r-- | examples/qt3d/clip-planes-qml/phong-clip.vert | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/qt3d/clip-planes-qml/phong-clip.vert b/examples/qt3d/clip-planes-qml/phong-clip.vert new file mode 100644 index 000000000..95b83bf75 --- /dev/null +++ b/examples/qt3d/clip-planes-qml/phong-clip.vert @@ -0,0 +1,38 @@ +#version 150 core + +in vec3 vertexPosition; +in vec3 vertexNormal; + +out VertexData { + vec3 position; + vec3 normal; +} v_out; + +struct Section { + vec4 equation; + vec3 center; +}; + +struct SectionsData { + int sectionsCount; + Section sections[8]; +}; + +uniform SectionsData sectionsData; +uniform mat4 modelView; +uniform mat4 modelMatrix; +uniform mat3 modelViewNormal; +uniform mat4 mvp; + +void main() +{ + v_out.normal = normalize( modelViewNormal * vertexNormal ); + v_out.position = vec4(modelView * vec4( vertexPosition, 1.0 )).xyz; + vec3 worldPos = vec4(modelMatrix * vec4(vertexPosition, 1.0)).xyz; + + for (int i = 0; i < sectionsData.sectionsCount; ++i) { + gl_ClipDistance[i] = dot(vec4(worldPos, 1.0), sectionsData.sections[i].equation); + } + + gl_Position = mvp * vec4( vertexPosition, 1.0 ); +} |