31 lines
729 B
Plaintext
31 lines
729 B
Plaintext
attribute vec4 in_color;
|
|
attribute vec4 in_position;
|
|
attribute vec3 in_normal;
|
|
attribute vec2 in_uv;
|
|
|
|
varying vec3 npos, vertPaint, origo;
|
|
varying vec3 normal, binormal, tangent;
|
|
varying vec2 uv;
|
|
|
|
uniform float flipState;
|
|
|
|
void main()
|
|
{
|
|
normal = normalize(gl_NormalMatrix * in_normal);
|
|
binormal = normalize(cross(normal, gl_NormalMatrix * vec3(0.0,0.999,0.04471017781)));
|
|
tangent = normalize(cross(normal, binormal));
|
|
|
|
vec4 pos = gl_ModelViewMatrix * in_position;
|
|
npos = -pos.xyz;
|
|
vertPaint = in_color.rgb;
|
|
origo = in_position.xyz;
|
|
|
|
vec2 baseUV = in_uv;
|
|
if(flipState > 0.5) {
|
|
baseUV.y = 1.0 - baseUV.y;
|
|
tangent = -tangent;
|
|
}
|
|
uv = baseUV;
|
|
gl_Position = gl_ProjectionMatrix * pos;
|
|
}
|