Трагедия планарных отражений на DTF

Набросы воды из халф лайфа уже перестают быть смешными. А контраргументы в комментариях делают всё ещё хуже. Так что давайте разбираться уже, что к чему, и где собака, так сказать, это самое.

Трагедия планарных отражений на DTF

Планарные отражения - это вполне удобная технология, когда вам нужно сделать зеркальную гладь на плоскости. Больше того, эта штука дружит ещё и с картами нормалей, позволяя сделать не просто глянцевую поверхность, но и какую-нибудь рябь на ней, например. Ещё больше того, это вам не отражения в пространстве экрана, а буквально камера, направленная по отражению от поверхности.

Слева планарные отражения. Куб за камерой отражается.
Слева планарные отражения. Куб за камерой отражается.

А что если мы хотим сделать отражения, например, для сферы? Вот мы и приплыли, проблема номер раз:

Сложные поверхности.

В центре работа планарного отражения, по бокам сочетания динамических отражений и sphere reflection capture
В центре работа планарного отражения, по бокам сочетания динамических отражений и sphere reflection capture

Как видно, когда нормаль поверхности сонаправлена нормали планарки, всё прекрасно. С небольшим наклоном скорость изменения поверхности по осям уже не сходится и отражение "плывёт". Типичный случай, когда наносится, например, текстура по одной плоскости. Большая же часть сферы, где отклонение уже слишком велико, просто отражает другими средствами движка.

На подъёме скорость изменения по оси Z(не политика) высокая, а необходимые XY изменяются мало, текстура начинает "тянуться".
На подъёме скорость изменения по оси Z(не политика) высокая, а необходимые XY изменяются мало, текстура начинает "тянуться".

В общем, захотели бы вы добавить своей воде объёмных волн, пришлось бы срочно перехотеть. И даже это ещё пол беды, однажды мы решим сделать следующие пол беды:

Матовые поверхности.

В мире довольно мало (почти) идеально глянцевых поверхностей. И хотя планарные отражения съедают хорошо карты нормалей, шероховатость на микроуровне они просто игнорируют:

По достижении определённого порога, планарное отражение просто исчезнет.
По достижении определённого порога, планарное отражение просто исчезнет.

Вопрос производительности.

Больше всего, конечно, волнуют людей не ограничения технологий, а кадры в секунду. Спешу всех порадовать: любая красивая штука много жрёт. Планарные отражения масштабируются плохо. Одна планарка на сцене в разрешении 1024x768 - это окей. 8 планарок в 4к с тонной геометрии - думайте сами. Правда куда вы эти 8 планарок поставите с учётом их ограничений, вопрос тоже открытый. Но давайте, поставим хотя бы 6 в пустой сцене на супер оптимизированном UE 4.27. 120 кадров, если что, упор от движка.

Трагедия планарных отражений на DTF
Чем я вообще занимаюсь...
Чем я вообще занимаюсь...

Трассировка масштабируется проще: один отскок, два отскока... Никаких перерендеров для каждого отдельного отражения, никаких отдельных плоскостей, просто настройка самих лучей. При этом трассировка лишена вышеназванных ограничений с поверхностями, да ещё под эту задачу сообразили аппаратные блоки. Тяжести вычислений это не отменяет, впрочем. Полноценная трассировка пути в Quake 2 RTX и Cyberpunk 2077 с врубленным RTX Overdrive, конечно, пушка и восторг, но не просто так рендеринг в реальном времени долго подобных вещей избегал. Да и на момент 2к24 я могу с ходу назвать только 2 таких игры, но уже сейчас их можно запустить на современных видеокартах. Это если вдруг кто-то хочет спросить, где же эта ваша трассировка в реальном времени и сколько можно доить население плохими карточками.

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

Как стал прекрасен Казахстан
Как стал прекрасен Казахстан

А где нормальные зеркала?

Этот вопрос стоит задавать не технологии и не лично Куртке, а разработчикам, которые в крупных проектах делятся обычно на 2 типа:

  • Пакистанец на аутсорсе, который учится на ходу у индуса
  • Перегоревший калифорниец, который здесь ради денег на аренду в этом месяце

Авторы движков вроде того же UE недаром оставили кучу ползунков под любые задачи, а авторы обучающих роликов недаром разобрались и наснимали гайды. Возможно, кто-то когда-то их даже посмотрит, а пока терпим.

Красивая вода. Наверное, планарка.
Красивая вода. Наверное, планарка.
3333
44
33
11
11
44 комментария

Игры это изначально иллюзия от и до, как игроку мне глубоко плевать как ее рисуют, по передовым физическим законам симуляции, используя видеокарту за 400к, или костылями которые работали 20 лет назад на видяшке за 200 долларов. Сделали какой-то культ из технологии, из-за чего корпорации кормят говном теперь. Зато с лучиками как в реальной жизни.

22
2

Я до сих пор когда запускаю хл2, верю в эту воду. И по визуалу, и по физике. И ее тянули карты с 64 МБ памяти. А сейчас карты с 16 000 МБ пердят в 15 фпс, зато лучииии

4
1

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

4

Расслабься, пусть ауты жрут причмокивая и доказывая, ведь на то они и ауты)

2
1

Прости, что заставил тебя столько листать

6

Ну база база, вон как раньше делали, а теперь только прогрев куртки на лучи и дегенератор кадров

4
3
1
1