Реферат: Що таке 3D графіка

Основною тенденцією при переході від VGA до малтимедіа прискорювачів була можливість розміщення якнайбільше візуальної інформації на моніторі комп'ютера. Використання 3D графіки є логічним розвитком цієї тенденції. Великі обсяги візуальної інформації можуть бути утиснуті в обмежений простір екрана монітора, якщо вона представляється в тривимірному виді. Обробка тривимірної графіки в режимі реального часу дає можливість користувачу легко оперувати даними, що представляються.

Ігрові двигуни (Games engines)

Перше правило комп'ютерних ігор - немає ніяких правил. Традиційно, розроблювачі ігор більше зацікавлені в крутій графіці своїх програм, чим проходженню рекомендацій технарей. Не дивлячись на те, що в розпорядженні розроблювачів мається безліч тривимірних API, наприклад - Direct3D, деякі програмісти йдуть по шляху створення власного 3D ігрові чи інтерфейси двигуна. Власні ігрові двигуни - один зі шляхів для розроблювачів домогтися неймовірної реалістичності зображення, фактично на межі можливостей графічного програмування.

Descent craft view

Немає нічого більш бажаного для розроблювача, чим мати прямий доступ до апаратних функцій компонентів системи. Кілька відомих розроблювачів створили свої власні ігрові двигуни, що працюють з оптимальним використанням апаратних прискорювачів графіки, що принесли їм популярність і гроші. Наприклад, двигуни Interplay для Descent II і id Software для Quake, забезпечують щиру тривимірність дії, використовуючи наповну апаратні функції 3D, якщо вони доступні.

Графіка без компромисов

Розмови, що ведуться вже досить довгий час, про перспективи застосування тривимірної графіки в таких областях, як розваги і бізнес, допредела підігріли інтерес потенційних користувачів, на ринку вже з'явився новий тип продуктів. Ці нові технологічні рішення, сполучають у собі чудову підтримку 2D графіки, що відповідає сьогоднішнім вимогам до Windows акселлераторам, апаратну підтримку функцій 3D графіки і програють цифрове відео з необхідною частотою зміни кадрів.
У принципі, ці продукти можна змело віднести до нового покоління графічних підсистем, що забезпечують графіку без компромісів, що займають гідне місце стандартного устаткування в настільних обчислювальних системах.
Серед представників нового покоління можна назвати, як приклад, що випливають продукти:

процесор Ticket-To-Ride компанії Number Nine Visual Technologies

серія процесорів ViRGE компанії S3 Inc.

процесор RIVA128, розроблений спільно компаніями SGS Thomson і nVidia




Технологія 3D-графіки

Нехай нам все-таки удалося переконати Вас спробувати тривимірну графіку в дії (якщо Ви дотепер не зробили це), і Ви вирішили зіграти в одну з тривимірних ігор, призначених для застосування 3D-відеокарти.

Допустимо, такою грою виявився симулятор автомобільних гонок, і Ваша машина вже коштує на старті, готова кинутися до скорення нових рекордів. Йде передстартовий зворотний відлік, і Ви зауважуєте, що вид з кабіни, відображуваний на екрані монітора, небагато відрізняється від звичного.

Ви і колись брали участь у подібних гонках, але вперше зображення уражає Вас винятковим реалізмом, змушуючи повірити в дійсність що відбувається. Обрій, разом з вилученими об'єктами, тоне в ранковому серпанку. Дорога виглядає надзвичайно рівно, асфальт являє собою не набір грязно-сірих квадратів, а однотонне покриття з нанесеною дорожньою розміткою. Дерева уздовж дорогі дійсно мають листяні крони, у яких, здається, можна розрізнити окремі листи. Від всього екрана в цілому складається враження як від якісної фотографії з реальною перспективою, а не як від жалюгідної спроби змоделювати реальність.

Спробуємо розібратися, які ж технічні рішення дозволяють 3D-видеокартам передавати віртуальну дійсність з такою реалістичністю. Яким образом образотворчим засобам PC удалося досягти рівня професійних студій, що займаються тривимірною графікою.

Частина обчислювальних операцій, зв'язаних з відображенням і моделюванням тривимірного світу перекладено тепер на 3D-акселератор, що є серцем 3D-видеокарты. Центральний процесор тепер практично не зайнятий питаннями відображення, образ екрана формує відеокарта. В основі цього процесу лежить реалізація на апаратному рівні ряду ефектів, а також застосування нескладного математичного апарата. Спробуємо розібратися, що ж конкретно вміє графічний 3D-процесор.

Повертаючи до нашого приклада із симулятором гонок, задумаємося, яким чином досягається реалістичність відображення поверхонь чи дороги будинків, що коштують на узбіччі. Для цього застосовується розповсюджений метод, називаний текстурирование (texture mapping).

