]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
funktions to push new->old
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 15 Jun 2016 10:59:55 +0000 (12:59 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 15 Jun 2016 10:59:55 +0000 (12:59 +0200)
Weave/Graphix/Model/Model.cpp
Weave/Graphix/Model/Model.h
Weave/Scene/Camera.cpp
Weave/Scene/Camera.h
Weave/Scene/SceneObject.cpp
Weave/Scene/SceneObject.h

index 9803deb8b3e719122e881d81cccb648a9802f968..a4d792923e49e9fcaa82d48573b9402e31940cdb 100644 (file)
@@ -118,6 +118,7 @@ void Model::unbindShader(const Shader* _shader)
        \r
 }\r
 \r
+\r
 void Model::drawModel() const\r
 {\r
        glDrawElements(GL_TRIANGLES, numfaces * 3, GL_UNSIGNED_INT, 0);\r
index bda41f9962b2b7d11abecfdff0ddbc513c443632..4de0ad9af397e4cae5da6a018c2f35a13d5586b3 100644 (file)
@@ -15,7 +15,7 @@ enum drawType {
        dr_Model = 0,\r
        dr_WireT = 1,\r
        dr_WireC = 2,\r
-       dr_BBox = 3,\r
+       dr_BBox = 3\r
 };\r
 \r
 class Model\r
index c297a02a25b91fbd8a25c0800e5e7aae583ee63b..0982c9d362132e83a49cb4dd6faeeff19639756f 100644 (file)
@@ -50,9 +50,10 @@ void Camera::useProjection() const
        Shader::getShader(SH_ACTIVE)->setUniformLocation("uInvProjection", glm::inverse(projection));
 }
 
-void Camera::useOldInvProjView() const
+void Camera::useOldProjView() const
 {
-       Shader::getShader(SH_ACTIVE)->setUniformLocation("uOldInvProjView", oldInvProjView);
+       Shader::getShader(SH_ACTIVE)->setUniformLocation("uOldProjView", oldProjView);
+       Shader::getShader(SH_ACTIVE)->setUniformLocation("uInvProjView", glm::inverse(projection*lookAt(cCenter, cPosition, cUpVector)));
 }
 
 void Camera::updateView(const vec3& _target)
@@ -123,10 +124,9 @@ void Camera::updateProjection(float _yFov, float _xyRatio, float _zNear, float _
        projection = perspective(yFov * (float)M_D2R, xyRatio, zNear, zFar);
 }
 
-
-void Camera::saveInvProjView()
+void Camera::saveProjView()
 {
-       oldInvProjView = glm::inverse(projection*lookAt(cCenter, cPosition, cUpVector));
+       oldProjView = projection*lookAt(cCenter, cPosition, cUpVector);
 }
 
 Camera::FC_stat Camera::frustum_sphere(vec3 _center, float _radius) const
index e29231d764786d6965fe38d447b4f20c57c6fd19..1a87ec40d8f221fd867587705f6fe35d99b620bd 100644 (file)
@@ -14,7 +14,7 @@ public:
 
        void useView() const;
        void useProjection() const;
-       void useOldInvProjView() const;
+       void useOldProjView() const;
 
        void updateView(const vec3& target);
        void updateView_pitch(float);
@@ -23,7 +23,7 @@ public:
        void updateProjection(float xyRatio);
        void updateProjection(float yFov, float xyRatio, float zNear, float zFar);
 
-       void saveInvProjView();
+       void saveProjView();
 
        vec3 getDirection() { return cFront;}
        vec3 getRight() { return cRight; }
@@ -52,8 +52,8 @@ protected:
        float pitch, yaw;
        float dist;
 
-       /*old Projektion * View -> invers */
-       mat4 oldInvProjView = mat4(1.f);
+       /*old Projektion * View */
+       mat4 oldProjView = mat4(1.f);
 
        /*Frustum*/
        float tan_alphaY;
index b8d0ab52e93e0cf6c121664382f72dab82a2e7d7..4e7d4129757e4ae7b9cf18b406171dbc5dd17528 100644 (file)
@@ -238,6 +238,9 @@ void SceneObject::draw(drawTarget _target) const
 {
        switch (_target)
        {
+       case DRAW_ModelMotionBlur:
+               //upload new->old model
+               Shader::getShader(SH_ACTIVE)->setUniformLocation("uCur2OldModel", oldModelMat * glm::inverse(modelMat));
        case DRAW_Model:
        default:
                texture->useTexture();
index 2c59533825b6c79e96a609048e07f0b6b5d08018..00c90e63f0501ac5c517ebc0703c2438d21d3471 100644 (file)
@@ -25,7 +25,8 @@ enum collisiontypes {
 enum drawTarget {
        DRAW_Model = 0,
        DRAW_Wire = 1,
-       DRAW_Coll = 2
+       DRAW_Coll = 2,
+       DRAW_ModelMotionBlur = 3
 };
 
 //class string;