Ray Tracing: ищем те самые лучи на примере Киберпанк 2077 - слепое тестирование

Дискуссия на тему что же действительно в графику игр приносит трассировка лучей на ее современном этапе развития часто радикализирует полемику: одни говорят - лучи это обман, нет никаких отличий, другие - что лучи это супер красиво, и за этим будущее. Я решил сам для себя максимально объективно определить есть ли вообще разница, на примере вновь вышедшей игры - Киберпанк 2077. Причем заранее отбросив из рассмотрения отражения - слишком очевидный результат трассировки.
15 декабря 2020, вторник 00:09
IvvyLab для раздела Блоги

Разглядываем "лучи".

Трассировка лучей в графике появилась достаточно давно, вот только это была не игровая графика, а статичные рендеры дизайна изделий или интерьеров, CGI и прочие околодизайнерские приложения.
Про грядущий ray tracing в играх я узнал в 2018м году, и честно говоря, первые трейлеры (кажется, это был Battlefield V) никак не впечатляли. Ну отражается огонь в луже - дальше то что?
Если трейлеры не впечатляли, то на статичных картинках вообще было не понятно как и что различить.
Совершенно разумным был вопрос - а вообще эта технология работает?  Точнее было понятно, что в теории она должна работать, но как она сочетается с тем, что уже все и так накрыто шейдерами, потому что игры пока рассчитаны на владельцев не rtx-карт. И хватит ли производительности rtx карт, чтобы управлять светом исключительно через трассировку? 
Мой скепсис сильно снизился, когда в начале карантина у меня появилась свободная неделька и я прошел Control + дополнение, то и дело включая и выключая трассировку и получая довольно разные ощущения. Но Control это специфичная игра, такое ощущение что ее делали скандинавские архитекторы и дизайнеры интерьеров, для которых как ведет себя свет очень важно. И вот вышла довольно масштабная Cyberpunk 2077, в которой локации разнообразны и есть возможность включить трассировку. Не буду в этом материале анализировать игровую и художественную составляющую этой игры, скажу что мне она не зашла.  
Да, для себя я сделал выводы и могу ощущать эффект от "rtx on", но я сам контролирую его включение и взгляд у меня замыленный. Но вот еще один большой вопрос - отражение через трассировку улавливаются даже на статичной картинке, а можно ли подцепить что-то кроме честных отражений? На этот вопрос мы и попробуем тут ответить. 


RTX OFF

 



RTX ON

 

 


Слепой тест. Методология и настройки. 

Так как мои друзья очень редко играют в игры последнее время, и у меня у единственного есть машины, способные потянуть киберпанк я решил пригласить их для проведения слепого теста на "лучи".  А они охотно согласились - потому что про Киберпанк слышали вообще все, даже те кто закончил играть в нулевые годы - им интересно было посмотреть.  Да и вообще с начала эпидемии давно не были в гостях. Я также принял участие в тесте. 

Итак, для проведения теста было выбрано следующее железо: rtx 2070 super, rtx 3090, процессор ryzen 3900x + 64 гб памяти @3200cl14. 2070 super - моя личная, 3090 - не моя, и была мне доступна всего полдня, поэтому не все прогнал на ней, что хотел. 

Основные настройки игры на RTX 2070 super:

2K разрешение, DLSS - на производительность, настройки графики средне-высокие.

 Основные настройки игры на RTX 3090:

2K разрешение, DLSS - на качество, настройки графики высокие

Настройки Ray Tracing:
Итак, если мы будем вслепую тестировать человека на наличие трассировки, то он моментально заметит,
что она влияет на отражения в лужах и стеклах и сразу поймет когда она есть, а когда ее нет. Поэтому мы всегда будем держать включенными отражения.  А вот все остальное: тени и освещение - включать или выключать в зависимости от теста.  При включении трассировки для освещения задается уровень "впечатляющее".

Счетчик FPS и любой оверлей отключен, для большей объективности. 

Методология слепых тестов:

Каждый человек проходит 10 тестов по 2-5 минут игры. Игра каждый раз начинается с одного и того же сохранения. 
Перед началом серии 10 тестов все проходят стартовый (не зачетный) тест с отключенной трассировкой.
В каждом тесте 50% вероятность, что будет включена трассировка для освещения и теней.
Включение/выключение трассировки делает другой человек,  а игрок ничего не знает о том, включена она или нет.

После каждого теста у игрока спрашивали: -отличалась ли картинка в плане освещения или теней от предыдущего теста, и какие были впечатления относительно и безотносительно предыдущего теста. Впечатления оценивались по следующим критериям:

  1. Красота картинки: стало лучше, стало хуже, стало по-другому, но не лучше и не хуже
  2. Реалистичность картинки: стало лучше, стало хуже, стало по-другому, но не лучше и не хуже
  3. Комфортность игры : стало лучше, стало хуже, стало по-другому, но не лучше и не хуже

