"Технологии, которые мы утратили." Очередная серия утиных историй. Да, опять телега про отражения.
Часто всплывал этот мем на сайте. Якобы, раньше разрабы умели делать отражения, которые не жрали производительность и выглядели отлично. Я решил проверить утят на память, взял свою GeForce 6600 GT (2004 года) и запустил на ней Half Life 2 (2004 года), а потом сравнил с лучами. Результат удивил....
Сперва о самой видеокарте. 6600 gt это мидл-энд (ее так позиционировала компания) из конца 2004 года, что в наших ужасно дорогих реалиях является аналогом какой-нибудь RTX 4070 Super по позиционированию в линейке видеокарт. В этом году вышли прекрасные игры, в том числе вторая Халва. На момент запуска карта стоила 200 долларов, что сейчас с учетом инфляции около 330 долларов
Запустил HL2 релизную версию от ноября 2004 года. Поставил разрешение 1280х1024 (около 900р по количеству пикселей), без сглаживания, остальные настройки на максимум. Через консоль я включал и выключал отражения на воде, для проверки падения производительности. Итак.
Падение производительности от включения отражений составило 23%. Причем, хорошая видеокарта того же года, что и игра просаживается ниже 60фпс в довольно таки низком разрешении, да еще и сглаживание выключено. Все в жутких лесенках, а сами отражения имеют еще более низкое разрешение. И это просадка только из за отражений, другие настройки я не трогал.
Небольшое отступление от темы. Я не ограничился Халвой и для интереса запустил игру, которая вышла на год позже этой видеокарты. Великая и ужасная F.E.A.R. Пришлось поставить средние настройки, а разрешение тоже самое 1280х1024 без сглаживания. Провел тест в родном бенчмарке игры.
Мда, жалкие 37 кадров в среднем, что для шутера от первого лица не совсем подходит. То есть на свежей и неплохой карте придется ставить низкие настройки и даже более низкое разрешение, чтобы более менее комфортно поиграть. Во времена были.
Так что же с отражениями в современных играх. Сейчас планарные отражения, как в Half Life 2 мало где встретишь. Зато в игры начали "пихать" модный маркетинговый рейтрейсинг, который жрет х2 производительности. Или нет.... Можно проверить. Запускаю Киберпанк на основном компе и включаю/выключаю отражения через трассировку лучей.
Падение производительности от отражений трассировкой лучей составило...... 25%. Вот это прикол. Учитывая, что старая технология из времен Халвы работает только на воде и просаживает кадры на 23%, а трассировка работает вообще на любой отражающей поверхности по всей игре. Так что же получается, великая технология прошлого - устаревший и неэффективный метод реализаций отражений?
P.S. В Кибере во время сравнения пришлось отключить отражения SSR потому что на высоких пресетах он жрал больше трассировки лучей (sic!)
P.S. Я взял релизную версию игры, потому за долгие годы к ней выходило очень много поправок, в том числе менялись версии движка.
Дополнение к посту для некоторых комментаторов. У меня есть GeForce 8600 GTS, которая вышла через 2.5 года после выхода Халвы. И оказывается планарные отражения не стали меньше потреблять производительности, те же самые 23% производительности. Жор этой технологии не зависит от архитектуры железа, по крайней мере между 6000 и 8000 поколениями, хотя в последней унифицированные шейдеры, на которые планарке пофигу.