11 лет назад 10 ноября 2007 в 19:34 36

Игрофазотрон

Авторы: Андрей Писков, Макс Еховский

19 сентября 2007 пришла новость: “Корпорация Intel купила компанию Havok”. Тем, кто никогда не слышал об ускорителях физики, это известие вряд ли покажется заслуживающим внимания, хотя на самом деле оно почти сенсационно.

КАК ФИЗИК ФИЗИКУ…

Все объекты реального мира помимо видимых свойств (цвет, форма, прозрачность) имеют также физические качества, обуславливающие их поведение: масса, определяющая ускорение тела под воздействием внешних сил, способность к деформации, упругость и прочее. И если в 2003 году в Max Payne 2 для того, чтобы с полок могло одновременно падать пять коробок, требовалось не так много, то для симуляции движения 20 тысяч разных коробок требуется большая производительность. А все потому, что для реалистичности эти коробки должны представлять собой не просто кубы с натянутой текстурой, а разбитые на множество сенсорных точек сложные деформируемые объекты, а процесс обработки данных должен представлять собой несколько параллельно выполняемых и корректирующих друг друга взаимосвязанных процессов (движение, столкновение, деформация).

Первым шагом, приведшим к изменению ситуации в мире виртуальной физики, стал анонс весной 2005 года никому до той поры не известной компании AGEIA нового типа устройств – Physics Processing Unit (PPU). PPU – это физический ускоритель, то есть устройство, которое как раз и занимается аппаратным ускорением физики в играх. По задумке создателей, в играх PPU должен вклиниться в обычную связку CPU-GPU. Центральный процессор при этом ответственен за игровой процесс и искусственный интеллект объектов, видеоадаптер – за их графическую визуализацию, а на плечи PPU ложится вся нагрузка по просчету физической модели игрового мира. Буквально через год появились готовые карты физических ускорителей AGEIA PhysX.

АППАРАТНЫЙ УСКОРИТЕЛЬ

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

Сама плата по внешнему виду очень похожа на обычную low-end-видеокарту, разве что без каких-либо портов ввода-вывода. И ее технические характеристики не впечатлят сейчас никого: устаревший интерфейс (PCI), невысокая вычислительная мощность, небольшой, по современным меркам, объем памяти и т. д. Зато поражает цена: AGEIA PhysX стоит на уровне очень неплохого современного графического ускорителя – $299.

Хотя производитель утверждает, что пропускной способности шины PCI хватает, некоторые тесты показывают, что в особо сложных сценах производительность падает именно из-за узкой старой шины, особенно в играх нового поколения, изобилующих спецэффектами. Впрочем, AGEIA планирует выпустить PCI Express-версию адаптера, но, по словам разработчиков, лишь для того, чтобы оставить свободными столь малочисленные на современных платах PCI-разъемы.

Условно PhysX можно считать специализированным процессором, который за счет своей параллельности и встроенного набора сложных команд сильно превосходит современные CPU по производительности в определенном классе задач. Так, для чипов PhysX заявлена возможность обработки столкновения до 530 миллионов сфер в секунду и до 533 тысяч столкновений сложных объектов. То есть PPU может молниеносно обрабатывать как простые, так и более сложные столкновения, но в последнем случае производительность падает на несколько порядков.

Все бы хорошо, но за несколько лет эта концепция так и не получила распространения, и PhysX остаются единственными реально существующими на рынке физическими ускорителями. Да и в вышедших играх, “знающих” о существовании такой “железяки”, все происходит не так хорошо, как хотелось бы. Действительно, при использовании AGEIA PhysX заметно возрастает количество правильно обработанных столкновений объектов без падения FPS, но все же существуют некоторые хорошо известные “баги”: объекты могут исчезать через некоторое время (осколки при взрыве не долетают до земли), иметь заметно схожее поведение. Так что со временем все это месиво в игре начинает, скорее, понижать реализм, а не увеличивать его.

Интересно, что, комментируя анонс PhysX, монстры индустрии как один высказались о бесперспективности разработки отдельных процессоров для ускорения физики. Intel и AMD, понятное дело, ссылались на способность выполнения подобных задач многоядерными процессорами, а NVIDIA и ATI – на аналогичность задач, выполняемых современными графическими процессорами.