Заметим, что на 3й пункт сильно будет влиять производительность, но у нас получился +- адекватный фреймрейт для оценки визуального комфорта. 

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

Принявшие участие в тестировании люди:

 1. Игрок № 1, 31 год (я) - пару раз в год играю в относительно новые игры, за последние года 3 играл в Cyberpunk 2077, Control, HL Alyx, Deus Ex Mankind Divided, Dishonored 2, Prey, Hunt, кажется что-то еще, не помню уже. 

2. Игрок № 2, 33 года - играл относительно недавно в Witcher 3, PUBG, Hitman, про трассировку лучей слышал, но не видел

3. Игрок № 3, 30 лет - последний раз играл 12 лет назад в GTA 4, Crysis, Bioshock, больше вообще не играл (разве что только на мобильном), пользовался только неигровым ноутбуком, про трассировку лучей вообще ничего не слышал. 

Результаты слепого тестирования

В таблице внизу подсчитаны ответы игроков на вопросы после каждого теста. 





Nvidia RTX 2070 super 
Проверяемый критерий Игрок 1 Игрок 2 Игрок 3
Сколько раз угадал, была ли смена настройки RTX 9 из 10 7 из 10 7 из 10
Картинка стала красивее при RTX=ON  0 из 4 2 из 4 3 из 7
Картинка стала реалистичнее при RTX=ON 1 из 4  4 из 4 7 из 7
Играть стало комфортнее при RTX=ON 2 из 4 3 из 4 5 из 7
NVidia RTX 3090
Сколько раз угадал была ли смена настройки RTX

10 из 10 не участвовал 7 из 10
Картинка стала красивее при RTX=ON 3 из 6 не участвовал 2 из 3
Картинка стала реалистичнее при RTX=ON 3 из 6 не участвовал
3 из 3
Играть стало комфортнее при RTX=ON 4 из 6 не участвовал
2 из 3


Итого:

  • Вероятность ошибки при распознавании игроком включена или нет трассировка: 20%
  • Средний процент ощущения улучшения красоты картинки от RTX=on:  ~41%
  • Средний процент ощущения улучшения реалистичности картинки от RTX=on: ~75%
  • Средний процент ощущения улучшения комфортности игры от RTX=on: ~65%


RTX ON

 

RTX OFF

 

 



Выводы

Некоторые результаты для меня были очевидные, но кое-что меня сильно удивило. 

  1. Даже человек, далекий от игр наличие или отсутствие трассировки распознал достаточно хорошо: c точностью 70%
  2. Общая точность распознавания есть ли разница между картинкой с трассировкой или нет: 80%
  3. А вот теперь удивительно: я, как человек имевший достаточный опыт и с современными играми и с трассировкой отношусь к ней куда как более критично, чем менее опытные игроки. Не знаю, как это объяснить, но возможно у меня есть какие-то ожидания от нее и понимание принципов работы, а другие просто играют и воспринимают картинку. Поэтому мои впечатления были сильно зашумлены тем, что  я почти точно понимал, когда она включена, а когда нет. 
  4. Еще интересно: в целом все трое сошлись во мнении, что трассировка не повышает "красоту", чтобы не было вложено в это понятие. Картинка становится менее сочной, более обыденной, а иногда слишком темной или наоборот - слишком яркой. Напоминаю, отражения мы тут не учитываем.
  5. А вот реализм картинки мои друзья увидели больший с RTX. Я - слабо это уловил. 
  6. Аналогично с комфортом, вот только тут и я согласен с друзьями, но может меня просто успокаивает, что в этом случае карта отрабатывает всю стоимость )). На самом деле скорее всего есть взаимосвязь между реалистичностью и комфортом: вроде как правильно рассчитанный свет привычнее мозгу.
  7.  Для меня 3090 со включенным на качество DLSS дала субъективно более качественное восприятие трассировки, старался максимально абстрагироваться от общего изменения картинки. К сожалению, не хватило время проверить ее без dlss и в 4к. Работа трассировки на 2070 super тоже вполне ощутима и ее можно оценить. 

Ну вот и все, заморочились мы на несколько  часов, но было достаточно весело (мне, по крайней мере). 
Покупать или нет rtx видеокарту - выбор каждого, я пока  не вижу чего-то фундаментально прорывного от трассировки, с чем не справятся классические шейдеры, но возможно надо просто прекратить искать эффект там, где надо просто расслабляться.