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

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

33
Автор

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

Ответить

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

2
Ответить