ЗАЧЕМ НАМ PPU, ЕСЛИ ЕСТЬ GPU?

Оказывается, именно физические вычисления как никакие другие похожи на вычисления графические из-за одновременного обсчета движения и взаимодействия большого количества объектов. К тому же современная видеокарта является действительно мощным по производительности устройством: большой объем очень быстрой памяти, быстрая шина с значительно более высокой пропускной способностью, а главное, очень подходящая для физических вычислений архитектура. Ничто не мешает переписать пиксельный шейдер под вычисления, например, каких-либо физических данных. Да и в точности этих вычислений можно не сомневаться – 32 бита над числами с плавающей точкой. Но самое главное заключается в том, что графические процессоры специально разработаны для параллельной работы с огромными массивами данных. Видеокарты последнего поколения (например, NVIDIA GeForce 8 серии) обладают так называемой унифицированной архитектурой с единым шейдерным ядром с множеством независимых процессоров. Каждый из этих процессоров способен обрабатывать разные типы информации, включая пиксельные и вертексные шейдеры, а также геометрические и физические. Безусловно, загрузка процессоров происходит динамически в зависимости от загруженности приложения, предоставляя беспрецедентную производительность и эффективность. Чтобы понять, насколько она высока, стоит вспомнить, что шейдерное ядро GPU GeForce 8800 состоит из 128 потоковых процессоров, работающих параллельно на частоте в 1,35 ГГц!

<havok>

В первой половине 2006 года NVIDIA на конференции разработчиков игр (GDC) объявила о тесном партнерстве с компанией Havok, издавна известной своими достижениями в области игровой физики, для улучшения сложившегося положения игрового мира. Было объявлено, что в SLI-конфигурации, вторая карта способна выполнять физические вычисления, в то время как первая, как и прежде, будет отвечать за визуализацию мира. Для этого компанией Havok был разработан физический движок, получивший название Havok FX (поддерживаемый существенно большим числом игр). Ходили слухи, что ATI займется разработкой и программной составляющей физики, однако они не подтвердились, вместо этого ATI также заручилась поддержкой компании Havok. В итоге родились схемы и технологии, подобные Quantum Effects от NVIDIA, когда пользователь может использовать до трех видеокарт в системе, две из которых используются для обработки графической составляющей, а третья – для просчета физики. При этом очень выгодным отличием от отдельных физических ускорителей является тот факт, что видеокарты продолжают оставаться видеокартами и могут полностью выполнять функцию визуализации мира, оставив функцию просчета физики, в то время как PPU жестко привязаны к своей непосредственной, изначально спроектированной задаче. Также существует возможность совмещения (Asymmetric Processing) hi-end-видеокарт и карты начального уровня (например, двух X1900 и одной X1600). При этом заниматься физикой по умолчанию будет слабая карта. Трудно не согласиться, что использование данной схемы в конфигурациях 1+1 или 2+1, безусловно, очень выгодно экономически, так как при апгрейде старую карту не придется класть на полку или продавать, а можно продолжать использовать, лишь бы хватало слотов на материнской плате. Более того, утверждается, что X1600 XT быстрее AGIEA PhysX в два раза, а X1900 XTX превосходит ее по производительности в девять раз! Понятно, что оппоненты ATI утверждают обратное.

ВСЕ В САД?

Совершенно очевидно, что одинокой AGEIA не выдержать конкуренции со стороны монстров графической, а теперь еще и процессорной индустрии, и дни ее, скорее всего, сочтены. Но интересно не это. Куда интересней, что будет происходить дальше в отношениях гиперчетверки Intel-NVIDIA-AMD-ATI. Адекватная физика – одно из важнейших направлений в дальнейшем развитии компьютерной игровой индустрии, которое именно сейчас выходит на передний план, и именно сейчас оказывается, что главный игрок этого рынка – компания Havok – принадлежит Intel, а значит огромное количество ее наработок, скорее всего, автоматически станет недоступно для союза ATI/AMD. Для того чтобы не допустить возникновения абсолютно устойчивой ассоциации “игры – значит Intel + NVIDIA”, AMD и ATI нужно сделать нечто невероятное, а именно: выпустить мощный десктопный процессор, мощный графический адаптер и разработать собственный ускоритель физики. Выглядит почти нереально, получится ли – вот вопрос.