blob: a6073e5e204c841a893ca9a53495bd01b0256d1c (
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
|
#version 330
uniform mat4 modelViewMatrix;
uniform mat4 normalMatrix;
uniform mat4 projectionMatrix;
uniform float thickness;
layout(location = 0) in vec3 vertex;
layout(location = 1) in vec3 normal;
layout(location = 2) in vec3 leftNormal;
layout(location = 3) in vec3 rightNormal;
void main() {
vec3 p = (modelViewMatrix * vec4(vertex,1)).xyz;
vec3 e = -p;
vec3 nl = (normalMatrix * vec4(leftNormal,0)).xyz;
vec3 nr = (normalMatrix * vec4(rightNormal,0)).xyz;
vec3 v = vertex;
if (dot(e,nl) * dot(e,nr) < 0.0) {
v += thickness*normal;
}
gl_Position = projectionMatrix * modelViewMatrix * vec4(v,1);
}
|