Войти
ПрограммированиеФорумГрафика

PBR + IBL на практике (в шейдерах)

Страницы: 1 2 3 Следующая »
#0
4:45, 25 янв. 2015

Пытаюсь разобраться с PBR применительно к IBL. Подготовил в офлайне кубомапы с размытием и теперь пытаюсь собрать все это в кучу. Получается так, что в варианте с IBL нам не нужно считать CookTorrance (GGX). А достаточно сделать выборку отражение по мипам кубомапы в зависимости от roughness, сделать выборку по irradiance map по нормали и потом результаты смешать по Френелю? Этого достаточно, или я что-то путаю? Скорее всего путаю, поэтому просьба наставить на путь истинный.


#1
13:16, 25 янв. 2015

Sergio
> Получается так, что в варианте с IBL нам не нужно считать CookTorrance (GGX).

Разве GI не учитывается в IBL ?

#2
14:59, 25 янв. 2015

Sergio
Привет если нужно могу поделится шейдером(портировался с Мармосета) - и кодом что и как.

http://snag.gy/kFLqC.jpg
http://snag.gy/j6BGR.jpg
http://snag.gy/RTZCS.jpg

#3
16:55, 25 янв. 2015

ReeV
Так поделись со всеми :)

#4
19:17, 25 янв. 2015

ReeV
Да, поделись со всеми.

#5
19:18, 25 янв. 2015

innuendo
Это, по-хорошему, должно считаться в офлайне при подготовке кубомапы. Я правильно понимаю?

#6
19:37, 25 янв. 2015

Sergio
> Это, по-хорошему, должно считаться в офлайне при подготовке кубомапы.

А как же тогда динамические лайты ?

#7
20:17, 25 янв. 2015

окей щяс все опишу :)

#8
20:55, 25 янв. 2015

- Offline
1. Создаем PMREM(Prefiltered Mipmaped Radiance Environment map)
  a) Качаем hdr-map http://gl.ict.usc.edu/Data/HighResProbes/probes/pisa.hdr (тут еще есть http://gl.ict.usc.edu/Data/HighResProbes)
  b) Качаем HDR Shop (https://www.dropbox.com/s/r9sa61wihdhx45v/HDRShop.exe?dl=0)
  c) Открывем HDR Shop
        - открываем .hdr - потом Image -> Panorama -> Panoramic Transform
        - настройки Source : Longitude,  Dest : Cube Env(Vertical Cross), Конвертим
        - Save as .. *.HDR -> pisa_cross.hdr
  d) Качаем ModifiedCubeMapGen-1_66  - https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-ph… ed-rendering/
      - Load Cube Cross (наш pisa_cross.hdr)
      - Нажимаем Filter Cubemap(что бы добиться лучшего IBL - c настройками фильтрации стоит поиграться)
      - Ставим check на Save MipChain и сохраняем Save CubeMap(.dds) - pisa_cross.dds

2. Генерим Sh-Coeff
    a) Грузим в движек наш PMREM(pisa_cross.dds)
    b) Генерим sh-коеффеценты http://pastebin.com/3cjE3stn

- Runtime

1. Используем модель AKS-74U с PBR-тектурами (http://quixel.se/usermanual/quixelsuite/doku.php?id=ddo_samples)
2. Коффеценты для шейдера - http://pastebin.com/C72FJR39
3. Юзаем шейдер для рендера - http://pastebin.com/HSnHZ9vE


Any Questions?

Что должно выйти:
http://snag.gy/kFLqC.jpg
http://snag.gy/j6BGR.jpg
http://snag.gy/RTZCS.jpg

#9
21:15, 25 янв. 2015

ReeV
Спасибо,забираю

#10
21:58, 25 янв. 2015

ReeV
не очень понял, зачем ты кубмапу импортанс семплишь 32 выборками в шейдере? результат этого семплинга должен быть запечён в мипы кубмапы все равно.

#11
22:02, 25 янв. 2015

Mr F
Мармосет делает средню выборку из 32 семпла по PhongRands

#12
22:51, 25 янв. 2015

ReeV
но зах? мипмапов норм хватает ведь

#13
22:55, 25 янв. 2015

Mr F
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch20.html

P.S: скидывайте результаты

#14
23:06, 25 янв. 2015

ReeV
> http://http.developer.nvidia.com/GPUGems3/gpugems3_ch20.html
и щито? импортанс семплить на гпу и я имею (https://github.com/playcanvas/engine/pull/143), только зах это в рантайм шейдерах материалов делать?
идея же в том чтобы просчитать в мипы отражение с разным рафнесом, юзая свой брдф, а потом линейно интерполировать меж ними - дешёво и вкусно.
может в мармосете мипы хреновые автогенеренные, и поэтому они семплят в рантайме - я хз.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.