File: triangles.tes

package info (click to toggle)
qt6-3d 6.8.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 191,232 kB
  • sloc: cpp: 394,755; ansic: 11,426; python: 467; objc: 260; javascript: 158; sh: 132; xml: 38; makefile: 20
file content (39 lines) | stat: -rw-r--r-- 905 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;
}