commit ff0316bbda5e526daeb8c0d62661c9f4ec7172ee
parent 01316faf5196aab8992417952208cbd01ffea130
Author: Yoann <yoann.b87@voila.fr>
Date: Sun, 2 Oct 2011 20:37:11 +0200
Début de l'affichage plein des triangles avec mise en place de la
lumière (pas finit).
Diffstat:
| M | display.c | | | 31 | ++++++++++++++++++++++++++++++- |
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/display.c b/display.c
@@ -8,18 +8,39 @@ int initWindow() {
glLoadIdentity();
gluPerspective(70,(double)windowWidth/windowHeight,1,10000);
glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHTING); // Active l'éclairage
+ glEnable(GL_LIGHT0); // Active la lumière 0;
glewInit();
+
+ float MatSpec[4] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float MatDif[4] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float MatAmb[4] = {0.3f, 0.3f, 0.3f, 1.0f};
+
+ float Light1Pos[4] = {0.0f, 0.0f, -1.0f, 0.0f};
+ float Light1Dif[4] = {1.0f, 0.2f, 0.2f, 1.0f};
+ float Light1Spec[4] = {1.0f, 0.2f, 0.2f, 1.0f};
+ float Light1Amb[4] = {0.5f, 0.5f, 0.5f, 1.0f};
+
+ glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,MatSpec);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,MatDif);
+ glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,MatAmb);
+
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, Light1Dif);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, Light1Spec);
+ glLightfv(GL_LIGHT0, GL_AMBIENT, Light1Amb);
+ glLightfv(GL_LIGHT0, GL_POSITION, Light1Pos);
+
return 0;
}
+
int mainLoop() {
short continuer = 1;
SDL_Event event;
while (continuer) {
SDL_WaitEvent(&event);
-
switch(event.type) {
case SDL_QUIT:
continuer = 0;
@@ -54,6 +75,7 @@ int mainLoop() {
return 0;
}
+
void drawAxes() {
glDisable(GL_TEXTURE_2D);
glBegin(GL_LINES);
@@ -75,6 +97,7 @@ void drawAxes() {
glEnd( );
}
+
void renderScene() {
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
@@ -90,6 +113,7 @@ void renderScene() {
SDL_GL_SwapBuffers();
}
+
int nbTriangles(Triangle *t) {
int sum = 0;
@@ -104,6 +128,7 @@ int nbTriangles(Triangle *t) {
return sum;
}
+
void insertValues(Triangle *t,int *vertices) {
if(t->tLeftChild == NULL) {
vertices[9*nbVertex] = t->vLeft->x;
@@ -123,6 +148,7 @@ void insertValues(Triangle *t,int *vertices) {
}
}
+
void displayTree2() {
glVertexAttribPointer(0, 3, GL_INT, GL_FALSE, 0, vertices);
glEnableVertexAttribArray(0);
@@ -130,8 +156,10 @@ void displayTree2() {
glDrawArrays(GL_LINE_LOOP,0, nbVertex*3);
}
+
void displayTree(Triangle *t) {
if(t->tLeftChild == NULL) {
+ glNormal3d(0,1,0);
glBegin(GL_LINE_LOOP);
glColor3ub(255,255,255);
glVertex3d(t->vLeft->x,t->vLeft->y,t->vLeft->z);
@@ -145,6 +173,7 @@ void displayTree(Triangle *t) {
}
}
+
int main() {
initWindow();
t = initDefaultExample();