1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Графика в играх", создана пользователем lyon, 3 янв 2014.

Модераторы: Артер
  1. lyon

    lyon Пользователь сайта

    С нами с:
    02.01.2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    Мощности 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

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

    Владимир Фролов 116900 Пользователь сайта

    С нами с:
    30.05.2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    2
    Че-то ты настолько все заденойзил что вторички вообще не видно .....
     
  3. lyon

    lyon Пользователь сайта

    С нами с:
    02.01.2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
  4. lyon

    lyon Пользователь сайта

    С нами с:
    02.01.2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    Вот столько вторички достаточно?


    На низком spp обращаем внимание, что на кубиках в тени первички нет, это все вторичка.
     
  5. Бабуинище

    Бабуинище Мастер

    С нами с:
    17.10.2012
    Сообщения:
    1.124
    Симпатии:
    261
    Баллы:
    82
    а зачем постоянно считать вторичку, если антураж статичный. Вот Рариж в Анреале - очень реален, ваша комната просто фантик, перед ним. А там нет вторички и ничего не шумит. Там еще глосси работает, у вас глосси не заметил, только шум
     
  6. lyon

    lyon Пользователь сайта

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

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

    Я знаю только о недоступном brigade, недавно они новый ролик выпустили, но не очень верится, что это real-time:

    Или это как раз в лайтпы записано. Вот в прошлых верится:

    И записывали они на нескольких GPU и дуал ксеонах. Если сравнивать доступные reflect и abouttime - у LGE скорость примерно та же.
     
    Последнее редактирование: 15 сен 2015
Модераторы: Артер

Поделиться этой страницей