Render.ru

Ray-Trace игровой движок

lyon

Пользователь сайта
Рейтинг
2
#1
Мощности GPU вплотную подошли к тому что это возможно. Но есть ли уже такой движок, который мы бы могли использовать для создания игры?

Поискав я нашел следующие интересные вещи:
http://www.luxrender.net & https://code.google.com/p/sfera/
http://embree.github.io/
Arauna & Brigade от Jacco Bikker

Самое близкое для нашей цели оказался - это http://www.luxrender.net потому что:
-использует OpenCL и работает на всех видеокартах
-имеет облегченную версию smalluxgpu, которая обладает хорошей производительностью

Первые тесты smalluxgpu4 неочень были похожи на real-time, однако игра Sfera сделана на облегченном smalluxgpu одним из разработчиков luxrender, что показывало что это возможно.
Я сделал несколько патчей, часть из которых даже были приняты (однако даже что не стоит пересоздавать тред на кадый кадр пришлось доказывать, у игродела даже мысли не возникнет что можно создать по треду на кадр), теперь стало можно "летать" по сцене вполне себе в real-time:

C luxrender для использовании в играх остается только 2 проблемы, это:
1. Шум. Характерная черта Path Trace на маленьком числе проходов.
2. Динамические сцены. Код построения BVH всюду использует контейнеры типа std::vector<> и не сильно оптимизирован.
В целом его еще нужно довольно сильно изменить, чтобы приспособить к играм, не знаю пойдут ли на это разработчики luxrender.

Brigade же изначально делался с прицелом на игры, тут с динамическими сценами все впорядке. Подробнее можно прочитать тут http://icelaglace.wordpress.com/2012/09/22/what-is-brigade-engine/ и посмотреть тут http://raytracey.blogspot.ru/2013/10/brigade-3.html
Однако теперь это часть OctaneRender и сам движок выше первой версии недоступен. К тому же он поддерживает только cuda, что для игры неприемлимо. Так же проблема с шумом все еще остается.

Неочень понятно почему никто не подумал про denoise, только сейчас Dade (разработчик luxrender) делает новый "A new (optionally Biased) Path Tracing render engine" http://www.luxrender.net/forum/viewtopic.php?f=34&t=10529 , пока только CPU, но результаты подавления шума впечатляют.

Я тоже некоторе время назад решил, что разрозненное доказетельство (POC) возможности есть (если бы совместить luxrender+brigade), добавить только подавление шума и можно использовать для игр.
Вот что в итоге пока получается:

Некоторые детали моего ламерского denoise тут http://ompf2.com/viewtopic.php?p=4362#p4362

В общем, тема очень интересная для меня, возможно кому-то тоже =)
 

lyon

Пользователь сайта
Рейтинг
2
#4
Вот столько вторички достаточно?

На низком spp обращаем внимание, что на кубиках в тени первички нет, это все вторичка.
 
Рейтинг
327
#5
а зачем постоянно считать вторичку, если антураж статичный. Вот Рариж в Анреале - очень реален, ваша комната просто фантик, перед ним. А там нет вторички и ничего не шумит. Там еще глосси работает, у вас глосси не заметил, только шум
 

lyon

Пользователь сайта
Рейтинг
2
#6
Я тоже с ходу могу вспомнить Metal Gear Solid, где за счет дизайна считать ничего не нужно, а выглядит отлично (покрайней мене для своего времени). Зачем считать постоянно очевидно - для динамичности, если свет статичен - конечно можно записать в лайтмап и не тратить время.
Глосси это все добавляется, обычное диффузное переотражение это самое сложное и ресурсоемкое.
Даже если пока для комфортного рилтайма это невозможно - это все равно полезно, в одном движке можно прототипировать, оффлайн рендерить и рендерить рилтайм подстроив настройки (оставив один sun ray, spot лайты и до 4х динамических, как в большинстве игр).

Если вы знаете другой real time ray trace движок (не AO, но поддержка упрощенного AO приветствуется), который умеет больше и быстрее - мне хотелось бы о нем узнать.

Я знаю только о недоступном brigade, недавно они новый ролик выпустили, но не очень верится, что это real-time:
Или это как раз в лайтпы записано. Вот в прошлых верится:
И записывали они на нескольких GPU и дуал ксеонах. Если сравнивать доступные reflect и abouttime - у LGE скорость примерно та же.
 
Последнее редактирование:
Сверху