|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Porting Defs, Binds, and Sets
OpenGL doesn't have tables of stored definitions; you can't define lighting models, material, textures, line styles, or patterns as separate objects as you can in IRIS GL. Thus OpenGL has no direct equivalents to the following IRIS GL functions:
· Imdef and Imbind · tevdef and tevbind · textdef and textbind · definestyle and setstyle · defpattern and setpattern
You can use OpenGL display lists to mimic the IRIS GL def/bind mechanism. For example, here is a material definition in IRIS GL:
float mat() = { AMBIENT, .1, .1, .1, DIFFUSE, 0, .369, .165, SPECULAR, .5, .5, .5, SHININESS, 10, LMNULL }; lmdef(DEFMATERIAL, 1, 0, mat); lmbind(MATERIAL, 1);
The following OpenGL code fragment defines the same material in a display list that is referred to by the list number defined by MYMATERIAL.
#define MYMATERIAL 10
GLfloat mat_amb[] = {.1, .1, .1, 1.0}; GLfloat mat_dif[] = {0, .369, .165, 1.0}; GLfloat mat_spec[] = {.5, .5, .5, 1.0};
glNewList(MYMATERIAL, GL_COMPILE); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_amb); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_dif); glMaterialfv(GL_FRONT, GL_SHININESS, 10); glEndList();
glCallList( MYMATERIAL );
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Перенесение Определенное, Связывает, и Устанавливается
OpenGL НЕ имеет столы сохраненных определений; Вы не можете определять освещение моделей, материала, текстур, стилей линии, или образцы как отдельные объекты как Вы можете в IRIS GL. Таким образом OpenGL не имеет прямые эквиваленты следующему функций IRIS GL:
Imdef И Imbind tevdef и tevbind textdef и textbind definestyle и setstyle defpattern и setpattern
Вы можете использовать дисплейные списки OpenGL, чтобы имитировать ИРИС GL определенный/связывать механизм. Например, здесь - материальное определение в IRIS GL:
переменный ковер() = { ОКРУЖАЮЩАЯ среда, .1, .1, .1, РАССЕЯННЫЙ, 0, .369, .165, SPECULAR, .5, .5, .5, БЛЕСК, 10, LMNULL }; lmdef(DEFMATERIAL, 1, 0, ковер); lmbind(МАТЕРИАЛ, 1);
Кодовый фрагмент следующего OpenGL определяет тот же материал в дисплейном списке, который ссылался, чтобы номером списка определенным MYMATERIAL.
#define MYMATERIAL 10
GLfloat mat_amb[] = {.1, .1, .1, 1.0}; GLfloat mat_dif[] = {0, .369, .165, 1.0}; GLfloat mat_spec[] = {.5, .5, .5, 1.0};
glNewList(MYMATERIAL, GL_COMPILE); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_amb); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_dif); glMaterialfv(GL_FRONT, GL_SHININESS, 10); glEndList();
glCallList( MYMATERIAL );
| |
|
|
| |