Немного лирики
Поскольку игры стали более реалистичными, потребность в современном оборудовании
с улучшенными характеристиками оказалась очевидной. NVIDIA и S3 сразу почувствовали
это и освоили производство T&L оборудования, в то же время 3dfx представили
свою Т-буффер технологию. Matrox использует технологию отображения окружающих
неровностей (environmental bump mapping), в то время как ATI еще практически
ничего не предприняла для повышения качества своих графических акселераторов
до уровня соответствующего современным играм.
Расстроенные своим незавидным положением на рынке высокопроизводительных
графических процессоров, ATI выработало план по революционному внедрению
новых технологий в свое оборудование. Исторически сложилось так, что фанаты
игр всегда стремились иметь карты с большим показателем fps, высокими текстурными
характеристиками, высококачественной прорисовкой сцен. Для того, чтобы выбор
технологии изготовления графических процессоров был удачным, ATI решило
усовершенствовать как скорость так и качество визуализации, обеспечивая
реалистичное построение сцен. Исходя из этого ATI сформулировало те качественные
характеристики и скоростные характеристики, которые совместно должны обеспечить
потрясающую графику на обычном домашнем компьютере.
Итак, что же уникального в новой технологии ATI? Как же им
удастся сочетать качество и характеристики одновременно? Когда мы увидим
продукт трудов ATI? Ну начнем, все по порядку…
По мнению специалистов ATI, существует три основных препятствия для того,
чтобы графические процессоры создавали реалистичные изображения.
1. Модели персонажей игр. Хотя модели персонажей игр и стали очень детализированными
в таких играх как Quake III (при использовании динамических текстур), они
все же далеки от действительно реалистичных из-за геометрических ограничений.
2. Детализация объектов. В большинстве случаев, текстуры составляющие изображение
лимитированы в сложности. При приближении, большинство текстур гладкие и
плоские, делая шероховатые и выпуклые объекты трудными для рассмотрения.
3. Эффекты. На сегодняшний день, следы от пуль и другие эффекты проявляющиеся
при воздействии на внешнюю среду смотрятся как переводные картинки. ATI
надеется, что изображение можно будет "вернуть к жизни" через
преобразование окружающего фона и теней.
Для того, чтобы преодолеть эти препятствия ATI ищет гениальное решение архитектуры.
Итак, сначала поговорим о производительности.
Итак одной из составляющих нового поколения плат ATI должна стать потрясающая
производительность -- продвинутое преобразование данных (сопряженных элементов),
светотень и схема ограничения, которой ATI гордится как наилучшей доступной
на рынке.
1. Transform, Clipping and Lighting (TCL) Преобразование, ограничение
и светотени.
Используя во много раз больше многоугольных элементов структуры изображения,
модель получается "глаже" и к тому же детали прорисованы отлично
что обеспечивает реалистичность изображения. Вместо большого количества
линий и углов, рука состоящая из большого количества многогранников выглядела
бы гораздо реалистичнее.
На изображении ниже левая катринка построенас использованием 900 полигонов,
а правый содержит 9000 полигонов.
маленнькое кол-во полигонов против
большого кол-ва полигонов
По словам ATI, следующее поколение плат будут способны генерировать в десятки
раз большее количество многоугольников, что позволит производителям игр
создавать игры более высокого класса с реалистичными персонажами, сложными
тенями, формами и конструкциями.
Очень вероятно, что мы получим до восьми цветов на многоугольник в новом
поколении ATI акселераторов, что соответствует уровню GeForce 256.
2. Скелетная анимация и скинирование (от англ. Skin - кожа).
Другая технология, которая завоевывает популярность среди разработчиков
это скелетная анимация. Это самая простая форма создания двигающегося объекта.
Модель изначально задается как каркас, а затем на каркас "одевается"
скин. При движении каркаса (скелета) объект перемещается в соответствии
с просчитанным весом. Таким образом, движение в основном достигается посредством
движения скелета, положение скина на скелете при этом вычисляется математически.
Скелетная анимация не только упрощает процесс, но и требует гораздо меньше
памяти - количество обращений уменьшается тем самым освобождается полоса
пропускания.
Как сказал Тим Свини, разработчик Unreal Tournament, скелетная анимация
просто потрясающее решение и более 60% всех моделей в следующей версии будут
созданы именно таким образом.
Однако и у этого метода есть свои минусы. К сожалению, минусы кроются в
сочленениях, а проще говоря во время сгибания руки, например, образуется
залом, что не способствует реалистичности модели. Этот недостаток, однако,
был удален путем доработки скинирования. Теперь районы сгибов соединены
гибкой перемычкой, восстанавливая реализм.
Скинирование гибких соединений каркаса (суставов)
Для скинирования суставов применяется матричное преобразование для вычисления
облегания суставов. Для каждой кости скелета, участвующей в сгибе используется
дополнительная матрица для того, чтобы сделать процесс быстрым. Используя
новое поколение карт можно генерировать до четырех матриц на аппаратном
уровне, по сравнению с двумя у GeForce это большой прогресс.
3. Двух матричное сопряжение против трех матричного.
Картинки выше иллюстрируют применение более чем двух матриц
для сглаживания в плечевом районе. Для достижения гладкости на картинке справа
применено решение ПО (негативно влияющее на производительность).
Плавное преобразование районов изгиба путем геометрических операций и
цветовой интерполяции Keyframe Interpolation (Vertex Morphing)
Когда имеешь дело со сложным выражением лица или такими эффектами как напряжение
мышц, следует использовать более сложный метод для получения четкого изображения.
Для этого ATI разработала систему Keyframe Interpolation -- довольно простую
операцию, которая берет последовательные структуры (Keyframe) и видоизменяет
их путем заполнения промежутка между двумя структурами (Interpolation).
На картинке ниже художник должен был только определить хмурящуюся и улыбающуюся
физиономию и графический процессор сам построил промежуточные структуры
без дополнительной помощи процессора.
Использование интерполяции полезно не только из соображений времени, но
и из экономии памяти, что увеличивает количество одновременно движущихся
объектов либо одновременно идущих операций.
Внимание!
Не кривя душой, можно сказать и еще об одном улучшении в технологии ATI,
которое касается "раскрутки по полной" каждого пикселя. Pixel
Tapestry Architecture, как назвали ее ATI, создана для того, чтобы подчеркнуть
достижение ATI в проектировании платы, обеспечивающей беспрецедентный уровень
обработки деталей изображения и высокую скорость.
1. Тройная текстурация на пиксель
Поскольку однотекстурность уже отошла в прошлое, а многотекстурность стала
стандартом, число текстурных блоков на канал становится все более важным.
График ниже иллюстрирует как число текстурных блоков влияет на производительность.
Очевидно, что чем больше текстур применяется к одному пикселю,
тем больше можно осуществить различных эффектов и тем сильнее это отражается
на производительности. Используя Pixel Tapestry стало возможным применение
до трех текстур без влияния на скорость. Как результат, можно прорисовать
больше деталей не теряя пропускной способности памяти.
2. Трехмерные текстуры
Обычно, многоугольники используют для построения 3D объектов. Тем не менее,
с 3D текстурами, можно применять огромное количество отекстурированных пикселей
(текселей). В двухмерной текстуре ( такой например как мы видим наклеенной
на стену) индексация происходит через две координаты, в то время как в трехмерной
структуре присутствует три координаты.
Один хороший пример использования трехмерных текстур это мраморный куб.
Если отколоть вершину этого куба, то все прожилки проходящие через мрамор
будут уже определены и видны без необходимости генерировать дополнительные
текстуры.
Хорошие новости -- OpenGL 1.2 уже поддерживает 3D текстуры ( надеемся что
скоро и DirectX в скором времени будет осуществлять поддержку). Это позволит
упростить разработку 3D текстур.
К сожалению, нам кажется, что 3D текстуры не будут широко использоваться,
так как для применения например мраморного куба, такого о котором было рассказано
выше, художник должен сперва сам прорисовать 3D поверхность (включая все
прожилки внутри куба, которые вероятно никто никогда не увидит).
3. Отображение неровностей, ударов (Bump Mapping)
Эту технологию сделала популярной фирма Matrox, а знаменита эта система
за глубину текстур, которые она позволяет моделировать (лучше всего это
можно прочувствовать, если посмотреть на рябь на воде в игре Expendable).
Pixel Tapestry позволяет работать с тремя видами отображения выдавливания,
оставляя за дизайнером выбор метода отображения в зависимости от ситуации.
Кратко опишем эти три способа.
Emboss (выдавливание): признана самым простым способом для применения
и самым эффективным для применения на матовых поверхностях. Поскольку этот
метод не требует дополнительного построения текстур это также самый экономичный
метод, не требующий большого объема памяти и широкой полосы пропускания.
Dot Product 3 (скалярное произведение): точнее, чем emboss, и позволяет
контролировать отображение вплоть до уровня пикселя. 3D векторы используются
для определения источника света, позволяя точнее отобразить отраженный свет.
Также как и emboss, dot product 3 лучше всего работает на матовых поверхностях.
Environmental (окружение): на сегодняшний день самая детализированная
форма отображения. Environmental более всего подходит для нанесения текстур
на блестящие и отражающие поверхности. Одно преимущество Environmental это
способность менять вертикальное распределение, позволяя создавать эффект
волны.
4. Texture Transformations (текстурные трансформации): многие из
самых впечатляющих визуальных эффектов достигаются построением текстур на
поверхности особым способом (известного как трансформация). Если делать
это на программном уровне то накладываются большие ограничения из-за требований
к процессору. Поэтому у ATI есть аппаратная поддержка для текстурных трансформаций
встроенная в Pixel Tapestry.
Environment преобразование: используемое для создания реалистичных
отражений на окружающих текстурах, environmental преобразование может производиться
одним из трех способов. OpenGL поддерживает все три, в то время как DirectX
только кубический способ.
Spherical Environment Mapping (сферическое преобразование): самый
простой способ для изображения отражений. Используется в тех случаях когда
присутствует одна текстура и точка зрения фиксирована. В особенности полезна
для моделирования отраженного света на фиксированных блестящих поверхностях,
занимает минимум памяти, что делает этот способ самым экономичным при построении
отражений.
Dual-Paraboloid Mapping (двойственно-параболоидное преобразование):
используя две текстуры для построения отражения, этот метод сложнее, чем
предыдущий. Однако, поскольку используются две текстуры, налету их очень
тяжело изменять. По сравнению с кубическим преобразованием, этот метод занимает
гораздо меньше памяти.
Cubic Mapping (кубическое преобразование): кубическое преобразование
-самый гибкий и требовательный метод. Он использует шесть текстур (по одной
на каждую сторону куба) и предполагает, что зритель находится в центре.
Как и параболический метод, кубический не зависит от точки зрения и может
обновлять текстуры с эффективной частотой.
Projective Textures (проецируемые текстуры): те, кто хоть раз играл
в Nocturne, помнят комнату, где проецировалось изображение на кино экране
через всю комнату. Используя проецируемые текстуры, во время прохождения
персонажа рядом с источниками света, генерируется его тень и в реальном
времени показывается на экране. Добавляя реализма сцене, поддержка этого
метода на аппаратном уровне не только помогает строить тени, но и обусловлена
экономией памяти.
4. Priority Buffers (буферы приоритета)
Еще одной инновацией Pixel Tapestry является буфер приоритета. Объекты и
сцены сохраняются в порядке очередности в зависимости от того как близко
они находятся от персонажа, поэтому чем дальше он идет, тем выше уровень
приоритета на близлежащие объекты. Применение этой технологии впервые доступно
на аппаратном уровне у ATI, ранее применение этой технологии на уровне ПО
было обременительным, поскольку количество буферизированных текстур было
слишком мало, и использование приоритета не оправдывало себя. Буфер приоритета
лучше всего использовать совместно с проецируемыми текстурами и преобразованием
теней.
Shadow Mapping (Преобразование теней): тени очень важны в 3D сцене
для передачи эффектов освещения, глубины. До сих пор, эффект движущейся
тени создавался посредством вычисления величины тени. Этот метод влияет
на геометрическую форму, добавляя дополнительные углы и создавая угловатость
тени.
Shadow mapping проще, а качество генерируемой тени лучше. В основном, источник
света зафиксирован со стороны персонажа и вся сцена формируется через буфер
приоритета, так, что ближайшие оттененные объекты имеют больший приоритет.
Затем генерируется текстура тени через тонирование силуэта каждого объекта
в порядке приоритета, а затем тень просто проецируется на сцену.
На картинке мы видим как Shadow mapping может использоваться для преобразования
тени объекта вокруг другого.
Range-Based Fog (область находящаяся в дымке):
Дымка очень часто сейчас используется для передачи той зловещей атмосферы
игры либо попросту для ограничения области видения. В большинстве случаев,
дымка вычисляется на основании глубины (прямой план, перпендикулярно к зрителю),
что не всегда выглядит реалистично. Pixel Tapestry изображает дымку на основании
области в которой находишься, также как и в реальности.
Выходя вперед
При применении всех своих разработок, ATI может без проблем стать лидером
и идти на шаг впереди своих конкурентов. Вместо игры в догонялки с конкурентами,
ATI решила предложить нечто качественно новое. У нас есть некоторые мысли
касающиеся следующего поколения процессоров ATI, которыми мы бы и хотели
поделиться.
Память: Быстрая и Неистовая
Хотя ATI и не хочет комментировать намеченные характеристики, все же ясно,
что будет использована DDR память которая должна будет обеспечить полосу
пропускания необходимую для текстурирования и построения теней. Следующее
поколение карт будет судя по всему использовать 64Мб памяти. Rage Fury была
первой картой с внутренним 32Мб кадровым буфером, а MAXX -- первой объявленной
картой со встроенными 64Мб, поэтому также вероятно преодоление барьера в
128Мб.
Alternate Frame Rendering ( альтернативное построение фреймов)
и будущее
ATI уже упоминала об AFR (Alternate Frame Rendering) как о графической технологии
будущего и новое поколение процессоров может стать потенциальным кандидатом.
Использование двухпроцессорного комплекса плюс хранилище данных RAM позволит
ATI эффективно удвоить пропускную способность, лучше моделируя реалистичные
эффекты.
Потенциал для сдвоенного T&L процессора, который способен повысить число
многоугольников в десятки раз, действительно огромен. Скорее всего, такое
решение будет также дорогостоящим, но для геймеров это будет настоящим подарком.
Изготовитель комплексного оборудования + T&L = экономия
для геймеров.
Так повелось, что обычно фирмы разработчики имеют хорошие связи с производителями
комплектного оборудования, поэтому вполне возможно, что через некоторое
время появятся недорогие 32Мб платы с теми же качествами.
Что же касается высокоскоростных плат, то тоже вероятны вариации (на тему
TNT2U/TNT2/M64). Потребители, не планирующие тратить большие деньги на карту,
будут выбирать по опциям. Если это подтвердится, то ATI сможет занять лидирующие
позиции на рынке.
Что касается появления на рынке, то карта была представлена на выставке
нововведений ATI, и вышла в продажу во втором квартале 2000 года.
Дело в том, что ATI уже несколько раз "прокатывала" своих потребителей
со сроками выпуска в продажу, однако в этот раз такого не случилось, поскольку
ATI уже поняла что с таким отношением к делу можно потерять часть потребителей,
поэтому ждите пока это все дойдет до нас.
Следующее поколение графических процессоров ATI все еще остается безымянным,
но процессор уже реально существует и, как говорят, хорошо проходит тестирование.
Без уточненных характеристик новых плат очень трудно сейчас
судить о том сможет ли ATI захватить лидерство. Если судить по тому, что
известно, то это вполне возможно из-за потрясающих технических решений предложенных
ATI.
Еще хотим напомнить одно обстоятельство. Когда была объявлена Fury, то она
должна была составить конкуренцию TNT и Fury по характеристикам была во
многом лучше, чем TNT, однако, вскоре появились TNT2 и ATI потеряла большую
часть рынка. А мораль "той басни" такова - ложка дорога к обеду.
Надеемся, что ATI запомнила этот урок.
В целом же, с приближенной к реальности графикой технология Pixel Tapestry
от ATI должна обеспечить лучшую графику на сегодняшний день. Поэтому есть
все основания надеяться, что вскоре мы сможем увидеть реалистично выглядящие
игры при большой частоте кадров.