33 lines
981 B
GLSL
33 lines
981 B
GLSL
#version 330 core
|
|
|
|
layout(location = 0) in vec3 vertexPosition_modelspace;
|
|
layout(location = 1) in vec2 vertexUV;
|
|
layout(location = 2) in vec3 vertexNormal_modelspace;
|
|
|
|
out vec2 UV;
|
|
out vec3 position_worldspace;
|
|
out vec3 normal_cameraspace;
|
|
out vec3 eyeDirection_cameraspace;
|
|
out vec3 lightDirection_cameraspace;
|
|
|
|
uniform mat4 mvp;
|
|
uniform mat4 v;
|
|
uniform mat4 m;
|
|
uniform vec3 lightPosition_worldspace;
|
|
|
|
void main() {
|
|
gl_Position = mvp * vec4(vertexPosition_modelspace, 1);
|
|
|
|
position_worldspace = (m * vec4(vertexPosition_modelspace, 1)).xyz;
|
|
|
|
vec3 vertexPosition_cameraspace = (v * m * vec4(vertexPosition_modelspace, 1)).xyz;
|
|
eyeDirection_cameraspace = vec3(0, 0, 0) - vertexPosition_cameraspace;
|
|
|
|
vec3 lightPosition_cameraspace = (v * vec4(lightPosition_worldspace, 1)).xyz;
|
|
lightDirection_cameraspace = lightPosition_cameraspace + eyeDirection_cameraspace;
|
|
|
|
normal_cameraspace = (v * m * vec4(vertexNormal_modelspace, 0)).xyz;
|
|
|
|
UV = vertexUV;
|
|
}
|