#include "Graphix\Graphix.h"
+#include "Graphix\GLM.h"
+
#include <iostream>
using std::cout;
using std::endl;
{
axis = 0;
}
+ axis = sign(axis);
}
int Events::getViewX()
// //cout << ((float)(rand() % (size*steps * 2)) / steps - size) << ((float)(rand() % (size*steps * 2)) / steps - size) << ((float)(rand() % (size*steps * 2)) / steps - size) << endl;
//}
//ein Gegner
-// tmp_Scene->addObject(new SceneObject(shader1, glm::mat4(1.0f), "duck.dae", "model_duck.png"));
+ tmp_Scene->addObject(new SceneObject(shader1, glm::mat4(1.0f), "duck.dae", "model_duck.png"));
//tmp_Scene->addObject(new SceneObject(shader1, translate(vec3(-1.f, 2.f, -2.f)), "../models/box/box.dae", "../Textures/sky_withstars.png"));
//tmp_Scene->addObject(new SceneObject(shader1, translate(vec3(1.f, 3.f, -2.f)), "../models/cow/cow.dae", "../models/cow/texture.jpg"));
// load LVL
- tmp_Scene->addObject(new SceneObject(shader1, glm::mat4(1.0f), "level_test.dae", "model_duck.png"));
+ //tmp_Scene->addObject(new SceneObject(shader1, glm::mat4(1.0f), "level_test.dae", "model_duck.png"));
//import("level_test.dae", tmp_Scene, shader1);
using glm::sign;
+#define M_PI 3.14159265358979323846264338327950288 /* pi */
+#define M_PI_2 1.57079632679489661923132169163975144 /* pi/2 */
+#define M_PI_4 0.785398163397448309615660845819875721 /* pi/4 */
+#define M_1_PI 0.318309886183790671537767526745028724 /* 1/pi */
+#define M_2_PI 0.636619772367581343075535053490057448 /* 2/pi */
+#define M_D_R 57.2957795131 /* 180/pi */
+
float VektorAbs(const vec3& vek);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
- //glEnable(GL_CULL_FACE);
+ glEnable(GL_CULL_FACE);
glShadeModel(GL_SMOOTH);
//glEnable(GL_BLEND);
//int shoot = Events::getAction1();
//int reset = Events::getAction2();
- if (move_x)
- lookat->move(0.03f *move_x * viewPort->rotateDirection(vec3(-1.f, 0.f, 0.f)));
- if (move_y)
- lookat->move(0.03f *move_y * viewPort->rotateDirection(vec3(0.f, 0.f, -1.f)));
-
// XYAchse um den Player
- viewPort->rotateView(.3f*Events::getViewX(), .3f*Events::getViewY());
+ viewPort->rotateView(0.005f*Events::getViewX(), 0.002f*Events::getViewY());
//int view_x = Events::getViewX();
//int view_y = Events::getViewY();
+ if (move_x){
+ //TODO vorwärts schneller gehen nach einer sekunde
+ lookat->move(3.f * deltaT *move_x * viewPort->rotateDirection(vec3(-1.f, 0.f, 0.f)));
+ }
+ if (move_y)
+ lookat->move(3.f *move_y * deltaT * viewPort->rotateDirection(vec3(0.f, 0.f, -1.f)));
+
+
+
//if ( view_x || view_y)
//{
// //TODO Limit Rotation
#include "Shader.h"
-#define VIEW_TOP_LIM 60.f
-#define VIEW_BOT_LIM -30.f
+#define VIEW_TOP_LIM 0.8f
+#define VIEW_BOT_LIM -0.3f
ViewPort::ViewPort(unsigned int _x, unsigned int _y, unsigned int _width, unsigned int _height, float fovy, float zNear, float zFar) :
view_angle_y = VIEW_BOT_LIM;
//keine Ahnung warum hier noch durch 50 geteilt werden muss, sonst ists aber irgend wie falsch
- view = translate(vec3(0.f, 0.f, -view_dist))*rotate(view_angle_y / 50, vec3(1.f, 0.f, 0.f))*rotate(view_angle_x / 50, vec3(0.f, 1.f, 0.f));
+ view = translate(vec3(0.f, 0.f, -view_dist))*rotate(view_angle_y *(float)M_PI_4, vec3(1.f, 0.f, 0.f))*rotate(view_angle_x * (float)M_PI_4, vec3(0.f, 1.f, 0.f));
}
}
vec3 ViewPort::rotateDirection(const vec3 & direction) const{
- return glm::rotateY(direction,- view_angle_x / 50);
+ return glm::rotateY(direction, -view_angle_x * (float)M_PI_4);
}
unsigned int ViewPort::getXPos() const
gl_Position = projection * view * world_position;
worldNormal = (model * inv * vec4(normal, 0.0f)).xyz;
- visNormal = (view * vec4(worldNormal, 0.0f)).z;
+// visNormal = (view * vec4(worldNormal, 0.0f)).z;
SpecularCosPoint1 = clamp(dot(vec3(0.0f, 0.0f, -1.0f), normalize((projection * view * vec4(reflect(-PointLightPosition1, worldNormal), 0.0f)).xyz)), 0, 1);
void main()
{
- if (visNormal < -0.2)
- {
- discard;
- }
- float specularConst = 5.0f;
+ //if (visNormal < -0.2)
+ //{
+ // discard;
+ //}
+ float specularConst = 3.0f;
vec3 normal = normalize(worldNormal);
vec4 uvColor = texture(ColorTexture, fUVs);