我正在尝试用类似迪斯尼的BSDF来构建一个玩具路径追踪器,其中许多材料可以用颜色、金属、粗糙、传输、ior等属性的组合来表示。
我想使用GGX微面BSDF,但每次不分裂光线,得到反射和传输的Fr和Ft项之和。用schlick的近似随机选择传输和反射(Ft vs Fr),然后根据系统选择的路径分别使用BRDF和BTDF公式,这是正常的吗?
例如,大致如下:
On hit (into)
- Reflect or Transmit via Schlick(i, o, n)
- Reflect:
- Direct (N times):
- Choose point on disc of random light
- Calc transmission t via BRDF(i, o, n)
- Calc pdf by area of cone / area of hemisphere
- Add light * t / pdf
- Indirect (1 time):
- Choose direction o by BRDF.Sample(i, n)
- Calc transmission t via BRDF(i, o, n)
- Calc pdf by BRDF.PDF(i, o, n) ??
- Add trace(o) * t / pdf
- Transmit:
- Choose direction o by snell(i, n) + some kind of roughness * offset
- (how do you apply the BTDF here? Or is it important?)
On hit (out of)
- Choose direction o by snell(i, n) + some kind of roughness * offset
- Reduce transmission via beer(distance)我也想知道如何扩散反射因素。例如,GGX只提供镜面反射和折射吗?在这种情况下,你如何处理扩散?
发布于 2018-05-29 01:38:14
在目前常用的材料模型中,分别处理了扩散材料和光谱材料的性能。
查看http://blog.selfshadow.com/publications/s2015-shading-course/hoffman/s2015_pbs_物理学_数学_slides.pdf上的幻灯片43
基本上使用一个漫反射BRDF (lambert,oren ),如果材料的折射是散射小于1像素。如果散射大于像素,则使用折射和地下模型。也就是说,在玻璃折射情况下,光出口远大于离光入口1像素的距离。
您也可能对GGX的扩散参数化感兴趣,以便您可以使用相同的粗糙度项。https://www.gdcvault.com/play/1024478/PBR-Diffuse-Lighting-for-GGX
https://computergraphics.stackexchange.com/questions/7650
复制相似问题