首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PBR -如何处理多个BSDF和材料类型

PBR -如何处理多个BSDF和材料类型
EN

Computer Graphics用户
提问于 2018-09-03 20:07:01
回答 1查看 775关注 0票数 2

所以我正在写我自己的路径跟踪渲染器,现在我只实现了旧的Blinn模型,我们分别计算了材料的漫射和镜面成分,每个物体都有一个镜面和一个漫射颜色。

现在向更一般的方向,我希望能够渲染不同类型的物体--木材,抛光木,完美的镜子,比如反射等等。然而,所有这些信息让我困惑于如何实现这些BSDF,或者换句话说,我应该如何选择何时应用某个BSDF,或者将两者结合起来呢?

这通常是用物质的方法来完成的。材料是扩散,光泽度或完美的镜面定义,我应该使用的BSDF。

我阅读了PBRT的线索,它们将表面反射分解为4种类型。漫射,光斑,镜面和复古反射。然后,他们实现了一个enum,它存储与这些反射对应的类型。

枚举具有以下类型

代码语言:javascript
复制
BSDF_REFLECTION
BSDF_TRANSMISSION
BSDF_DIFFUSE
BSDF_GLOSSY
BSDF_SPECULAR
BSDF_ALL
  1. 用户应该选择前两位和下三位的按位组合。其中BSDF_ALL是所有标志的组合。这个界面看起来不错,但有一点混乱。如果BSDF_ALL组合了所有标志,那么这意味着曲面可以是diffusespecular。然而,这似乎很奇怪,一个完美的镜面不能扩散。虽然Glossy + Diffuse是有意义的(磨光的木头,在粗糙的墙上画画),但diffuse + specularglossy + specular对我来说没有意义。
  2. 假设我们已经解决了上述问题,那么考虑一个像橙色或柠檬皮一样的glossy+diffuse对象。我们如何计算这个表面的颜色?假设我对漫射表面使用奥兰-纳亚尔模型(ON),对镜面使用库克·托兰斯 (CT)模型。我应该计算漫射分量通过ON和镜面通过(CT),然后把它们加在一起吗?然而,这两种模型都有各自的参数,这些参数决定了微面的斜率分布。对于$\sigma^2$,是高斯分布的方差,CT是$m$,wiki将其描述为"RMS微面斜率“(检查各自的链接)。其中哪一个将控制表面的粗糙度?
  3. 更进一步说,还有一个更普遍的问题。在较老的模型,如Blinn,我们过去有一个单独的漫射和镜面颜色。据我所知,镜面颜色不过是菲涅耳反射。这是因为菲涅耳反射率与波长有关。如果是电介质,这是不可分辨的,但对于金属,它通常是(黄金赋予一种黄色的色调)。因此,对于电介质,镜面颜色将只是在RGB通道上复制的普通旧菲涅耳反射率,而对于金属,这将是色调的颜色。让我困惑的是漫射和镜面反射率这个挥之不去的概念。考虑库克-托伦斯的原始论文,他们描述他们的模型为。$R = dR_d + sR_s$,其中$d$和$s$分别是漫反射率和镜面反射率的系数,它们必须满足这个条件。$d+s \leq 1$ $R_d$是任何漫射的BRDF (他们假设为lambertian),而$R_s$是他们新提出的用于镜面的BRDF。这就是我最大的困惑所在。我认为漫射色和镜面颜色是物体在每个通道中各自的反射率。然而,上述方程将颜色与反射率分开。Which概念用于PBR?
EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2018-09-03 23:23:25

虽然库克-托伦斯BRDF的镜面术语在路径跟踪中得到了广泛的应用,但最初的BRDF是用于栅格化的(它是在路径跟踪出现之前提出的)。加权漫射和镜面分量之和(即$R=dR_d+sR_s,d+S \leq 1$)不能代表漫射和镜面物质元素(如折射、塑料菲涅耳等)相互作用可能产生的复杂结果。

实际上,一种更好的基于物理的材料表示模型将是层模型。例如,光滑和粗糙的导体可以通过一个独特的层来模拟,这个层代表的是库克-托兰斯BRDF的镜面项。光滑和粗糙的介质可以通过一个独特的BSDF建模。另一方面,塑料可以通过使用的两层进行建模:最上面的一层表示介电层( BSDF),第二层在介电层之下,代表一种漫射材料(例如,lambertian或Oren)。这种塑料双层装置能够模拟塑料的菲涅耳反射率(通过介质层)、塑料颜色(通过介质下面的有色漫反射层反射的光)、介质吸收的光(通过实施比尔定律)等。

基于层的材料模型非常接近真实生活中的实际情况。我已经写了一个相关的答案,还有更多的细节,这可能对你有帮助(我在答案中包含了一些参考):https://computergraphics.stackexchange.com/a/5761/5681

最初的库克-托兰斯没有适当地节约能源(我已经发布了一个关于那个这里的问题)。2007年,Walter等人。已经发表了论文粗糙表面折射的微面模型,其中他们提出了一个基于库克-托伦斯的模型,适合于路径跟踪。

在分层材料方面,我实现了Weidlich和Wilkie,任意分层微面曲面提出的系统,给出了一个比较通用的分层材料模型。在此之后,人们提出了更复杂的层状材料模型。其中之一是温泽尔·雅各布( Wenzel )的一种绘制层状材料的综合框架。有一篇新的论文(我想是在2017年发表的),它支持表层的地下散射(当我找到它时,我会在这里添加它)。

我认为PBRT也使用基于层的材料,但我不知道它们是如何实现的。

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/8013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档