Технодемки:
Ruby 3Dc demo 1 (- 3,9Mb)
Ruby 3Dc demo 2 (- 3,1Mb)
SSam 2 demo (- 6,0Mb)
Сегодняшние трехмерные изображения в играх до сих пор состоят из элементарных треугольников, на которые "натянуты" 2D текстуры. Чем больше треугольников - тем точнее представлена форма и объем объекта. Но каждый раз вычислять миллионы координат для правильного создания трехмерного объекта слишком расточительно. Был найден простой и эффективный метод - карта нормалий (normal map). Метод позволяет на достаточно простой объект, состоящий из ограниченного кол-ва элементов, наложить специальную текстуру, которая отвечает за правильное учитывание освещенности объекта и тем самым корректно отображать объем поверхности.
Сами карты нормалий уже интенсивно используются как в последних вышедших играх (например Far Cry и Lord of the Ring), так и ожидаемых Half Life 2, Doom 3 и Serious Sam 2.
"Нормали" как стрелка, которая указывает правильное перпендикулярное направление от сложной поверхности в любой ее точке. Эти данные необходимы для вычисления того, как свет должен отражаться от этой точки поверхности, а сами normal map представляют из себя обычные текстуры, где вся необходимая цифровая информация хранится в цветовом виде.
Возможно, никто ничего не понял, поэтому по пунктам:
- Создается сложная и простая модель объекта
- На их основе вычисляется разница в направлении перпендикуляров поверхностей
- Полученная информация используется для создания текстуры "карты нормалей"
- Информация с этой текстуры позволяет расчитать освещенность простого объекта, так, как будто в игре используется первоначальный сложный (правильный) объект.
Для иллюстрации воспользуемся следующей картинкой из презентации ATI:
Как и любая текстура, карта нормалий имеет свои ограничения на объем представленной информации. Для уменьшения объема текстур используется технология сжатия DXTC:
Как видим, итоговый результат, после использования существующих методов сжатия, далек от оригинала. ATI предлагает разработчикам новый инструмент улучшения качества сжатия карт нормалей - технологию 3Dc, хардверно реализованную в чипе R420.
Мы не будем сильно вдаваться в математическую модель процесса - специалисты смогут детально ознакомиться с ней по технологической документации на сайте ATI. Отметим только результат внедрения - сжатие 1:4 (один-к-четырем) при сохранении идентичности оригиналу, что приводит к экономии пропускной способности шины памяти при повышении реалистичности отображения трехмерных моделей.
Мы уже не раз наблюдали бравурные анонсы и такие же тихие похороны фирменных инициатив - достаточно вспомнить TrueForm (ATI). Будем надеяться, на этот раз разработчики воспользуются новой технологией, тем более, что она крайне проста в реализации. Croteam буквально за два часа ввел в демо-версию "Serious Sam 2" поддержку 3Dc, но это возможно при условии, что есть деталированные модели.
На сегодня технология 3Dc анонсирована в таких ожидаемых и культовых проектах как Serious Sam 2, Half Life 2, Pirates! Сида Мейера, Tribes Vengeance и DarkSector.
Pixel Shader 3.0: быть или не быть?
В конкурентном чипе NV40 реализована поддержка уже следующей версии пиксельных шейдеров. В R420 подобной технологии нет. Т.е. в самое ближайшее время нас ожидает серьезная маркетинговая война - NVIDIA будет убеждать всех в крайней необходимости поддержки пиксельных шейдеров 3.0 уже для сегодняшнего железа, а ATI будет резонно возражать, аргументируя свою позицию тем фактом, что даже нынешние шейдеры 2.0 во всей своей красе реализованы только в одной игре - "Far Cry". Зато как реализованы! До выхода долгостроев "DOOM3" и "Half-Life2" проект от малоизвестной Crytek уже успел стать культовым.
Надо признать, разработчики игр серьезно отстают по времени внедрения новых технологий в свои проекты. И на то есть объективные причины - время создания одной игры может занимать 3-5 лет, тогда как время смены поколений графических чипов - 9 месяцев. Вспомним, впервые шейдеры 2.0 были продемонстрированы в революционном ядре R300 (Radeon 9700), который вышел 20 месяцев назад. И только сейчас мы можем хоть где-то на них полюбоваться.
Возвращаясь к Pixel Shader 3.0, стоит отметить пару-тройку тонких моментов:
- Технология пиксельных шейдеров 3.0 будет поддержана в следующей версии API Microsoft DX (DirectX9c), которая выйдет примерно в начале июня;
- По словам многих разработчиков игр шейдеры 3.0 не сделают графику краше. Не существует эффектов, которые возможно описать шейдерами 3.0, но нельзя реализовать шейдерами 2.0.
- Можно ли добиться роста производительности перейдя на шейдеры 3.0 – большой вопрос. От предыдущих версий они отличаются, в основном, полной поддержкой условных переходов (ветвлений). Проблема в том, что результат ветвления очень трудно предсказать, а в случае ошибочного прогноза весь конвейер графического процессора приходится перезапускать с огромными потерями производительности.
- Первой игрой с ее поддержкой скорее всего станет "DOOM3";
- Идеологически, многое зависит от небезызвестной компании Futuremark, а точнее от того, будет ли встроен в 3DMark2004 тест "Pixel Shader 3.0". Если да, то можно будет измерить эффективность реализации технологии в чипе NV40 (вряд ли она будет высокой и даже хотя бы приемлемой), если нет - ATI получит в свои руки еще один аргумент в пользу преждевременности технологии.
До выхода 3DMark2004 осталось совсем немного времени. Подождем и посмотрим.
Следующая страница →
← Предыдущая страница
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|