IBets
как ты, кстати, в итоге нормали считаешь? вот тот ужас через 9 выборок?
Suslik
Да я пока не исправлял. Баг мне кажется при Importance sampling-е. Потому что края черепа не так реалистично выглядят
Объединение диффуза и скуляра
Код
IBets
importance sampling вообще никак френеля не должен учитывать. как уже говорил, в твоём случае у importance sampling всегда должен просто генериться зеркально отражённый луч и единичный вес.
если тебе интересно сравнить, у меня френель выглядит так:
обрати внимание на нормали, кстати. ты не только теряешь вычислительное время, когда усредняешь нормали, но ещё и теряешь точность. вот так выглядит полностью отражающая поверхность, если нормали считать на CPU по этой формуле https://en.wikipedia.org/wiki/Sobel_operator , а потом интерполировать на GPU через семплер:
Френель
Зеркало
ребят здравствуйте извините что в не в тему но помогите пожалуйста https://gamedev.ru/code/forum/?id=243955
Suslik
Вроде как "запилил". Вначале сходится быстро, но по мере сходимости спонтанно возникают белые пиксели. И да выборок не 9 а 18)). Там центральными разностями выборка
IBets
у меня осталось две сильные оптимизации, которые я хотел запилить для этого рендера — затолкать как можно больше в preintegrated step и повысить cache coherency, гоняя одинаковые параметры рандомизатора в одном workgroup'е через interleaved rendering.
Suslik
> если тебе интересно сравнить, у меня френель выглядит так:
прикольно :D 25 FPS .. это на DXR ?
лол, только в треде появились блестяшки, тут же подъехал itmanager. нет, dxr не умеет вольюм рендеринг, это обычный фрагментный шейдер.
Suslik
И ты его сразу забанил лол. Покажи финальные кадры.
IBets
я его не банил, кто-то другой
всё ещё не написал самые главные оптимизации, но сейчас пока остановился на этом:
Suslik
Как ты диэлектрики рендеришь? И как в итоге думаешь бороться с нормалями?
IBets
как я уже говорил, диеэлектрики я рендерю, задавая распределение коэффициента преломления в пространстве. из него можно посчитать как коэффициент отражения(френель), определяющий шанс луча отразиться, так и угол преломления в каждой точке. нормали и так считаются идеально, круги не из-за них, а из-за отсутствия preintegration.
Suslik
Сделал пред расчет градиента, в итогу FPS просел с 70-80 до 38-42, интенсивность храню в alpha канале. Сейчас запилю версию с двумя текстурами и сравню производительности. UPD(С двумя текстурами стало чуть быстрее колеблется от 75 до 100+ в зависимости расстояния камеры до VolumeData )
Тема в архиве.