Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Створення 3D-моделі лабіринту з вертикальними стінами

Реферат Створення 3D-моделі лабіринту з вертикальними стінами





.

Тепер для позиціонування камери викликаємо gluLookAt наступним чином:


gluLookAt (eye [0], eye [1], eye [2], center [0], center [1], center [2], 0, 1, 0);


Тут eye - позначення E, center - позначення С. Даний виклик виконуємо в режимі пересування по сцені (в термінах програми - в «режимі польоту»), а виклик, описаний на початку розділу - в режимі огляду.


3.2 Отрісовка моделі


Використовуючи дерево моделі, отрисовку можна виконати таким чином: 1) якщо поточний вузол листовий, малюємо відповідне зображення, що накладається на полігон; використовуються функції OpenGL для роботи з текстурами - glBindTexture, glTexCoord2f [4]; 2) якщо поточний вузол внутрішній, рекурсивно викликаємо функцію отрисовки для дочірніх вузлів. У додатку А наведено лістинг функції отрисовки моделі.

У додатку А наведено вихідний код описаного алгоритму отрисовки.


3.3 Ефект туману


У OpenGL існують розвинені засоби забезпечення ефекту туману. Фактично його забезпечення зводиться лише до послідовної установці параметрів туману за допомогою функцій glFogf, glFogfv, glFogi, glHint і викликом GL_ENABLE (GL_FOG). [5]


3.4 Ефект снігопаду


Ефект снігопаду можна реалізувати, організувавши велику колекцію частинок - точок - і імітуючи їх рух. Загальна схема наведена на рис. 3.1. Спочатку «сніжинки» генеруються в «Верхньому шарі атмосфери» - підпросторі, яке знаходиться вище поля зору, і тим самим невидимо. Далі з кожним тиком таймера «сніжинки» зміщуються вниз на задану величину, і в «Нижньому шарі атмосфери», що знаходиться в полі зору, виникає ілюзія падіння сніжинок. Спочатку їх небагато, як і при початку реального снігопаду, потім їх кількість дещо збільшується і незабаром стабілізується - більше немає «сніжинок», що знаходяться в «Верхньому шарі атмосфери». Якщо якась із сніжинок досягла «землі», то вона переміщається на «кордон шарів». Це переміщення непомітно для користувача, оскільки «сніжинок» дуже багато - в даному проекті генерується 4 тис. Точок. Переміщати сніжинку в «верхній шар атмосфери» після її «приземлення» недоцільно - коли частина сніжинок вже «приземлилася», а частина ще «падає», у верхній частині «Нижнього шару атмосфери» виявиться помітна «пролом», де протягом ряду тиків таймера не буде «сніжинок».


Рис. 3.1 - Загальна схема імітації снігопаду


Важливим є питання про співвідношення висот «шарів атмосфери». Якщо висота верхнього менше висоти нижнього, то відбудеться наступне. У деякий момент всі «сніжинки» вже минуть частина «Нижнього шару атмосфери» поблизу «Кордони шарів», але жодна ще не «приземлиться». В результаті користувач помітить, як вгорі поля зору є область, де взагалі немає сніжинок, тобто «снігопад» виглядатиме вкрай неприродно. Такої проблеми немає, якщо згадані висоти рівні.

Для підвищення ефективності отрисовки «сніжинок» відсікаємо ті, які знаходяться в «Верхньому шарі атмосфери». Введення перевірки на відсіч призводить до деяких витрат часу, але вони незрівнянно менше, ніж виклик функції отрисовки для тих точок, які свідомо не видні.

У додатку Б наведено вихідний код описаного алгоритму.


3.5 Динамічне освітлення


За допомогою функцій glLightf і glLightfv [6] створюємо джерела світла з необхідними характеристиками. За допомогою таймера міняємо характеристики джерел, в даному проекті змінюється колір. Щоб підвищити реалістичність освітлення, доцільно забезпечити спадання інтенсивності освітлення в міру віддалення від джерела. Найпростіший спосіб - задати лінійний закон загасання, викликавши функцію glLightf з другим параметром GL_CONSTANT_ATTENUATION і потім з GL_LINEAR_ATTENUATION [2], в якості третього параметра передаючи необхідні коефіцієнти.

Зміну квітів можна організувати таким чином. Нехай є N джерел і M можливих комбінацій кольорів, K - номер поточної комбінації. У масиві A зберігаються кольору джерел, точніше, їх коди. Очевидно, що коди квітів можуть повторюватися. Елемент A [NK + p] містить код кольору, яка повинна придбати p-ая лампа при виборі K-ой комбінації (p=0 ... N - 1, K=0 ... M - 1). При черговому тику таймера міняємо номер поточної комбінації, потім для p-ой лампи (p=0 ... N - 1) встановлюємо колір A [NK + p], де K-номер нової комбінації.


Додаток А


Отрісовка моделі, представленої деревом

Для структури даних Node, описаної в розділі 2.2, передбачається рекурсивний метод Draw. Щоб отрисовать модель, потрібно викликати метод для кореня дерева.

Node :: Draw ()/* отрисовка ...


Назад | сторінка 3 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Проблеми забруднення атмосфери та знищення озонового шару
  • Реферат на тему: Екологічна оцінка джерела викидів сажі і пентану котельні вантажопасажирськ ...
  • Реферат на тему: Забруднення атмосфери. Знищення озонового шару
  • Реферат на тему: Значення і функції атмосфери
  • Реферат на тему: Загальна циркуляція атмосфери