- •© Вурста с.Ю.,Літнарович р.М.,2010
- •Вступ………………………………..………………………5
- •4.1.Високопродуктивний компілятор в машинний код………………………………..………………... 126
- •4.4 Бібліотека візуальних компонент…………..135
- •5. Опис графічних бібліотек для написання 3d – програм та ігор……………….……………………………………151
- •1. Історія появи фракталів та їх використання
- •2. Довжина берегової лінії. Фрактальна розмірність. Поняття фрактала.
- •2.1. Приклади побудови фрактальних множин. Класифікація фракталів.
- •2.2. Алгоритм фрактального шуму або шум перліна
- •2.3. Реалізація алгоритму
- •3. Історія розвитку комп’ютерної графіки та ігор
- •3.1. Основні поняття зd-графіки
- •3.2. Основні прийоми для роботи з світлом в 3d:
- •3.3 Алгоритми рельєфного текстурування
- •3.3.1 Рельєфне текстурування (bump mappіng)
- •3.3.5 Простий Relief Mapping
- •3.3.6 Багатошаровий Relief Mapping
- •3.4 Основні прийоми для роботи з текстурами в 3d:
- •3.5 Основні поняття про шейдер та види шейдерів
- •3.6. Генерація тривимірних ландшафтів
- •4.1 Високопродуктивний компілятор в машинний код
- •4.2. Могутня об'єктно-орієнтована мова
- •Об'єктно-орієнтована модель програмних компонент
- •4.4 Бібліотека візуальних компонент
- •4.5. Робота з компонентами
- •5. Опис графічних бібліотек для написання 3d – програм та ігор
- •5.1 Опис графічної бібліотеки OpenGl
- •5.2 Графічна бібліотека DirectX
- •5.3 Візуальні бібліотеки компонентів для OpenGl та DirectX.
- •5.4 Опис закладок glScene
- •6. Проектування системи
- •6.1 Вибір середовища реалізації
- •6.2 Опис використаних компонент glScene для реалізації системи
- •Опис інтерфейсу розробленої системи
- •6.3.1 Панель інструментів
- •6.3.2 Опис робочої області
- •6.3.3 Опис панелі налаштування 3d-сцени
- •Висновки
- •Список літератури:
- •Побудова фрактальних поверхонь в комп’ютерній графіці
- •33027 Рівне , Україна
3.3.5 Простий Relief Mapping
Це найпростіший з нових алгоритмів Relief Mapping [2]. Він розроблений як оптимальна заміна Normal/Parallax Mapping. Як і попередники, Relief Mapping не міняє контурів самого об'єкту, зате робить деталі на 100% об'ємними, здатними відкидати тінь один на одного.
Найбільш ефективне застосування даного шейдера (а Relief Mapping по суті своїй саме шейдер) - поверхні, які не дозволяють безпосередньо побачити їх контури. Наприклад, стіни будівель і коридорів, поверхні скель і відкритих майданчиків: ви ж не можете зануритися в тріщину скелі, щоб зрозуміти, що вона насправді плоска, а не об'ємна. Це стало очевидно і для колеги Олівейра - Фабіо Полікарпо, який створив графічні модіфікациідля Doom 3 і Quake 4, замінюючі там Normal Mapping на Relief Mapping.
Relief Mapping, що міняє контури об'єкту
Другий алгоритм Relief Mapping рвонув як атомна бомба: це найреалістичніший ефект рельєфної поверхні, розрахований в реальному часі. Причому що повністю міняє контури самого об'єкту, тому його ще називають True Per-Pixel Displacement Mapping. Абсолютно недосяжний раніше фокус, тепер реалізований за допомогою високорівневої мови шейдеров DIRECTX 9.0c.
На малюнку нижче показаний елементарний примітив (циліндр), на який накладений рельєф по трьом різним алгоритмам.
Вже зараз ясно, що Displacement Mapping виведе графіку комп'ютерних ігор на новий рівень всього через два-три роки. Головна проблема всіх ігор - горезвісна незграбність, яка завжди впадає в очі і незмінно заважає зануренню у віртуальність, - буде повністю переможена.
3.3.6 Багатошаровий Relief Mapping
Третій, найнеймовірніший алгоритм - Quad Depth Relief Mapping [4] (також званий Multilayer Relief Mapping) робить те, що здається взагалі неможливим. Уявіть собі простій прямокутний полігон, на який накладається декілька особливих текстур рельєфу, оброблюваних спеціальним шейдером. При цьому майже з усіх боків (окрім вигляду, коли полігон проектується в лінію) замість полігону б бачите абсолютно правильний об'ємний об'єкт!
Зовсім немає. Для відтворення ефекту використовується всього три текстури: карта глибини і дві хитрим чином карти нормалей, що згенерували. Все текстури 32-бітові, так що альфа-канал на малюнках не відображений.
Ще один наочний приклад використання нової технології - складні багатошарові поверхні. Тут багатошаровому relief mapping немає рівних.
Ось тільки системні вимоги нової технології поки що досить високі. У нас в редакції, на Pentium 4 3.2 ГГц/1 Гб DDR-2/GeForce 6600GT PCI-E простенькі демки видавали близько 75 кадрів в секунду, але якщо мова йде про повноцінній грі... Сучасні комп'ютери поки не готові до пришестя Relief Mapping, але пройде рік-два, і ситуація зміниться.
Адже для розробників ігор карти рельєфу це не якесь туманне майбутнє, а сувора реальність. Вже зараз важ арсенал Relief Mapping доступний у вигляді плагінів для 3DS Max 6-9 (за виключення плагіна багатошарової рельєфності, який створений поки тільки для Max 6-8).
3.4 Основні прийоми для роботи з текстурами в 3d:
Процедурні текстури [2] - це такі текстури, що генеруються різними алгоритмами на літу", а не малюються художниками заздалегідь. Процедурні текстури можуть бути як статичними (дерево, метала й ін.), так і анімованими (вода, вогонь, хмари). Перевагами процедурних текстур є відсутність повторюваного малюнка і менші витрати відеопам'яті для анімації. Але є і недолік необхідний розрахунок з використанням CPU чи шейдерів.
Текстурування, чи накладення текстур (texturіng, чи texture mappіng) - найпоширеніший метод реалістичного моделювання поверхонь - накладення на них текстур із зображенням. При цьому, звичайно ж, враховуються відстань, перспектива, орієнтація трикутника.
Текстура (texture) - це двовимірне зображення bіtmap, "натягається" на 3D-об'єкт. За допомогою текстур задаються всілякі параметри матеріалу, з якого складається об'єкт: його малюнок(найбільш традиційне застосування), ступінь освітленості різних його частин (карта освітленості, чи lіght-map), здатність відбивати світло (specular map) і розсіювати його (dіffuse map), нерівності (bump map) і ін.
Фільтрація текстур (texture fіlterіng) - метод поліпшення якості текстурування при зміні відстані до спостерігача. Найпростіший метод - білінійна (bіlіnear) фільтрація - використовує усереднене значення кольору чотирьох суміжних текселов текстури. Більш складний - трилінійна (trі-lіnear) фільтрація - задіє також інформацію з MІP-рівнів. Найсучасніший і якісний (а заодно і самий повільний) метод - анізотропна (anіsotropіc) фільтрація, що підраховує результуюче значення, застосовуючи цілий набір (звичайно від 8 до 32) текселів, розташованих поруч.
Мультитекстурування (multіtexturіng) - накладення декількох текстур за один прохід акселератора. Наприклад, основної текстури, карти освітленості і карти з детальною текстурою. Сучасні відеокарти вміють обробляти як мінімум 3-4 текстури за раз. Якщо мультитекстурування не підтримується (чи необхідно накласти більше шарів текстур, чим це може зробити акселератор "в один прийом"), те використовується кілька проходів, що природно, набагато повільніше.
Карти середовища (envіronment mappіng) - імітація поверхонь, що відбивають, за допомогою спеціальної текстури - карти середовища, що представляє собою зображення що оточує об'єкт світу.
Детальні текстури (detaіl textures) - прийом, що дозволяє уникнути розпливання текстур на близькій відстані від об'єкта і домогтися ефекту дрібного рельєфу поверхні без надмірного збільшення розміру текстур. Для цього використовується основна текстура нормального розміру, на яку накладається менша - з регулярним шумовим малюнком.
Альфа-канал (alpha chanel) і альфа-змішування (alpha-blendіng) - у текстурі поряд з інформацією про колір у RGB-форматі для шкірного пікселя, може зберігатися ступінь його прозорості, називаний альфа-каналом. При рендеринзі колір намальованих раніше пікселів буде з різним ступенем "проступати" і змішуватися з кольором виведеного пікселя, що дозволяє одержати зображення з різним рівнем прозорості. Це і називається альфа-змішуванням. Такий прийом використовується дуже часто: для моделювання води, скла, туману, Дмитрика, вогню й інших напівпрозорих об'єктів.
Dіsplacement mappіng (текстурування картами зсуву) - метод моделювання дрібних деталей рельєфу. При його використанні спеціальною текстурою - картою зсуву задаються, наскільки різні частини поверхні будуть опуклими чи втисненими щодо базового трикутника, до якого застосовується цей ефект. На відміну від рельєфного текстурування цей метод є "чесним" і дійсно змінює геометричну форму об'єкта. Поки тільки деякі новітні ЗD-акселератори безпосередньо підтримують карти зсуву.
MIP-mappіng - допоміжний метод поліпшення якості і підвищення швидкості текстурування, що полягає в створенні декількох варіантів текстури зі зменшеним дозволом (наприклад, 128 х 128,64 х64, 32 х 32 і т.д. ), називаних MІP- рівнями. У міру видалення об'єкта будуть вибиратися вусі більш "дрібні" варіанти текстури.
