commit 425f6e2624cb1a797982007e3aa7f31bc9a41eae
parent 033c4d01d850d7d02ea6366cea259df7a878edc5
Author: Yoann <yoann.b87@voila.fr>
Date: Tue, 4 Oct 2011 11:12:21 +0200
Encore quelques petit ajustement de l'éclairage et travail sur le
déplacement de la camera.
Diffstat:
| M | display.c | | | 51 | +++++++++++++-------------------------------------- |
1 file changed, 13 insertions(+), 38 deletions(-)
diff --git a/display.c b/display.c
@@ -11,10 +11,10 @@ int initWindow() {
glewInit();
float MatSpec[4] = {0.0f, 0.0f, 0.0f, 1.0f};
- float MatDif[4] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float MatDif[4] = {0.0f, 0.8f, 0.0f, 1.0f};
float MatAmb[4] = {0.1f, 0.1f, 0.1f, 1.0f};
- float Light1Pos[4] = {0.0f, 0.0f, 1.0f, 0.0f};
+ float Light1Pos[4] = {0.0f, 1.0f, 0.0f, 0.0f};
float Light1Dif[4] = {1.0f, 1.0f, 1.0f, 1.0f};
float Light1Spec[4] = {0.0f, 0.0f, 0.0f, 1.0f};
float Light1Amb[4] = {0.4f, 0.4f, 0.4f, 1.0f};
@@ -46,30 +46,25 @@ int mainLoop() {
switch(event.type) {
case SDL_QUIT:
continuer = 0;
+ break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym) {
- case SDLK_DOWN:
+ case SDLK_s:
yCamera-=moveDist;
- ySight-=moveDist;
break;
- case SDLK_UP:
+ case SDLK_z:
yCamera+=moveDist;
- ySight+=moveDist;
break;
- case SDLK_LEFT:
+ case SDLK_q:
xCamera-=moveDist;
- xSight-=moveDist;
break;
- case SDLK_RIGHT:
+ case SDLK_d:
xCamera+=moveDist;
- xSight+=moveDist;
- break;
- case SDLK_y:
- yAngle += 8;
break;
- case SDLK_x:
- xAngle += 8;
+ case SDLK_UP:
+ xAngle += 16;
break;
+
default:
break;
}
@@ -116,9 +111,8 @@ void renderScene() {
//glClearColor(1,1,1,1); // pour un fond blanc
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;
+
drawAxes();
- glRotated(yAngle,0,1,0);
- glRotated(xAngle,1,0,0);
//displayTree2();
displayTree(t);
@@ -187,34 +181,15 @@ void setNormals(Triangle *t) {
float x = (float)((ay * bz) - (az * by));
float y = (float)((az * bx) - (ax * bz));
- float z = (float)((ax * by) - (ay * bx));
+ float z = -(float)((ax * by) - (ay * bx));
float length = sqrt(x*x + y*y + z*z);
-z=-z;
+
length = length;
x = x/length;
y = y/length;
z = z/length;
- float coef;
- if(max3(x,y,z) == x) {
- coef = 1-x;
- x = 1.0f;
- y += coef;
- z += coef;
- }
- if(max3(x,y,z) == y) {
- coef = 1-y;
- y = 1.0f;
- x += coef;
- z += coef;
- }
- if(max3(x,y,z) == z) {
- coef = 1-z;
- z = 1.0f;
- y += coef;
- x += coef;
- }
printf("%f %f %f\n",x,y,z);
t->vLeft->xNormal = x;