Но давайте глядеть на вещи трезво. В отличие от видеокарты, работающей с потоками треугольников и пикселов, гипотетический PhysX должен будет эффективно справляться с обсчетом самых разных взаимодействий и математических моделей, разнообразие которых порой кажется мне даже большим, чем разнообразие реального мира. В возможность такого верится, прямо скажем, с трудом. Более того, по заявлению разработчиков, прямого API предоставляться не будет, и все программирование будет вестись через фирменную библиотеку. Негибкость такого подхода многим сразу же показалась фатальной, особенно если учесть, что главным конкурентом в борьбе за роль физического ускорителя выступает практически универсальный вычислитель – GPU.
Еще в 2002 году, выпуская на рынок Radeon 9700, корпорация aTI бросалась громкими заявлениямио переносе физических вычислений на карту и незамедлительном наступлении эры кинематографического качества рендеринга. Хотя за рекламной мишурой не стояло ничего, кроме нескольких лабораторных исследований и пары кривых прототипов, чаяния отрасли и научного сообщества эти слова отражали очень точно: в том, что считать физику на GPU можно и нужно, были уверены все. Так что никто из сторонних наблюдателей иллюзий по поводу будущего aGEIa не питал: все сходились во мнении, что nVidia и aTI постараются задавить начинание в зародыше. И вот буквально на днях битва за потребителя началась: 23 марта было объявлено о выпуске PhysX на рынок, а двумя днями ранее на GDC[Game Developers Conference] миру было представлено детище nVidia и знаменитых Havok – работающий целиком на карте физический движок Havok FX.
Анонсированная на второй квартал новинка продолжает сверхудачную серию физических движков Havok, использовавшихся в Max Payne 2, Age of Empires III, HalfLife 2, F.E.A.R. и еще доброй сотне самых крутых тайтлов последних лет, так что внимание разработчиков к Havok FX обеспечено.
Заявлено, что система будет работать на любых картах, поддерживающих Shader Model 3.0, то есть это линейки GeForce 6xxx и 7xxx плюс Radeon X1xxx. Более того, наконец-то в полную мощь заработает технология SLI: одна карточка будет заниматься просчетом физики, а другая – отрисовкой сцены.
Подробностей внутреннего устройства движка сообщается пока очень мало. В общих чертах устроено все будет так: к набору стандартных базовых типов объектов добавляется ряд новых, описывающих те структуры, которые удалось эффективно реализовать на GPU. Например, примитив Debris[Переводится это слово вовсе не так, как вы подумали, а «осколки», «обломки», «частицы»], абстракция твердого тела. Примитивы можно будет как задавать готовыми 3D-моделями, так и конструировать на лету силами центрального процессора. Последнее может оказаться особенно полезным при визуализации взрывов и прочих разрушений: например, размер и форма выбиваемых снарядами из кирпичной стены кусков будут зависеть от силы выстрела и места попадания. После того как описание объекта передано на карту, CPU им больше не занимается: все, начиная от расчета столкновений и заканчивая выводом треугольников на экран, делает графический процессор.
Обещан также некий высокоскоростной односторонний интерфейс, при помощи которого можно снабжать GPU информацией, необходимой для учета воздействия на игровой мир объектов, параметры которых хранятся не на карте, а в оперативной памяти. Очевидно, к таковым в первую очередь относятся управляемые системой ИИ вражеские монстры и все объекты, подконтрольные пользователю. В эту же группу с большой вероятностью попадают тела, форма которых задается параметрически или постоянно меняется.
Поддерживается и моделирование так называемых нечетких объектов (жидкостей, дыма), которые, как обычно, задаются системой частиц или сеткой узлов плюс набором дифференциальных уравнений, описывающих действие частиц (узлов) друг на друга и их реакцию на внешние силы. Судя по всему, в пакете реализован быстрый интегратор вроде входящего в небезызвестный пакет NovodeX. Ясно, что как раз тут прирост по скорости должен быть самым большим: уж что-что, а методы решения систем дифференциальных уравнений на массивно-параллельных системах изучены очень хорошо.
К лету nVidia и Havok обещают довести технологию до ума, так что к концу года можно ожидать первых игр с официальной поддержкой нового движка. До революции остались считанные месяцы, друзья.
Как известно, две трети населенных пунктов России находится в сельской местности, где зачастую нет даже телефона. Что уж там говорить о паре видеокарт nVidia семейства GeForce 7xxx с поддержкой технологии SLI. Так что давайте обратим взор к разработкам, не требующим таких больших мощностей, но оттого не менее интересным. В конце концов, говоря, что на GPU можно делать что угодно, я ведь не врал.