ою 1. Для двовимірного випадку z - 0, а w - 1.Вершіни в OpenGL об'єднуються в графічні примітиви. Це може бути фігура, така як точка, лінія, багатокутник, прямокутник пікселів або бітовий масив. Кожна вершина примітиву має асоційовані з нею дані. Кожна стіна будинку складається з шести прямокутників. Для того щоб зберегти вміст поточної матриці для подальшого використання, застосовуються команди glPushMatrix (); glPopMatrix ();
Приклад: (); (GL_QUADS); d (3.0, 3.0, 1.0); d (3.0, 3.0, -1.0); d (-3.0, 3.0, -1.0); d (- 3.0, 3.0, 1.0); ();
glPopMatrix ();
3.2 Можливість переміщення
У програмі використовуються модельно-видові перетворення. До них відносять перенесення, поворот і зміна масштабу уздовж координатних осей. Для проведення цих операцій досить помножити на відповідну матрицю кожну вершину об'єкту і отримати змінені координати цієї вершини:
(x , y , z , 1) T = M * (x, y, z, 1) T
де M - матриця модельно-видового перетворення. Перспективне перетворення і проектування проводиться аналогічно. Сама матриця може бути створена за допомогою наступних команд:
(xPos, yPos, zPos);// виробляє перенесення об'єкта, додаючи до координат його вершин значення своїх параметрів. (xRot, 0.0f, 0.0f, 1.0f);// об'єкт буде обертатися щодо осі Oz на кут xRot. (yRot, 1.0f, 0.0f, 0.0f);// об'єкт буде обертатися щодо осі Ox на кут yRot
Всі ці перетворення змінюють поточну матрицю, а тому застосовуються до примітивів, які визначаються пізніше. У разі, якщо треба, наприклад, повернути один об'єкт сцени, а інший залишити нерухомим, зручно спочатку зберегти поточну видову матрицю в стеці командою glPushMatrix (), потім викликати glRotate () з потрібними параметрами, описати примітиви, з яких складається цей об'єкт, а потім відновити поточну матрицю командою glPopMatrix () [4].
Приклад, використання цих функцій в програмі:
glPushMatrix (); (2 * time, 1,0,0); (-0.3,0,0); d (1,1,1); (); (120,0, 1,0); (GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); (GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); (quadObj, GLU_FILL); (quadObj, 0.6, 3.5, 30,20);
glPopMatrix (); (); [6]
.3 Завдання освітлення
дає багаті можливості розробнику моделювати реалістичну графіку сцен, де присутня світло. Передбачено механізм завдання світлових характеристик матеріалу об'єкта, параметрів джерел світла і моделі освітлення. Розглянемо ці можливості
Для використання освітлення спочатку треба встановити відповідний режим викликом команди glEnable (GL_LIGHTNING), а потім включити потрібне джерело команд...