diff options
Diffstat (limited to 'shaders/view_normal_mapped_normals.vert')
-rw-r--r-- | shaders/view_normal_mapped_normals.vert | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/shaders/view_normal_mapped_normals.vert b/shaders/view_normal_mapped_normals.vert new file mode 100644 index 0000000..004ed9a --- /dev/null +++ b/shaders/view_normal_mapped_normals.vert | |||
@@ -0,0 +1,22 @@ | |||
1 | precision highp float; | ||
2 | |||
3 | uniform mat4 Modelview; | ||
4 | uniform mat4 Projection; | ||
5 | |||
6 | layout (location = 0) in vec3 vPosition; | ||
7 | layout (location = 1) in vec3 vNormal; | ||
8 | layout (location = 2) in vec4 vTangent; | ||
9 | layout (location = 3) in vec2 vTexcoord; | ||
10 | |||
11 | out vec3 Normal; | ||
12 | out vec4 Tangent; | ||
13 | out vec3 Bitangent; // TODO: Compute here or in PS? | ||
14 | out vec2 Texcoord; | ||
15 | |||
16 | void main() { | ||
17 | Texcoord = vTexcoord; | ||
18 | Normal = mat3(Modelview) * vNormal; | ||
19 | Tangent = vec4(mat3(Modelview) * vTangent.xyz, vTangent.w); | ||
20 | Bitangent = cross(Normal, Tangent.xyz) * vTangent.w; | ||
21 | gl_Position = Projection * Modelview * vec4(vPosition, 1.0); | ||
22 | } | ||