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