пресс-центр

Будь в курсе всех новостей

ОСТАВАЙТЕСЬ С НАМИ

ССЫЛКИ ПО ТЕМЕ

Как NVIDIA делает волосы реалистичнее для ваших любимых игр

NVIDIA Blog NVIDIA Blog
NVIDIA Blog http://blogs.nvidia.com/blog/2013/08/09/hairier-effects/

Ничего не имею против хитов прошлых лет, но волосы в Final Fantasy VII отрисованы ужасно.

Догадываетесь, о чем я? Как будто персонаж вылил несколько банок дешевого геля для волос в тазик, окунул туда голову и высушил волосы промышленным обогревателем. При этом в 1997 году игра Final Fantasy VII была на вершине славы.

С тех пор мир 3D-моделирования сильно изменился. И продолжает меняться благодаря времени и усилиям, которые NVIDIA вкладывает в инфраструктуру моделирования физики APEX и движок PhysX, обеспечивающий моделирование реалистичной физики в реальном времени.

Библиотека готовых эффектов APEX уже используется для отрисовки одежды, которая движется в такт движениям персонажа. Например, в BioShock Infinite модуль создания одежды APEX позволяет моделировать колыхание голубого платья Элизабет в реальном времени.

Следующий шаг: применение технологии PhysX к волосам. Игра The Witcher 3: Wild Hunt, которая выходит в следующем году, станет одним из основных проектов, в которых применяется новый модуль NVIDIA APEX, который придает волосам, одежде, меху животных и, в данном случае, персонажам The Witcher струящийся, реалистичный вид.

Как это работает? Все непросто. В играх не часто применяется сложная система моделирования поведения десятков тысяч волос в реальном времени. Наше новейшее поколение графических процессоров на базе архитектуры Kepler обеспечивает необходимые вычислительные ресурсы для подобной нагрузки.

APEX использует специальную технику, которая воспринимает волосы как цепочки с независимыми звеньями или как нить с нанизанными бусинками. Каждая такая бусинка должна находиться на определенном расстоянии от соседней. Когда первая бусинка начинает двигаться, то вторая естественным образом устремляется к ближайшей точке в пределах установленного радиуса первой. За ней следует третья, потом четвертая и так далее. Все просто.

В динамичном окружении все сложнее. Особенно когда такая техника наделяет последнюю частичку волоса огромной кинетической энергией. Это заставляет волосы хаотично двигаться, как в этом видео:

Решение: коррекция уравнения скоростей, которое применяется к «бусинкам» при взаимодействии с динамичной средой. При этом нужно не перегнуть палку: то есть сохранить реалистичность и плавное движение волоса без «эффекта затухания», то есть без потери интенсивности их движения.

Взаимодействие волос


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

Интересно то, что для взаимодействия между волосками и крупными персонажами не нужно отдельной системы или уравнений. Если у персонажа короткие волосы, что описанная выше модель взаимодействия волос друг с другом прекрасно работает и для моделирования взаимодействия волос с головой.

Если волосы и кожа головы одного цвета, то необходимость в создании модели взаимодействия волос между собой может и вовсе отсутствовать. Для длинных же волос необходимо определить объем взаимодействия – ряд из восьми геометрических форм (в данном случае - 3D-эллипсы), которые позволяют движку PhysX определять взаимодействия между волосками и объектами и вносить соответствующие изменения. Вот так!