Encore quelques petit ajustement de l'éclairage et travail sur le
déplacement de la camera.
This commit is contained in:
parent
033c4d01d8
commit
425f6e2624
61
display.c
61
display.c
|
@ -11,10 +11,10 @@ int initWindow() {
|
||||||
glewInit();
|
glewInit();
|
||||||
|
|
||||||
float MatSpec[4] = {0.0f, 0.0f, 0.0f, 1.0f};
|
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 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 Light1Dif[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||||
float Light1Spec[4] = {0.0f, 0.0f, 0.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};
|
float Light1Amb[4] = {0.4f, 0.4f, 0.4f, 1.0f};
|
||||||
|
@ -46,30 +46,25 @@ int mainLoop() {
|
||||||
switch(event.type) {
|
switch(event.type) {
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
continuer = 0;
|
continuer = 0;
|
||||||
|
break;
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
switch(event.key.keysym.sym) {
|
switch(event.key.keysym.sym) {
|
||||||
case SDLK_DOWN:
|
case SDLK_s:
|
||||||
yCamera-=moveDist;
|
yCamera-=moveDist;
|
||||||
ySight-=moveDist;
|
break;
|
||||||
|
case SDLK_z:
|
||||||
|
yCamera+=moveDist;
|
||||||
|
break;
|
||||||
|
case SDLK_q:
|
||||||
|
xCamera-=moveDist;
|
||||||
|
break;
|
||||||
|
case SDLK_d:
|
||||||
|
xCamera+=moveDist;
|
||||||
break;
|
break;
|
||||||
case SDLK_UP:
|
case SDLK_UP:
|
||||||
yCamera+=moveDist;
|
xAngle += 16;
|
||||||
ySight+=moveDist;
|
|
||||||
break;
|
|
||||||
case SDLK_LEFT:
|
|
||||||
xCamera-=moveDist;
|
|
||||||
xSight-=moveDist;
|
|
||||||
break;
|
|
||||||
case SDLK_RIGHT:
|
|
||||||
xCamera+=moveDist;
|
|
||||||
xSight+=moveDist;
|
|
||||||
break;
|
|
||||||
case SDLK_y:
|
|
||||||
yAngle += 8;
|
|
||||||
break;
|
|
||||||
case SDLK_x:
|
|
||||||
xAngle += 8;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -116,9 +111,8 @@ void renderScene() {
|
||||||
|
|
||||||
//glClearColor(1,1,1,1); // pour un fond blanc
|
//glClearColor(1,1,1,1); // pour un fond blanc
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;
|
||||||
|
|
||||||
drawAxes();
|
drawAxes();
|
||||||
glRotated(yAngle,0,1,0);
|
|
||||||
glRotated(xAngle,1,0,0);
|
|
||||||
//displayTree2();
|
//displayTree2();
|
||||||
displayTree(t);
|
displayTree(t);
|
||||||
|
|
||||||
|
@ -187,34 +181,15 @@ void setNormals(Triangle *t) {
|
||||||
|
|
||||||
float x = (float)((ay * bz) - (az * by));
|
float x = (float)((ay * bz) - (az * by));
|
||||||
float y = (float)((az * bx) - (ax * bz));
|
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);
|
float length = sqrt(x*x + y*y + z*z);
|
||||||
z=-z;
|
|
||||||
length = length;
|
length = length;
|
||||||
x = x/length;
|
x = x/length;
|
||||||
y = y/length;
|
y = y/length;
|
||||||
z = z/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);
|
printf("%f %f %f\n",x,y,z);
|
||||||
t->vLeft->xNormal = x;
|
t->vLeft->xNormal = x;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user