У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Реферат - 3D графіка
19



жалюгідної спроби змоделювати реальність.

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

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

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

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

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

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

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

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

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

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

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

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

Рвані краї 

Рівні краї

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

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

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

Z-буферизация при апаратній реалізації сильно збільшує продуктивність. Проте, z-буфер займає великі обсяги пам'яті: наприклад навіть при дозволі 640x480 24-розрядний z-буфер буде займати близько 900 Кб. Ця пам'ять повинна бути також установлена на 3D-видеокарте.

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


Сторінки: 1 2 3 4