> > > > WaveWorks обеспечивает реалистичный рендеринг волн

WaveWorks обеспечивает реалистичный рендеринг волн

Опубликовано:

gtc2015Рендеринг воды и её поведения в реальных условиях – серьёзная проблема разработчиков игровых движков. Но с библиотекой GameWorks NVIDIA разработала несколько API, которыми могут воспользоваться разработчики, чтобы лучше воспроизводить физику объектов. К ним относится и WaveWorks, данная библиотека нацелена на реалистичный рендеринг волн и поверхностей воды. NVIDIA создавала библиотеку вместе с разработчиками War Thunder. И результат напряженной работы в течение нескольких месяцев команды из 13 человек был представлен на GTC 2015.

NVIDIA GameWorks in War Thunder
Галерея: NVIDIA GameWorks в War Thunder

War Thunder – бесплатная игра с открытым миром, в которой геймер могут выбирать разную военную технику для сражений друг с другом. Модели наземной техники и самолётов созданы с максимальным количеством деталей. Например, модели танков имеют точность до 2-3 см. Все детали находятся на своих местах, то же самое касается и моделей самолётов. В так называемом режиме Air Mode представляется детальное поле боя площадью несколько квадратных километров. Радиус видимости при этом составляет до 160 км, детализация рендеринга должна динамически адаптироваться к разным ситуациям. В частности, проблему вызывает корректный рендеринг воды.

Чтобы не повторять текстуры и реальные 3D-волны, библиотека WaveWorks опирается на динамический анализ уравнений волн. Из них можно извлечь информацию о высоте волн и ветре, после чего можно вывести пенные "барашки" на вершине волн. Соответствующие расчёты физики выполняются на CPU с разрешением 128 x 128 пикселей для заданной поверхности волны. Последующее представление волны выполняется на GPU с разрешением уже 512 x 512 пикселей.

NVIDIA GameWorks in War Thunder
Галерея: NVIDIA GameWorks в War Thunder

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

Берега редко бывают прямыми, и для симуляции волн в условиях неровного берега, в том числе и волн отката используется матрица 4.048 x 4.048 пикселей для территории 65 x 65 км. В расчетах также учитывается разное поведение волн в реках и озёрах. Кроме того, волны по-разному ведут себя вокруг островов, в зависимости от направления ветра – и это тоже просчитывается WaveWorks. Чтобы не перегружать даже самые современные системы, многие детали представления волны зависят от расстояния до зрителя.

NVIDIA GameWorks in War Thunder
Галерея: NVIDIA GameWorks в War Thunder

NVIDIA вместе с некоторыми разработчиками активно продвигает API WaveWorks, его можно добавить практически к любой игре. Как раз для этого и разрабатывался API GameWorks. Если верить NVIDIA, разработчику потребуется около недели, чтобы полностью интегрировать WaveWorks в игру.

Социальные сети

комментарии (0)

Войдите, чтобы оставить комментарий