Оригинал материала: https://3dnews.kz/173002

ATI Physics

Предисловие

Как вы знаете, в данный момент на Тайване проходит Computex - всемирная выставка достижений компьютерных технологий. Если вы регулярно читаете наши новости, то наверняка уже обратили внимание на то, что компания ATI представила фирменную систему расчета физики. Примерные цифры, характеризующие производительность предлагаемого решения вы уже знаете:

...видеокарта начального уровня на базе RV530 выполняет физические расчеты "всего" в 4 раза быстрее, чем NVIDIA G70 или G71. А в случае с R580 преимущество вырастает до 15 раз! Не думайте, что порция нелицеприятных сравнений досталось только калифорнийской компании. Утверждается, что Radeon X1600 XT имеет показатели в 2 раза выше, чем продукт AGEIA. А если учесть, что стоимость ускорителей AGEIA в два раза выше, то перевес X1600 XT становится еще более внушительным. Что касается X1900 XTX, то ее показатели в 9 раз выше AGEIA.

Мы не будем оспаривать достоверность приведенных цифр, равно как и утверждать обратное. Придет время, появится возможность проверить все "своими руками", тогда и вынесем вердикт. А сегодня мы уделим больше внимания другим вопросам - в чем суть подхода ATI к ускорению расчета "физики", каким образом это предлагается реализовывать, какие преимущества несет в себе данное решение для простого пользователя. А также немножко поговорим о будущем - затронем тему DirectX10 - унифицированной шейдерной архитектуры.

ATI Physics

Название, которые мы дали технологии расчета физических эффектов от ATI - условно, поскольку официально эта технология еще не выпущена в "большое плавание", а показанное на выставке Computex демо является скорее декларацией о намерениях.


Разумеется, и игр, поддерживающих ATI Physics, в настоящее время еще нет. Всю красоту, показанную на выставке, обещают официально анонсировать ближе к Новому Году, равно как и первые игры, использующие данную технологию. Но даже предоставленной сейчас информации оказывается достаточно, чтобы понять направление, в котором движется канадский гигант.

Откуда "растут ноги". Дело в том, что любой современный видеопроцессор идеально приспособлен для одновременных вычислений над массой объектов. Это проистекает из определения графического ускорителя и возлагаемых на него задач. Как строится трехмерное изображение графическим ускорителем, вы можете прочитать здесь. Если говорить проще, то при расчете каждого кадра вновь рассчитывается очень много точек изображения, а в трехмерном пространстве эта задача сводится к пересчету различных матриц. Чтобы такая работа выполнялась быстро и одновременно, графические ускорители содержат по нескольку параллельных вычислительных блоков, часто называемых конвейерами. В терминологии ATI - это Data Parallel Processor (процессор параллельной обработки данных). Рисунок ниже иллюстрирует этот процесс.


 ATI Physics

Все это вещи хорошо известные и ничего нового тут сказано не было. Казалось бы - зачем огород городить? А вот зачем. Если мы попытаемся заняться расчетом физических эффектов применительно к обычной графике, то обнаружим, что расчет "физики" производится по сути тем же способом. Одни и те же операции применяются к большому числу объектов и должны выполняться параллельно. А что касается трактовки физического смысла полученных цифр, то видеоускорителю совершенно все равно, является ли полученное число номером цвета в палитре, координатой точки или же величиной скорости/ускорения какой-то частицы-объекта. То есть, мы получаем следующую схему:


 ATI Physics

Видимо, сходство вычислительных задач и подтолкнуло инженеров ATI к той мысли, что расчет физики может выполняться на видеоускорителе, а не на спец-вычислителе (AGEIA). Для этого было введено такое понятие, как DPP Abstraction Layer - уровень абстракции для процессора параллельных вычислений. (Под процессором здесь подразумевается именно GPU, не путайте!). В итоге мы получаем, что видеопроцессору, спрятанным за DPP Abstraction Layer все равно, какие данные перемалывать, и он делает это в привычной манере, не заботясь о физическом смысле получаемых цифр, потому что этим как раз и занимается DPP Abstraction Layer, связанный с "физическим" движком.

