1:#include <GL/glut.h>
2:#include "luces.h"
3:
4:/******************************************************************************************/
5:/* Inicia los parametros de iluminacion de OpenGL */
6:/* Parametros --> Ninguno */
7:/* Salida ------> Ninguna */
8:/******************************************************************************************/
9:void iniciaIluminacion(void) {
10: GLfloat lmodel_ambient [] = {0.4f, 0.4f, 0.4f, 1.0f};
11:
12: /* Parámetros del modelo de iluminación */
13: glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
14:
15: /* Activa la iluminación de la escena */
16: glEnable(GL_LIGHTING);
17: glEnable(GL_NORMALIZE);
18:
19:}
20:
21:/*************************** DEFINICIÓN DE LAS LUCES **************************************/
22:
23:/******************************************************************************************/
24:/* Define y activa la luz 0 */
25:/* Parametros --> Ninguno */
26:/* Salida ------> Ninguna */
27:/******************************************************************************************/
28:void luz0 (void) {
29: float luz0_posicion[] = {0.0f, 0.0f, 1.0f, 0.0f};
30: float luz0_ambiente[] = {0.2f, 0.2f, 0.2f, 1.0f};
31: float luz0_difusa[] = {0.5f, 0.5f, 0.5f, 1.0f};
32: float luz0_especular[] = {0.6f, 0.6f, 0.6f, 1.0f};
33:
34: glLightfv (GL_LIGHT0, GL_POSITION, luz0_posicion);
35: glLightfv (GL_LIGHT0, GL_AMBIENT, luz0_ambiente);
36: glLightfv (GL_LIGHT0, GL_DIFFUSE, luz0_difusa);
37: glLightfv (GL_LIGHT0, GL_SPECULAR, luz0_especular);
38: glEnable(GL_LIGHT0);
39:}
40:
41:void luz1 (void)
42:{
43: float luz1_posicion[] = {1.0f, 0.0f, 0.0f, 0.0f};
44: float luz1_ambiente[] = {0.02f, 0.02f, 0.02f, 1.0f};
45: float luz1_difusa[] = {0.5f, 0.5f, 0.5f, 1.0f};
46: float luz1_especular[] = {0.6f, 0.6f, 0.6f, 1.0f};
47: float luz1_direccion[] = {-1.0f,0.0f,0.0f};
48:
49: glLightfv (GL_LIGHT1, GL_POSITION, luz1_posicion);
50: glLightfv (GL_LIGHT1, GL_AMBIENT, luz1_ambiente);
51: glLightfv (GL_LIGHT1, GL_DIFFUSE, luz1_difusa);
52: glLightfv (GL_LIGHT1, GL_SPECULAR, luz1_especular);
53: glLightfv (GL_LIGHT1, GL_SPOT_DIRECTION, luz1_direccion);
54: glEnable(GL_LIGHT1);
55:}
56:
57:void luz2 (void)
58:{
59:
60: float luz2_posicion[] = {-1.0f, 0.0f, 0.0f, 0.0f};
61: float luz2_ambiente[] = {0.02f, 0.02f, 0.02f, 1.0f};
62: float luz2_difusa[] = {0.5f, 0.5f, 0.5f, 1.0f};
63: float luz2_especular[] = {0.6f, 0.6f, 0.6f, 1.0f};
64: float luz2_direccion[] = {1.0f,0.0f,0.0f};
65:
66: glLightfv (GL_LIGHT2, GL_POSITION, luz2_posicion);
67: glLightfv (GL_LIGHT2, GL_AMBIENT, luz2_ambiente);
68: glLightfv (GL_LIGHT2, GL_DIFFUSE, luz2_difusa);
69: glLightfv (GL_LIGHT2, GL_SPECULAR, luz2_especular);
70: glLightfv (GL_LIGHT2, GL_SPOT_DIRECTION, luz2_direccion);
71: glEnable(GL_LIGHT2);
72:}
73:
74:void luz3 (void)
75:
76:{
77: float luz3_posicion[] = {0.0f, 0.0f, -1.0f, 0.0f};
78: float luz3_ambiente[] = {0.02f, 0.02f, 0.02f, 1.0f};
79: float luz3_difusa[] = {0.5f, 0.5f, 0.5f, 1.0f};
80: float luz3_especular[] = {0.6f, 0.6f, 0.6f, 1.0f};
81: float luz3_direccion[] = {0.0f,0.0f,1.0f};
82:
83: glLightfv (GL_LIGHT3, GL_POSITION, luz3_posicion);
84: glLightfv (GL_LIGHT3, GL_AMBIENT, luz3_ambiente);
85: glLightfv (GL_LIGHT3, GL_DIFFUSE, luz3_difusa);
86: glLightfv (GL_LIGHT3, GL_SPECULAR, luz3_especular);
87: glLightfv (GL_LIGHT3, GL_SPOT_DIRECTION, luz3_direccion);
88: glEnable(GL_LIGHT3);
89:}
90:
91:void niebla (void)
92:{
93: float color_niebla[]={0.15f,0.15f,0.15f};
94:
95: glFogf(GL_FOG_MODE,GL_EXP);
96: glFogf(GL_FOG_DENSITY,0.075);
97: glFogf(GL_FOG_START,1.0);
98: glFogf(GL_FOG_END,400.0);
99:
100: glFogfv (GL_FOG_COLOR,color_niebla);
101: glEnable (GL_FOG);
102:}