Це найпоширеніший ефект для моделювання поверхонь. Наприклад, фасад будинку зажадав би відображення безлічі граней для моделювання безлічі цеглин, вікон і двер. Однак текстура (зображення, що накладається на всю поверхню відразу) дає більше реалізму, але вимагає менше обчислювальних ресурсів, тому що дозволяє оперувати з усім фасадом як з єдиною поверхнею. Перед тим, як поверхні попадають на екран, вони текстурируются і затінюються. Усі текстури зберігаються в пам'яті, звичайно встановленої на відеокарті. До речі, тут не можна не помітити, що застосування AGP уможливлює збереження текстур у системній пам'яті, а її обсяг набагато більше.

Очевидно, що коли поверхні текстурируются, необхідний облік перспективи, наприклад, при відображенні дороги з розділовою смугою, що іде за обрій. Перспективна корекція необхідна для того, щоб текстуровані об'єкти виглядали правильно. Вона гарантує, що бітмеп правильно наложится на різні частини об'єкта - і ті, котрі ближче до спостерігача, і на більш далекі.

Корекція з урахуванням перспективи дуже трудомістка операція, тому нерідко можна зустріти не зовсім вірну її реалізацію.

При накладенні текстур, у принципі, також можна побачити шви між двома найближчими бітмепами. Чи, що буває частіше, у деяких іграх при зображенні чи дороги довгих коридорів помітне мерехтіння під час руху. Для придушення цих труднощів застосовується фільтрація (звичайно Bi- чи tri-лінійна).

Білінійна фільтрація - метод усунення перекручувань зображення. При повільному чи обертанні русі об'єкта можуть бути помітні перескакування пікселів з одного місця на інше, що і викликає мерехтіння. Для зниження цього ефекту при білінійній фільтрації для відображення крапки поверхні береться зважене середнє чотирьох суміжних текстурних пикселов.

Трилінійна фільтрація трохи складніше. Для одержання кожного піксела зображення береться зважене середнє значення результатів двох рівнів білінійної фільтрації. Отримане зображення буде ще більш чітке і менш мерехтливе.

Текстури, за допомогою яких формується поверхня об'єкта, змінюють свій вид у залежності від зміни відстані від об'єкта до положення очей глядача. При зображенні, що рухається, наприклад, у міру того, як об'єкт віддаляється від глядача, текстурний повинний зменшуватися в розмірах разом зі зменшенням розміру відображуваного об'єкта. Для того щоб виконати це перетворення, графічний процесор перетворить битмэпы текстур аж до відповідного розміру для покриття поверхні об'єкта, але при цьому зображення повинне залишатися природним, тобто об'єкт не повинний деформуватися непередбаченим чином.

11Th clock

Для того щоб уникнути непередбачених змін, більшість керуючих графік процесів створюють серії передфільтрованіх бітмепов текстур зі зменшеним дозволом, цей процес називається mip mapping. Потім, графічна програма автоматично визначає, яку текстуру використовувати, ґрунтуючись на деталях зображення, що уже виведено на екран. Відповідно, якщо об'єкт зменшується в розмірах, розмір його текстурного бітмепа теж зменшується.

Але повернемося в наш гоночний автомобіль. Сама дорога уже виглядає реалистично, але проблеми спостерігаються з її краями! Згадаєте, як виглядає лінія, проведена на екрані не паралельно його краю. От і в нашої дороги з'являються "рвані краї". І для боротьби з цим недоліком зображення застосовується anti-aliasing.

Jaggies

anti-alias

Рвані краї

Рівні краї

Це спосіб обробки (інтерполяції) пикселов для одержання більш чітких країв (границь) зображення (об'єкта). Найбільше часто використовувана техніка - створення плавного переходу від кольору чи лінії краю до кольору тла. Колір крапки, що лежить на границі об'єктів визначається як середнє кольорів двох граничних крапок. Однак у деяких випадках, побічним ефектом anti-aliasing є змазування (blurring) країв.

Ми підходимо до ключовому моменту функціонування всіх 3D-алгоритмів. Припустимо, що трек, по якому їздить наша гоночна машина, оточений великою кількістю різноманітних об'єктів - будівель, дерев, людей.

Отут перед 3D-процесором устає головна проблема, як визначити, які з об'єктів знаходяться в області видимості, і як вони освітлені. Причому, знати, що очевидно в даний момент, недостатньо. Необхідно мати інформацію і про взаємне розташування об'єктів. Для рішення цієї задачі застосовується метод, називаний z-буферизация. Це самий надійний метод видалення схованих поверхонь. У так називаному z-буфері зберігаються значення глибини всіх пикселей (z-координати). Коли розраховується (рендерится) новий пиксел, його глибина порівнюється зі значеннями, збереженими в z-буфере, а конкретніше з глибинами вже срендеренных пикселов з тими ж координатами x і y. Якщо новий пиксел має значення глибини більше якого-небудь значення в z-буфері, новий пиксел не записується в буфер для відображення, якщо менше - те записується.



  • Сторінка:
  • 1
  • 2
  • 3