#version 430 layout (location = 0) in vec3 position; layout (location = 1) in vec4 color; layout (location = 2) in vec2 textureCoord; layout (location = 3) in vec3 normal; uniform mat4 projMatrix; uniform mat4 viewMatrix; uniform mat4 modelMatrix; out vec3 varPosition; out vec2 varTextureCoord; out vec4 varColor; out vec3 varNormal; void main(void) { // transforming normals must not use the fourth dimension varNormal = (viewMatrix * modelMatrix * vec4(normal, 0.0)).xyz; varTextureCoord = textureCoord; varColor = vec4(color.xyz, 1); /*if(abs(normal.x) == 1) { varColor = varColor * 0.8; } if(abs(normal.z) == 1) { varColor = varColor * 0.9; }*/ vec4 viewPos = viewMatrix * modelMatrix * vec4(position, 1.0); varPosition = viewPos.xyz; gl_Position = projMatrix * viewPos; /*vec4 modelPos = modelMatrix * vec4(position, 1.0); varPosition = modelPos.xyz; gl_Position = projMatrix * viewMatrix * modelPos;*/ }