Обычные игроки часто оценивают графику по детализации лиц или оружия, но почти не замечают один из самых ресурсоемких элементов — объемные облака. Исследователь в области компьютерной графики Майкл Томодакис подробно рассказал, почему моделирование объемной атмосферы остается инженерным кошмаром для студий. По его словам, многие программисты и геймеры не понимают фундаментальной математической сути задачи, которая сводится к непрерывному вычислению сложных интегралов накопления света вдоль каждого луча взгляда.
Математическая сложность и методы генерации
В отличие от стандартных трехмерных объектов с четкими полигональными гранями, облачные массивы не имеют твердой поверхности. Для воссоздания их формы разработчики применяют математические функции процедурного шума Перлина и Ворлея, хорошо знакомые сообществу по генерации ландшафтов в Minecraft. Проблема в том, что для таких фрактальных сред невозможно найти простое аналитическое решение уравнений переноса света, поэтому графическим чипам приходится рассчитывать плотность газа пошагово с помощью ресурсоемкого алгоритма лучевого маршинга.
Честный просчет десятков шагов для каждого пикселя на экране мгновенно обрушил бы кадровую частоту даже на флагманских видеокартах. Чтобы уложиться в рамки производительности, авторы идут на радикальные технические ухищрения и применяют экстремальное субдискретизирование. Плотность туч в реальном времени рассчитывается всего по одной выборке на 4, 8 или даже 16 пикселей, а возникающую чудовищную пикселизацию маскируют постоянным дрожанием выборок во времени и фильтрами накопления, создавая лишь поверхностную видимость гладкой картинки.
Любой программный сбой в работе буферов временного накопления моментально обнажает хрупкость этой иллюзии. Томодакис напомнил о недавнем баге в сетевом боевике ARC Raiders, где ошибка в буфере привела к возникновению ослепительных сияющих аномалий в небе, которые игроки ошибочно приняли за секретные инопланетные корабли. Даже признанные мастера индустрии из студии Rockstar Games в блокбастере Red Dead Redemption 2 вынуждены проецировать верхние слои перистых облаков на плоский купол и подключать честные воксельные объемы лишь на вершинах гор, расходуя на симуляцию атмосферы внушительные 4 миллисекунды кадрового бюджета на консоли PlayStation 4.
Масштаб пропасти между компромиссной игровой графикой и физически точным освещением становится очевиден при сравнении с проектами киноиндустрии. В кинематографических базах данных вроде эталонного облачного архива студии Disney отдельный кучево-дождевой фронт занимает свыше 30 ГБ данных, а офлайн-рендеринг одного кадра занимает до 45 минут. В интерактивных проектах разработчики располагают бюджетом всего в 1 или 2 миллисекунды на отрисовку всего неба, из-за чего реалистичные погодные эффекты по-прежнему держатся на агрессивных компромиссах.

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