blob: 58e13085ee139e075220ca256a1bcc8faeb803bf (
plain) (
blame)
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
|
#version 330
// CSci-4611 Assignment 5: Art Render
// TODO: You need to modify this vertex shader to move the edge vertex along
// the normal away from the mesh surface IF you determine that the vertex
// belongs to a silhouette edge.
uniform mat4 model_view_matrix;
uniform mat4 normal_matrix;
uniform mat4 proj_matrix;
uniform float thickness;
layout(location = 0) in vec3 vertex;
layout(location = 1) in vec3 normal;
layout(location = 2) in vec3 left_normal;
layout(location = 3) in vec3 right_normal;
void main() {
vec3 e = (model_view_matrix * vec4(vertex, 1.0)).xyz;
vec3 n_vertex = vertex;
vec3 ln = (normal_matrix * vec4(left_normal, 1.0)).xyz;
vec3 rn = (normal_matrix * vec4(right_normal, 1.0)).xyz;
if (dot(ln, e) * dot(rn, e) < 0.0) {
n_vertex = vertex + thickness * normal;
}
gl_Position = proj_matrix * model_view_matrix * vec4(n_vertex,1);
}
|