#define BIT(x) (1<<(x))
enum Effects {
- EF_NOTHING = 0,
+ EF_NONE = 0,
EF_MOTION_BLUR_ACC = BIT(1),
EF_TRANSPARENCY = BIT(2),
EF_BLOOM = BIT(3),
- EF_FRUSTUM_CULLING = BIT(4)
+ EF_FRUSTUM_CULLING = BIT(4),
+ EF_MOTION_BLUR = BIT(5)
};
class Graphix
Shader::getShader(SH_ACTIVE)->setUniformLocation("uInvProjection", glm::inverse(projection));
}
+void Camera::useOldInvProjView() const
+{
+ Shader::getShader(SH_ACTIVE)->setUniformLocation("uOldInvProjView", oldInvProjView);
+}
+
void Camera::updateView(const vec3& _target)
{
projection = perspective(yFov * (float)M_D2R, xyRatio, zNear, zFar);
}
+
+void Camera::saveInvProjView()
+{
+ oldInvProjView = glm::inverse(projection*lookAt(cCenter, cPosition, cUpVector));
+}
+
Camera::FC_stat Camera::frustum_sphere(vec3 _center, float _radius) const
{
FC_stat result = FC_INSIDE;
Camera(float yFov, float xyRatio, float zNear, float zFar);
~Camera();
-
-
- /*use Camera (bind View&Projection at current Shader) if unchanged*/
void useCamera() const;
void useView() const;
void useProjection() const;
+ void useOldInvProjView() const;
void updateView(const vec3& target);
void updateView_pitch(float);
void updateProjection(float xyRatio);
void updateProjection(float yFov, float xyRatio, float zNear, float zFar);
+ void saveInvProjView();
+
vec3 getDirection() { return cFront;}
vec3 getRight() { return cRight; }
float pitch, yaw;
float dist;
+ /*old Projektion * View -> invers */
+ mat4 oldInvProjView = mat4(1.f);
+
/*Frustum*/
float tan_alphaY;
float Icos_alphaX, Icos_alphaY;
currenttime = 0.0f;
if (lookat != nullptr)
- timestamps.push(Timestamp(0.0f, _lookat->getModelMat(), lookat->ySpeed));
+ timestamps.push(Timestamp(0.0f, _lookat->gModelMat(), lookat->ySpeed));
bt_collision_configuration = new btDefaultCollisionConfiguration();
bt_dispatcher = new btCollisionDispatcher(bt_collision_configuration);
if (ceil((currenttime + deltaT) / timestep) > ceil(currenttime / timestep))
{
- timestamps.push(Timestamp(currenttime, lookat->getModelMat(), lookat->ySpeed));
+ timestamps.push(Timestamp(currenttime, lookat->gModelMat(), lookat->ySpeed));
}
currenttime += deltaT;
}
+
void SceneObject::bindShader(const Shader* _shader)
{
model->bindShader(_shader);
return model;
}
-vec3 SceneObject::getPosition() const
+const mat4& SceneObject::gModelMat() const
{
- return vec3(modelMat[3]);
+ return modelMat;
}
-mat4 SceneObject::getModelMat(){
- return modelMat;
+void SceneObject::saveModelMat()
+{
+ oldModelMat = modelMat;
+}
+
+vec3 SceneObject::getPosition() const
+{
+ return vec3(modelMat[3]);
}
void SceneObject::setModel(mat4& _modelMat){
virtual vec3 getPosition() const;
- virtual mat4 getModelMat();
__declspec(deprecated)
virtual void setModel(mat4&);
__declspec(deprecated)
void setMargin(btScalar margin);
- //virtual bool operator==(SceneObject);
-
__declspec(deprecated)
void setMainScene(Scene *);
void setCollision(bool);
- //const Shader * gShader() const;
const Texture * gTexture() const;
const Model * gModel() const;
+ const mat4 & gModelMat() const;
+
+ void saveModelMat();
__declspec(deprecated)
void setEnemy(bool isenemy);
protected:
mat4 modelMat;
-
+ mat4 oldModelMat;
//const Shader * shader;
Texture* texture;
#include "Timestamp.h"
-Timestamp::Timestamp(float _time, mat4& _Playermodel, float _ySpeed) :
+Timestamp::Timestamp(float _time, const mat4& _Playermodel, float _ySpeed) :
time(_time),
Playermodel(_Playermodel),
//CameraX(x),
class Timestamp
{
public:
- Timestamp(float _time, mat4& _Playermodel, float ySpeed);
+ Timestamp(float _time, const mat4& _Playermodel, float ySpeed);
virtual ~Timestamp();