фотографической реалистичности и новым ощущениям от игрового процесса востребованы, хотя их получение стоит все дороже. Причем в равной степени и для разработчиков игр (бюджет знаковых игр, собирающих «кассу», подстать кинопродукции), и для игроков, щедро спонсирующих производителей видеокарт, процессоров и прочих компонентов, покупать которые нам все чаще рекомендуют «парами».
Так что же именно способен добавить физический ускоритель, и в частности, «первая ласточка» в новом классе игровой периферии – карта на основе AGEIA PhysX, – к игровому процессу?
Ответ прост – динамику, возможность взаимодействовать с предметами, ранее представленными в играх как статичные декорации. Причем в отличие от ранее жестко запрограммированных сценариев поведения «взрываемых» бочек, коробок и прочих стандартных объектов (пройдя несколько уровней, пользователь наизусть заучивал последствия своих действий, дозволенных игрой), теперь вы вовсе не встретите однообразия. Ведь последствия любого взаимодействия зависят от угла приложения, силы и массы других факторов – в жизни даже нарочно трудно устроить два идентичных по последствиям «погрома». Разумеется, у первого поколения ускорителей мощность не столь велика, и неизбежные огрехи в драйверах еще мешают насладиться подлинной реалистичностью. Но и сейчас успехи видны невооруженным глазом, и кроме свободы взаимодействия с игровым миром, можно отметить чуть более реалистичное «поведение» огня, воды, ткани, волос и прочих текучих и свободно подвижных субстанций. Но почему все это до сих пор составляло проблему?
Задача моделирования взаимодействия нескольких предметов игрового мира между собой – наиболее ресурсоемкая среди тех, что возникают при программировании игрового движка. Строго говоря, узнать, столкнулись ли два «идеальных» объекта и какое положение они должны занять после взаимодействия – задача несложная и описывается известными каждому школьнику законами. Но если в кадре оказывается хотя бы десяток подвижных тел различной природы и свойств, то объем работы, ложащейся на процессор (и, что самое главное, выполнить ее необходимо в реальном времени), становится угрожающим. А надо учесть, что для полноценного моделирования не только твердых, но и эластичных объектов, жидкостей и, тем более, так любимых игровыми дизайнерами взрывов, количество частиц в кадре, поведение которых рассчитывается независимо друг от друга, необходимо увеличить до нескольких тысяч.
Не секрет, что сегодня многие природные явления в играх реализуются искусственным путем, например, вместо «честного» отображения тумана, используются так называемые алгоритмы затуманивания. Иными словами, модифицируются текстуры твердых объектов заднего плана. Тогда как настоящий туман состоит из водяных капель и не бывает абсолютно однородным. Список «несовершенств» можно продолжать и продолжать, многие из них на первый взгляд покажутся несущественными, однако особенность человеческого восприятия в том, что фальшь, даже не очень явная, подсознательно отмечается и мешает состояться эффекту присутствия.
Наглядный образец реализации «физики» силами центрального процессора представляет собой игра Painkiller. Притом что эффекты в ней отнюдь нельзя назвать идеально реалистичными, да и сама игра вышла довольно давно, она является весьма тяжелой даже по меркам самых мощных современных процессоров. Иными словами, производительность в этой игре упирается в центральный процессор, даже если вы установите дорогую видеокарту, тогда как в остальных играх с упрощенной физической моделью основная нагрузка приходится на видеоакселератор. Законный вопрос: почему же, несмотря на совершенствование центральных процессоров, им все еще не по силам столь естественно-научная задача?
Дело в том, что центральные процессоры, в том числе и двухъядерные, все еще плохо справляются с обработкой большого числа самостоятельных потоков, а для физических расчетов, равно как и графических, это – принципиальный вопрос. Работу универсального процессора можно сравнить с работой справочного окошка, где берутся ответить на все вопросы. Даже если в это окошко усадить чрезвычайно сообразительного оператора, его производительность не сможет сравниться с работой нескольких окошек, в каждом из которых готовы ответить лишь на ограниченный круг вопросов.
Графические процессоры на сегодняшний день имеют до 48 конвейеров, AGEIA PhysX – 16 специализированных исполнительных модулей. Разумеется, такое количество вычислительных блоков требует весьма существенного усложнения кристалла – большого количества транзисторов и сложной управляющей логики (диспетчера) для распределения нагрузки. Учитывая, что при производстве таких чипов применяются менее прогрессивные технологические процессы, нежели для центральных процессоров, частота специализированных процессоров не превышает гигагерца. Тем не менее, на своих задачах они по производительности превосходят универсальные процессоры, как минимум, в десятки раз. И такой прирост есть смысл реализовывать с точки зрения разработчиков игр – программисты, как известно, не склонны тратить силы на оптимизацию, которая все равно не дает заметного на глаз результата. Именно поэтому массово и всерьез «затачивать» физику под двухъядерные процессоры они не торопятся, осознавая, что результат не оправдает потраченных средств. А вот в поддержку едва вышедших физических ускорителей высказались более чем дружно.
Итак, уже никто не сомневается, что будущее – за интерактивными развлечениями, и публика, с удовольствием «отведав» графических яств, пришедших в нашу жизнь с игрой FarCry и получивших логическое развитие в играх типа F.E.A.R. и многих менее громких проектах, с не меньшим энтузиазмом воспримет очередное усиление развития в сторону большей свободы действий в игре.
Но каким именно способом это будет достигнуто – вопрос на сегодня открытый. Помимо самостоятельных физических ускорителей (а кроме AGEIA, на этот сегмент никто пока не претендует), для нужд аппаратной обработки «физики» планируется задействовать видеокарты, а также ресурсы будущих четырехъядерных процессоров и даже систем с несколькими процессорами.
Разумеется, все заинтересованные компании расхваливают свой подход, мы же, скорее всего, будем в ближайшие несколько лет наблюдать конкурентную борьбу (а возможно, и симбиоз) разных способов ускорения, из которых со временем отберется наиболее удачный. А по мере «обживания» физических движков, в играх появится возможность выбирать уровень пригодности компьютера к «физическим упражнениям», подобно тому, как сейчас мы имеем возможность регулировать графические настройки.
В пользу самостоятельных ускорителей, помимо временнуго преимущества (все остальные варианты не стоит ждать раньше осени, а наиболее вероятно – к Новому году), говорит возможность оптимизировать вычислительное ядро так, чтобы в нем не было «лишних» транзисторов. Что напрямую повлияет на «энергетическую» эффективность. В отличие от современных видеокарт, физический ускоритель на AGEIA PhysX может довольствоваться менее мощным кулером и не требует подвигов от блока питания. Цена также может оказаться привлекательной, но лишь после насыщения спроса у наиболее активных ценителей игровых новинок. В минусах – ориентация на поддержку шины PCI, уже исчезающую из арсенала материнских плат (впрочем, запланирован выход и PCI-Express-версии).
Нетрудно догадаться, что решающим фактором станет программная поддержка (или ее отсутствие) у разных аппаратных вариантов. Здесь у AGEIA на сегодня позиции также наиболее выигрышные. Хотя средства разработки – это частная собственность AGEIA, условия лицензирования весьма привлекательны. Более того: многие разработчики игр воспользовались предложением AGEIA в первую очередь потому, что программная составляющая досталась им практически бесплатно. И, что очень важно и на первый взгляд даже странно, физический движок AGEIA не требует в обязательном порядке использования одноименного ускорителя (то есть в усеченном виде вполне может существовать при поддержке лишь центрального