1:#include <GL/glut.h>
2:#include <stdio.h>
3:#include "material.h"
4:
5:
6:void iniciaMaterial(void)
7:{
8: /* Se modificara las propiedades de color de material ambiente y difusa */
9: glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);
10:
11: /* Se permite el cambio de la propiedad de material con glColor */
12: glEnable(GL_COLOR_MATERIAL);
13:}
14:
15:
16:/*************************** DEFINICIÓN DE LOS MATERIALES *********************************/
17:
18:void oro (void) {
19: float oro_ambiente[] = {0.57f, 0.40f, 0.00f};
20: float oro_difusa[] = {0.22f, 0.15f, 0.0f};
21: float oro_especular[] = {0.71f, 0.70f, 0.56f};
22: float oro_exponente_brillo = 16.0f;
23:
24: glMaterialfv(GL_FRONT, GL_AMBIENT, oro_ambiente);
25: glMaterialfv(GL_FRONT, GL_DIFFUSE, oro_difusa);
26: glMaterialfv(GL_FRONT, GL_SPECULAR, oro_especular);
27: glMaterialf(GL_FRONT, GL_SHININESS, oro_exponente_brillo);
28:}
29:
30:void aluminio (void) {
31: float aluminio_ambiente[] = {0.30f, 0.30f, 0.35f};
32: float aluminio_difusa[] = {0.30f, 0.30f, 0.50f};
33: float aluminio_especular[] = {0.70f, 0.70f, 0.80f};
34: float aluminio_exponente_brillo = 9.0f;
35:
36: glMaterialfv(GL_FRONT, GL_AMBIENT, aluminio_ambiente);
37: glMaterialfv(GL_FRONT, GL_DIFFUSE, aluminio_difusa);
38: glMaterialfv(GL_FRONT, GL_SPECULAR, aluminio_especular);
39: glMaterialf(GL_FRONT, GL_SHININESS, aluminio_exponente_brillo);
40:}
41:
42:void cobre (void) {
43: float cobre_ambiente[] = {0.33f, 0.26f, 0.23f};
44: float cobre_difusa[] = {0.50f, 0.11f, 0.00f};
45: float cobre_especular[] = {0.95f, 0.73f, 0.00f};
46: float cobre_exponente_brillo = 93.0f;
47:
48: glMaterialfv(GL_FRONT, GL_AMBIENT, cobre_ambiente);
49: glMaterialfv(GL_FRONT, GL_DIFFUSE, cobre_difusa);
50: glMaterialfv(GL_FRONT, GL_SPECULAR, cobre_especular);
51: glMaterialf(GL_FRONT, GL_SHININESS, cobre_exponente_brillo);
52:}
53:
54:void purpura (void) {
55: float purpura_ambiente[] = {0.25f, 0.17f, 0.19f};
56: float purpura_difusa[] = {0.10f, 0.03f, 0.22f};
57: float purpura_especular[] = {0.64f, 0.00f, 0.98f};
58: float purpura_exponente_brillo = 8.0f;
59:
60: glMaterialfv(GL_FRONT, GL_AMBIENT, purpura_ambiente);
61: glMaterialfv(GL_FRONT, GL_DIFFUSE, purpura_difusa);
62: glMaterialfv(GL_FRONT, GL_SPECULAR, purpura_especular);
63: glMaterialf(GL_FRONT, GL_SHININESS, purpura_exponente_brillo);
64:}
65:
66:void rojo (void) {
67: float rojo_ambiente[] = {0.25f, 0.15f, 0.15f};
68: float rojo_difusa[] = {0.27f, 0.00f, 0.00f};
69: float rojo_especular[] = {0.61f, 0.13f, 0.18f};
70: float rojo_exponente_brillo = 12.0f;
71:
72: glMaterialfv(GL_FRONT, GL_AMBIENT, rojo_ambiente);
73: glMaterialfv(GL_FRONT, GL_DIFFUSE, rojo_difusa);
74: glMaterialfv(GL_FRONT, GL_SPECULAR, rojo_especular);
75: glMaterialf(GL_FRONT, GL_SHININESS, rojo_exponente_brillo);
76:}
77:
78:void rojo2 (void) {
79: float rojo_ambiente[] = {0.55f, 0.15f, 0.15f};
80: float rojo_difusa[] = {0.57f, 0.00f, 0.00f};
81: float rojo_especular[] = {0.61f, 0.13f, 0.18f};
82: float rojo_exponente_brillo = 12.0f;
83:
84: glMaterialfv(GL_FRONT, GL_AMBIENT, rojo_ambiente);
85: glMaterialfv(GL_FRONT, GL_DIFFUSE, rojo_difusa);
86: glMaterialfv(GL_FRONT, GL_SPECULAR, rojo_especular);
87: glMaterialf(GL_FRONT, GL_SHININESS, rojo_exponente_brillo);
88:}
89:
90:void azul (void) {
91: float azul_ambiente[] = {0.10f, 0.11f, 0.79f};
92: float azul_difusa[] = {0.30f, 0.30f, 0.71f};
93: float azul_especular[] = {0.83f, 0.83f, 0.83f};
94: float azul_exponente_brillo = 12.0f;
95:
96: glMaterialfv(GL_FRONT, GL_AMBIENT, azul_ambiente);
97: glMaterialfv(GL_FRONT, GL_DIFFUSE, azul_difusa);
98: glMaterialfv(GL_FRONT, GL_SPECULAR, azul_especular);
99: glMaterialf(GL_FRONT, GL_SHININESS, azul_exponente_brillo);
100:}
101:
102:void blanco(void) {
103: float blanco_ambiente[] = {1.0f, 1.0f, 1.0};
104: float blanco_difusa[] = {1.0f, 1.0f, 1.0f};
105: float blanco_especular[] = {1.0f, 1.0f, 1.0f};
106: float blanco_exponente_brillo = 1.0f;
107:
108: glMaterialfv(GL_FRONT, GL_AMBIENT, blanco_ambiente);
109: glMaterialfv(GL_FRONT, GL_DIFFUSE, blanco_difusa);
110: glMaterialfv(GL_FRONT, GL_SPECULAR, blanco_especular);
111: glMaterialf(GL_FRONT, GL_SHININESS, blanco_exponente_brillo);
112:}
113:
114:void verde(void) {
115: float verde_ambiente[] = {0.1f, 0.1f, 0.1f};
116: float verde_difusa[] = {0.0f, 0.7f, 0.0f};
117: float verde_especular[] = {0.8f, 0.8f, 0.8f};
118: float verde_exponente_brillo = 93.0f;
119:
120: glMaterialfv(GL_FRONT, GL_AMBIENT, verde_ambiente);
121: glMaterialfv(GL_FRONT, GL_DIFFUSE, verde_difusa);
122: glMaterialfv(GL_FRONT, GL_SPECULAR, verde_especular);
123: glMaterialf(GL_FRONT, GL_SHININESS, verde_exponente_brillo);
124:}
125:
126:void amarillo(void) {
127: float amarillo_ambiente[] = {0.81f, 0.81f, 0.0f};
128: float amarillo_difusa[] = {0.70f, 0.70f, 0.0f};
129: float amarillo_especular[] = {0.60f, 0.60f, 0.8f};
130: float amarillo_exponente_brillo = 3.0f;
131:
132: glMaterialfv(GL_FRONT, GL_AMBIENT, amarillo_ambiente);
133: glMaterialfv(GL_FRONT, GL_DIFFUSE, amarillo_difusa);
134: glMaterialfv(GL_FRONT, GL_SPECULAR, amarillo_especular);
135: glMaterialf(GL_FRONT, GL_SHININESS, amarillo_exponente_brillo);
136:}
137:
138:void negro(void) {
139: float negro_ambiente[] = {0.10f, 0.10f, 0.10f};
140: float negro_difusa[] = {0.10f, 0.10f, 0.10f};
141: float negro_especular[] = {0.10f, 0.10f, 0.10f};
142: float negro_exponente_brillo = 48.0f;
143:
144: glMaterialfv(GL_FRONT, GL_AMBIENT, negro_ambiente);
145: glMaterialfv(GL_FRONT, GL_DIFFUSE, negro_difusa);
146: glMaterialfv(GL_FRONT, GL_SPECULAR, negro_especular);
147: glMaterialf(GL_FRONT, GL_SHININESS, negro_exponente_brillo);
148:}
149:
150:void cielo(void) {
151: float cielo_ambiente[] = {0.10f, 0.60f, 1.0f};
152: float cielo_difusa[] = {0.10f, 0.60f, 1.0f};
153: float cielo_especular[] = {0.10f, 0.60f, 1.0f};
154: float cielo_exponente_brillo = 20.0f;
155:
156: glMaterialfv(GL_FRONT, GL_AMBIENT, cielo_ambiente);
157: glMaterialfv(GL_FRONT, GL_DIFFUSE, cielo_difusa);
158: glMaterialfv(GL_FRONT, GL_SPECULAR, cielo_especular);
159: glMaterialf(GL_FRONT, GL_SHININESS, cielo_exponente_brillo);
160:}