CSC8502_Advanced_Graphics_For_Games / Shaders / combinevert.glsl
combinevert.glsl
Raw
#version 150 core

uniform mat4 oriProjMatrix;
uniform mat4 projMatrix;
uniform mat4 viewMatrix;

in vec3 position;
in vec2 texCoord;

out Vertex {
	vec2 texCoord;
	vec3 normal;
} OUT;

void main(void) {
	gl_Position = projMatrix * vec4(position, 1.0);
	OUT.texCoord = texCoord;
	
	vec3 multiply = vec3(0,0,0);
	multiply.x = 1.0f / oriProjMatrix[0][0];
	multiply.y = -1.0f / oriProjMatrix[1][1];
	
	vec3 tempPos = (position * multiply) - vec3(0, 0, 1);
	OUT.normal = transpose(mat3(viewMatrix)) * normalize(tempPos);
}