34 lines
898 B
Plaintext
34 lines
898 B
Plaintext
#version 430
|
|
|
|
layout(triangles) in;
|
|
|
|
layout (binding = 0) uniform sampler2D heightmap;
|
|
|
|
uniform mat4 model;
|
|
uniform mat4 projection;
|
|
uniform mat4 view;
|
|
|
|
in PipelineData {
|
|
vec4 position;
|
|
vec2 texture_coordinate;
|
|
} te_in[];
|
|
|
|
out PipelineData {
|
|
vec4 position;
|
|
vec2 texture_coordinate;
|
|
} te_out;
|
|
|
|
void main() {
|
|
te_out.texture_coordinate = gl_TessCoord.x * te_in[0].texture_coordinate;
|
|
te_out.texture_coordinate += gl_TessCoord.y * te_in[1].texture_coordinate;
|
|
te_out.texture_coordinate += gl_TessCoord.z * te_in[2].texture_coordinate;
|
|
|
|
te_out.position = gl_TessCoord.x * te_in[0].position;
|
|
te_out.position += gl_TessCoord.y * te_in[1].position;
|
|
te_out.position += gl_TessCoord.z * te_in[2].position;
|
|
|
|
te_out.position.y += texture(heightmap, te_out.texture_coordinate).r;
|
|
|
|
mat4 pvm = projection * view * model;
|
|
gl_Position = pvm * te_out.position;
|
|
} |