]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
fixed useless inversion of projection per Vertex
authorPeter Schaefer <schaeferpm@gmail.com>
Sun, 26 Apr 2015 14:38:37 +0000 (16:38 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Sun, 26 Apr 2015 14:38:37 +0000 (16:38 +0200)
Weave/Graphix/Shader.cpp
Weave/Graphix/ViewPort.cpp
shader/skybox_VS.hlsl

index d8a57238b4726ecf1d703efa42a36664ba46dc4c..b084561a10c6489c3267a4602f766f0ffc897bf4 100644 (file)
@@ -33,8 +33,8 @@ void Shader::useShader() const
 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;
 }
@@ -42,8 +42,8 @@ int Shader::getAttribLocation(const string& name) const
 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;
 }
index d8d1e1ebf94bed38510f1e95072ac223a6cc2dc9..487cc4541da970167bed1d86b387e08faa82f940 100644 (file)
@@ -46,6 +46,10 @@ void ViewPort::bindView(Shader* shader, vec3 pos) const{
        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)));
index a64443debec704ceef3ce5c7a1c3689734782107..2b85546587cdbbf6ecbc062c38095d3cb7139921 100644 (file)
@@ -3,16 +3,16 @@
 
 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;