Если есть люди которые шарят за графику в играх, то попробуйте мне ответить на один вопрос по поводу рейтрейсинга.

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

Шейдеры работают каждый кадр, т.е им наплевать какие данные меняются, ну так почему не менять кол-во сэмплов в зависимости от скорости камеры, тогда во время медленного движения у тебя будет максимум качества, а во время рывков максимум fps с урезанием качества.

3
16 комментариев
Автор

@Snowball Вы вроде за это дело шарите, потому хотел бы услышать ваш комментарий.

Ответить

Так уже делают. Алгоритмы с разными настройками гоняются при движении и без движения. Ну вернее как, непосредственно детекция движения там есть не всегда (хотя иногда и это есть), обычно ориентируются на зафейленную репроекцию, это когда пиксель с прошлого кадра в новом кадре найти не могут. В таком случае обычно меняют силу пространственных фильтров и темпоральных. Усиливают пространственные (когда берут данные из соседних пикселей для расчета текущего, по сути размытие), ослабляют темпоральные (чтобы гоустинга меньше было). Это не полностью помогает, потому что почти любому рейтрейсовому эффекту для стабильности нужно кадров 30 истории (GI обычно сильно больше даже), поэтому когда истории нет, даже с хорошими денойзерами будет так себе выглядеть. Тормоза во время поворотов камеры обычно не из-за того что рейтрейсинг дорогой, а потому что окклюжн куллинг не работает для объектов, которые только-только появились во фрустуме, теневые каскады надо перерендеривать и т.д.
Уменьшать число сэмплов во время движения обычно не работает, потому что как я уже выше написал, вам нужно много сэмплов, чтобы это выглядело адекватно. Если при движении уменьшать их количество, то у вас на экране будет фестивать шума и гоустинга. Игроки видят обычно уже готовую отполированную игру, а в процессе разработки, пока свет до конца не поставлен, GI при движениях камеры (и особенно в катсценах) выглядит _настолько_ плохо, что вопрос "почему бы не сделать еще меньше сэмплов" отпадает сам собой.
Для примера можно взять ue5, поставить дефолтные high настройки в люмене поставить, сделать какую-нить сцену, где чисто непрямой свет и попробовать быстро полетать / поделать мини-синематики с катами. Результат скорее всего не понравится

2
Ответить
Комментарий удалён модератором

соя, спок

2
Ответить

Если ты играешь без размытия,то будет сильно заметен дроп качества

Ответить

и использование его в движении не даёт нужного эффектаЧто под этим имеется в виду?

Ответить
Автор

если ты быстро двигаешься, то ты не будешь всматриваться в детали, т.е тебе не нужно будет максимальное качество.

Ответить