diff options
Diffstat (limited to '07-july/resources/shaders/terrainShader.vert')
| -rw-r--r-- | 07-july/resources/shaders/terrainShader.vert | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/07-july/resources/shaders/terrainShader.vert b/07-july/resources/shaders/terrainShader.vert new file mode 100644 index 0000000..6abdddb --- /dev/null +++ b/07-july/resources/shaders/terrainShader.vert @@ -0,0 +1,37 @@ +#version 420 + +in layout(location=0) vec3 Model_Position; +in layout(location=1) vec4 in_color; +in layout(location=2) vec2 Texture_UV; +in layout(location=3) vec3 Model_Normal; + +uniform mat4 Matrix_totalTransform; +uniform mat4 Matrix_modelToWorld; + +uniform vec3 lightPosition[4]; +uniform vec3 World_eyePosition; + +out vec2 Fragment_UV; +out vec3 World_Normal; +out vec4 Fragment_Color; +out vec3 toLightVector[4]; +out vec3 toEyeVector; + +void main() +{ + vec3 World_Position = vec3(Matrix_modelToWorld * vec4(Model_Position, 1.0)); + + for(int i = 0; i < 4; i++) + { + /* vector que apunta hacia la luz*/ + toLightVector[i] = lightPosition[i] - World_Position; + } + /* Vector hacia el ojo*/ + toEyeVector = normalize(World_eyePosition - World_Position); + + gl_Position = Matrix_totalTransform * vec4(Model_Position, 1.0); + /*We add a 0 on the vec4 so we can remove the translation from the matrix + (WE DONT WANT THE NORMAL TO BE TRANSLATED) */ + World_Normal = vec3(Matrix_modelToWorld * vec4(Model_Normal, 0.0)); + Fragment_UV = vec2(Texture_UV.x, 1 - Texture_UV.y); /*Invert y axis*/ +} |