На самом первом фото вы видели систему, построенную на трех X1900, два из которых были объединены в CrossFire, а третий выполнял роль ускорителя "физики". На самом деле, требование идентичности типов всех трех видеокарт необязательно. Потому что при всем сходстве методов обработки данных, рендеринг и расчет "физики" задачи разные, и нет необходимости в одинаковых видеокартах для эффективной балансировки нагрузки. Именно это и имеет ввиду ATI, говоря об асимметричных конфигурациях, и даже приводит в пример Radeon X1600 как физический ускоритель.


 ATI Physics

Для простых пользователей в этом случае есть один большой плюс - при апгрейде и покупке новой мощной видеокарты "старый" Radeon можно оставить в качестве ускорителя "физики"! Разумеется, без ограничений не обошлось, "старый" Radeon должен быть не ниже уровня X1600 (по состоянию технологии ATI Physics на данный момент). Оно и понятно, расчет физических эффектов выполняется шейдерными блоками GPU, которые были значительно улучшены в семействе ATI Radeon X1x00, а производительности X1300 может оказаться недостаточно.

Теперь давайте посмотрим, какими физическими эффектами нам предлагает воспользоваться ATI. Прежде всего, стоит отметить тот факт, что ATI использует интерфейс программирования (API) от движка Havok FX, а не широко рекламируемый сейчас AGEIA PhysX API. Война форматов - всегда нехорошо. И для простого пользователя, и для индустрии в целом. Точных причин, почему ATI не выбрала AGEIA PhysX API, мы не знаем. Может потому, что AGEIA PhysX API является частной разработкой (и где сейчас 3dfx с ее Glide API?). В любом случае, стандартного API для "физики" сейчас нет, а как часто бывает - кто первый "де факто", тот становится потом "де юре". Сможет ли Havok FX API стать промышленным стандартом - тоже неизвестно, но потенциал у этого движка есть, если разработчики игр начнут его интенсивно применять, кто знает, как оно все повернется. В активе Havok есть очень интересные разработки, а Havok FX по большей части "заточен" на расчет модели столкновений тысяч объектов, с максимальным использованием арсенала Shader Model 3.0 и мощности современных видеоускорителей.

Разумеется, используя Havok FX API, "физические ускорители" компании ATI в данный момент ограничиваются расчетом по сути только двух эффектов - обнаружение столкновений и просчет множества мелких частиц (дым, туман, осколки).

Так выглядит обнаружение столкновений объектов:

 ATI Physics

Поясним изображенное на рисунке более подробно. В современной графике при расчете взаимодействий объектов сложной формы они часто представляются своими "габаритами", то есть некоторым параллелепипедом, в который этот объект вписан (верхняя линия рисунков). Именно поэтому в играх можно видеть, как, например, герой рубит воздух перед собой (средний рисунок), а не впереди стоящее дерево, которое должен рубить по замыслу (правый рисунок). Чтобы этого не происходило, для корректного обнаружения столкновений объектов предлагается покрыть искомый объект по всей поверхности точками и проводить расчет столкновений для точек на границе объектов, а не их "габаритов" (линия рисунков в центре). В этом случае столкновение будет выглядит гораздо точнее, но ценой возрастания нагрузки за счет расчета точек на границе объекта. На последнем, нижнем рисунке, показано, что расчет "физики" так же должен учитывать поведение объектов после столкновения (значения скорости, ускорения и т.п. после удара).

Отсюда становится понятно, что чем сложнее объект, тем большим количеством точек придется "покрыть" его поверхность и пересчитывать их каждый раз при движении объекта, не говоря уже о возможной "деформации". Что касается эффектов дыма и тумана, то в этом случае граница объекта (частицы тумана) может совпадать с точкой, описывающей его "габариты", но для реалистичного изображения понадобится огромное число частиц, каждая из которых подчиняется законам физики и, в идеале, летит по своей собственной траектории. Так что, какие ускорители не придумывай, а всегда найдется, чем их загрузить "под завязку". Однако и на этот случай ATI кое-что припасла.

 ATI Physics

