int Shader::getAttribLocation(const string& name) const
{
int ind = glGetAttribLocation(handle, name.c_str());
- if (ind < 0)
- Message::info("GL_GetAttLoc: Kann '" + name + "' nicht finden.");
+ //if (ind < 0)
+ // Message::info("GL_GetAttLoc: Kann '" + name + "' nicht finden.");
return ind;
}
int Shader::getUniformLocation(const string& name) const
{
int ind = glGetUniformLocation(handle, name.c_str());
- if (ind < 0)
- Message::info("GL_GetUniLoc: Kann '" + name + "' nicht finden.");
+ //if (ind < 0)
+ // Message::info("GL_GetUniLoc: Kann '" + name + "' nicht finden.");
return ind;
}
tmp = shader->getUniformLocation("uProjection");
if (tmp>=0)
glUniformMatrix4fv(tmp, 1, false, value_ptr(projection));
+ tmp = shader->getUniformLocation("uInvProjection");
+ if (tmp >= 0)
+ glUniformMatrix4fv(tmp, 1, false, value_ptr(glm::inverse(projection)));
+
tmp = shader->getUniformLocation("uView");
if (tmp >= 0)
glUniformMatrix4fv(tmp, 1, false, value_ptr(translate(view,-pos)));
in vec3 aPosition;
-uniform mat4 uProjection;
+uniform mat4 uInvProjection;
uniform mat4 uModel;
uniform mat4 uView;
smooth out vec3 eyeDirection;
void main() {
- mat4 invProjection = inverse(uProjection);
+// mat4 invProjection = inverse(uProjection);
mat3 invModelview = transpose(mat3(uView));
- vec3 unprojected = (invProjection * vec4(aPosition, 1)).xyz;
+ vec3 unprojected = (uInvProjection * vec4(aPosition, 1)).xyz;
eyeDirection = invModelview * unprojected;
//eyeDirection = unprojected;
//eyeDirection = aPosition;