00001
00002
00003
00004
00005
00006
00008
00010
00011
00012
00013
00014
00016
00017 #pragma once
00018
00019 #include <GL/gl.h>
00020
00021 #define NUM_MATERIALS 28
00022 #define NB_COLORS 13
00023
00024 static double coltable[NB_COLORS][3] = {
00025 {1.00, 1.00, 1.00},
00026 {0.00, 0.00, 0.00},
00027 {1.00, 0.85, 0.70},
00028 {0.90, 0.50, 0.30},
00029 {0.44, 0.50, 0.56},
00030 {0.39, 0.58, 0.93},
00031 {0.50, 0.50, 0.83},
00032 {0.49, 0.92, 0.00},
00033 {0.74, 0.71, 0.42},
00034 {1.00, 0.84, 0.00},
00035 {0.80, 0.36, 0.36},
00036 {0.55, 0.27, 0.07},
00037 {1.00, 0.08, 0.56},
00038 };
00039
00040
00041
00042
00043 enum materials
00044 {
00045
00046 EMERALD, JADE, OBSIDIAN, PEARL, RUBY, TURQUOISE,
00047
00048 BRASS, BRONZE, CHROME, COPPER, GOLD, SILVER,
00049
00050 BLACK_PLASTIC, CYAN_PLASTIC, GREEN_PLASTIC,
00051
00052 RED_PLASTIC, WHITE_PLASTIC, YELLOW_PLASTIC,
00053
00054 BLACK_RUBBER, CYAN_RUBBER, GREEN_RUBBER,
00055
00056 RED_RUBBER, WHITE_RUBBER, YELLOW_RUBBER,
00057
00058 BRIGHT_WHITE, LESS_BRIGHT_WHITE,
00059
00060 WARM_WHITE, COOL_WHITE
00061 };
00062
00063
00064
00065 static char *matNames[NUM_MATERIALS][50] = {
00066
00067 "EMERALD", "JADE", "OBSIDIAN", "PEARL", "RUBY", "TURQUOISE",
00068
00069 "BRASS", "BRONZE", "CHROME", "COPPER", "GOLD", "SILVER",
00070
00071 "BLACK_PLASTIC", "CYAN_PLASTIC", "GREEN_PLASTIC",
00072
00073 "RED_PLASTIC", "WHITE_PLASTIC", "YELLOW_PLASTIC",
00074
00075 "BLACK_RUBBER", "CYAN_RUBBER", "GREEN_RUBBER",
00076
00077 "RED_RUBBER", "WHITE_RUBBER", "YELLOW_RUBBER",
00078
00079 "BRIGHT_WHITE", "LESS_BRIGHT_WHITE",
00080
00081 "WARM_WHITE", "COOL_WHITE"
00082 };
00083
00084
00085
00086
00087 static GLfloat Material[NUM_MATERIALS][10] = {
00088
00089
00090
00091 0.0215f, 0.1745f, 0.0215f,
00092
00093 0.07568f, 0.61424f, 0.07568f,
00094
00095 0.633f, 0.727811f, 0.633f,
00096
00097 0.6f,
00098
00099
00100
00101 0.135f, 0.2225f, 0.1575f,
00102
00103 0.54f, 0.89f, 0.63f,
00104
00105 0.316228f, 0.316228f, 0.316228f,
00106
00107 0.1f,
00108
00109
00110
00111 0.05375f, 0.05f, 0.06625f,
00112
00113 0.18275f, 0.17f, 0.22525f,
00114
00115 0.332741f, 0.328634f, 0.346435f,
00116
00117 0.3f,
00118
00119
00120
00121 0.25f, 0.20725f, 0.20725f,
00122
00123 1.0f, 0.829f, 0.829f,
00124
00125 0.296648f, 0.296648f, 0.296648f,
00126
00127 0.088f,
00128
00129
00130
00131 0.1745f, 0.01175f, 0.01175f,
00132
00133 0.61424f, 0.04136f, 0.04136f,
00134
00135 0.727811f, 0.626959f, 0.626959f,
00136
00137 0.6f,
00138
00139
00140
00141 0.1f, 0.18725f, 0.1745f,
00142
00143 0.396f, 0.74151f, 0.69102f,
00144
00145 0.297254f, 0.30829f, 0.306678f,
00146
00147 0.1f,
00148
00149
00150
00151 0.329412f, 0.223529f, 0.027451f,
00152
00153 0.780392f, 0.568627f, 0.113725f,
00154
00155 0.992157f, 0.941176f, 0.807843f,
00156
00157 0.21794872f,
00158
00159
00160
00161 0.2125f, 0.1275f, 0.054f,
00162
00163 0.714f, 0.4284f, 0.18144f,
00164
00165 0.393548f, 0.271906f, 0.166721f,
00166
00167 0.2f,
00168
00169
00170
00171 0.25f, 0.25f, 0.25f,
00172
00173 0.4f, 0.4f, 0.4f,
00174
00175 0.774597f, 0.774597f, 0.774597f,
00176
00177 0.6f,
00178
00179
00180
00181 0.19125f, 0.0735f, 0.0225f,
00182
00183 0.7038f, 0.27048f, 0.0828f,
00184
00185 0.256777f, 0.137622f, 0.086014f,
00186
00187 0.1f,
00188
00189
00190
00191 0.24725f, 0.1995f, 0.0745f,
00192
00193 0.75164f, 0.60648f, 0.22648f,
00194
00195 0.628281f, 0.555802f, 0.366065f,
00196
00197 0.4f,
00198
00199
00200
00201 0.19225f, 0.19225f, 0.19225f,
00202
00203 0.50754f, 0.50754f, 0.50754f,
00204
00205 0.508273f, 0.508273f, 0.508273f,
00206
00207 0.4f,
00208
00209
00210
00211 0.0f, 0.0f, 0.0f,
00212
00213 0.01f, 0.01f, 0.01f,
00214
00215 0.50f, 0.50f, 0.50f,
00216
00217 0.25f,
00218
00219
00220
00221 0.0f, 0.1f, 0.06f,
00222
00223 0.0f, 0.50980392f, 0.50980392f,
00224
00225 0.50196078f, 0.50196078f, 0.50196078f,
00226
00227 0.25f,
00228
00229
00230
00231 0.0f, 0.0f, 0.0f,
00232
00233 0.1f, 0.35f, 0.1f,
00234
00235 0.45f, 0.55f, 0.45f,
00236
00237 0.25f,
00238
00239
00240
00241 0.0f, 0.0f, 0.0f,
00242
00243 0.5f, 0.0f, 0.0f,
00244
00245 0.7f, 0.6f, 0.6f,
00246
00247 0.25f,
00248
00249
00250
00251 0.0f, 0.0f, 0.0f,
00252
00253 0.55f, 0.55f, 0.55f,
00254
00255 0.70f, 0.70f, 0.70f,
00256
00257 0.25f,
00258
00259
00260
00261 0.0f, 0.0f, 0.0f,
00262
00263 0.5f, 0.5f, 0.0f,
00264
00265 0.60f, 0.60f, 0.50f,
00266
00267 0.25f,
00268
00269
00270
00271 0.02f, 0.02f, 0.02f,
00272
00273 0.01f, 0.01f, 0.01f,
00274
00275 0.4f, 0.4f, 0.4f,
00276
00277 0.078125f,
00278
00279
00280
00281 0.0f, 0.05f, 0.05f,
00282
00283 0.4f, 0.5f, 0.5f,
00284
00285 0.04f, 0.7f, 0.7f,
00286
00287 0.078125f,
00288
00289
00290
00291 0.0f, 0.05f, 0.0f,
00292
00293 0.4f, 0.5f, 0.4f,
00294
00295 0.04f, 0.7f, 0.04f,
00296
00297 0.078125f,
00298
00299
00300
00301 0.05f, 0.0f, 0.0f,
00302
00303 0.5f, 0.4f, 0.4f,
00304
00305 0.7f, 0.04f, 0.04f,
00306
00307 0.078125f,
00308
00309
00310
00311 0.05f, 0.05f, 0.05f,
00312
00313 0.5f, 0.5f, 0.5f,
00314
00315 0.7f, 0.7f, 0.7f,
00316
00317 0.078125f,
00318
00319
00320
00321 0.05f, 0.05f, 0.0f,
00322
00323 0.5f, 0.5f, 0.4f,
00324
00325 0.7f, 0.7f, 0.04f,
00326
00327 0.078125f,
00328
00329
00330
00331 0.2f, 0.2f, 0.2f,
00332
00333 1.0f, 1.0f, 1.0f,
00334
00335 0.8f, 0.8f, 0.8f,
00336
00337 0.4f,
00338
00339
00340
00341 0.2f, 0.2f, 0.2f,
00342
00343 0.8f, 0.8f, 0.8f,
00344
00345 0.5f, 0.5f, 0.5f,
00346
00347 0.35f,
00348
00349
00350
00351 0.3f, 0.2f, 0.2f,
00352
00353 1.0f, 0.9f, 0.8f,
00354
00355 0.4f, 0.2f, 0.2f,
00356
00357 0.35f,
00358
00359
00360
00361 0.2f, 0.2f, 0.3f,
00362
00363 0.8f, 0.9f, 1.0f,
00364
00365 0.2f, 0.2f, 0.4f,
00366
00367 0.35f
00368 };
00369
00370 void doMaterial (GLfloat * pMat, GLenum gSide);
00371