Чтобы напрасно не расходовать вычислительные мощности, изображение разбивается на сегменты, среди которых обираются те, где есть необходимость в обнаружении столкновений (присутствуют частицы/объекты), и те, где вычислять ничего не надо. Эффективность использования такого подхода напрямую зависит от размера выбираемой ячейки. Чем меньше ячейка, тем точнее мы можем определить объем необходимой работы (очень напоминает технику разбиения изображения на тайлы, правда?).

Описанный выше метод можно распространить дальше и существенно улучшить "поведение" объектов в случае деформации.

 ATI Physics

На рисунке вы видите висящую занавеску, которая была затем "поднята" за середину. Метод расчета деформаций в данном случае заключается в ведении "контрольных" точек уже не только по поверхности объекта, но и внутри него самого. Именно это и дает возможность смоделировать, как занавеска "прогибается" и "собирается в складки".

Как видите, применение даже небольшого количества физических эффектов может значительно улучшить реалистичность создаваемого изображения.

Подчеркиваю - основная задача в создании "физических ускорителей" состоит не только в том, чтобы увеличить количество генерируемых кадров в секунду, а в большей степени в том, чтобы значительно улучшить реалистичность создаваемого изображения и поведения объектов.

DirectX 10

Windows Vista и DirectX 10 - новшества наверное даже более ожидаемые, чем ускорители физики, но одно другому, похоже, не мешает. О том, как компания ATI готовится к выходу Windows Vista и DirectX 10, мы уже писали. Но что нам даст DirectX 10 в плане 3D-игр? Обещаются невероятно реалистичные эффекты освещения, детализированные персонажи, красивая вода, дым и туман, сложные объекты, способные подвергаться деформации и многое другое. А реализовать всю эту красоту планируется с помощью унифицированной шейдерной архитектуры, которая, как ожидается, станет обязательным требованием в скором будущем.

Возможно поэтому, демонстрируя на выставке прототип своего физического ускорителя, компания ATI так спокойно заявляет - "в канун Нового Года все и увидите". До выпуска Windows Vista осталось примерно полгода, и многое еще может измениться. Поэтому и с анонсами чипов следующего поколения (типа R600 и G80) лидеры индустрии тоже не спешат.

Если же говорить о настоящем, то унифицированная шейдерная архитектура уже успела себя проявить с очень хорошей стороны. Как ни странно, в мире игровых приставок, а не персональных компьютеров. Да, я имею ввиду Microsoft Xbox 360, графическим "сердцем" которого является видеочип от ATI.

Вот что сказал по этому поводу великий гуру в создании компьютерных 3D-игр Джон Кармак:

"The Xbox 360 is the most productive graphics development platform I have ever worked on -- clean and powerful hardware that is well documented and easy to exploit, coupled with absolutely first rate development tools."
- John Carmack, id Software

(Xbox 360 является наиболее продуктивной графической платформой, на которой я до сих пор работал. Понятное и мощное "железо", которое отлично документировано и легкое в использовании, наряду с первокласснейшими средствами разработки.)

Вполне возможно, что после такой "обкатки" на приставках, унифицированная шейдерная архитектура видеоускорителей следующих поколений расцветет буйным цветом и на ПК. Теперь пофантазируем. Кто знает, может быть в недрах Microsoft вовсю идут работы над собственным "физическом" API? Если Микрософт введет свой API для физических вычислений, то он имеет все шансы быстро стать стандартом де факто. Об успешном будущем AGEIA и Havok тогда останется только гадать (если конечно Microsoft никого из них не купит).

Подводя итоги

Вопросам ускорения расчета физических эффектов в 3D-играх в последнее время уделяется все больше и больше внимания. Разработчиками создаются собственные интерфейсы прикладного программирования, "затачиваются" графические движки, применяются уровни абстракции и архитектурные изыски. А уж когда лидеры отрасли, такие как ATI, берутся за дело, то сказка далекого будущего начинает казаться завтрашним настоящим. Удивительно осознавать, что эволюционное развитие видеоускорителей может привести к революционному скачку в 3D-графике.

Но… все равно, все ждут "Висту", которая выйдет не ранее января. Придется и нам подождать. А в свете вышеизложенного, советуем вам пока не выкидывать ваши радеончики, может быть еще пригодятся ;)



Оригинал материала: https://3dnews.kz/173002