diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-03-04 16:05:02 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-03-04 15:21:01 +0000 |
commit | c82207d54c76d8b66be010bfa63e45f9507891fa (patch) | |
tree | 8d112e96bc1fa42dbc49907f53d71fa5b893869a /examples/qt3d/tessellation-modes/shaders/triangles.tes | |
parent | 8bff6813ee2e7a59d27bd8639dc9a6e23287a0c8 (diff) |
Move the examples under a qt3d subdir
Modules cannot have their examples in the top-level examples directory because
in the pre-built packages all modules' examples are merged together.
Change-Id: I80fdbb8f1ec6f3d8fd793e4d856e705000237127
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'examples/qt3d/tessellation-modes/shaders/triangles.tes')
-rw-r--r-- | examples/qt3d/tessellation-modes/shaders/triangles.tes | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/qt3d/tessellation-modes/shaders/triangles.tes b/examples/qt3d/tessellation-modes/shaders/triangles.tes new file mode 100644 index 000000000..c833e9587 --- /dev/null +++ b/examples/qt3d/tessellation-modes/shaders/triangles.tes @@ -0,0 +1,39 @@ +#version 400 core + +layout( triangles, fractional_even_spacing, ccw ) in; + +out EyeSpaceVertex { + vec3 position; + vec3 normal; +} te_out; + +uniform mat4 modelViewMatrix; +uniform mat3 normalMatrix; +uniform mat4 projectionMatrix; +uniform mat4 mvp; + +void main() +{ + float u = gl_TessCoord.x; + float v = gl_TessCoord.y; + float w = gl_TessCoord.z; + + vec4 p0 = gl_in[0].gl_Position; + vec4 p1 = gl_in[1].gl_Position; + vec4 p2 = gl_in[2].gl_Position; + + // Linearly interpolate to the vertex position using the + // (u,v) barycentric coords + vec4 pos = (u * p0) + + (v * p1) + + (w * p2); + + // Transform to eye space (for lighting calcs) + te_out.position = vec3( modelViewMatrix * pos ); + + // Assume normal points along z + te_out.normal = normalize( normalMatrix * vec3( 0.0, 0.0, 1.0 ) ); + + // Transform to clip-space + gl_Position = mvp * pos; +} |