【综合|无类|待修】 [待补充] 3D Max是否能将建筑渲染出水彩画效果,应该怎么设置参数呢?
发布于
2022-7-2
45
1

您需要 登录 才可以下载或查看,没有账号?注册

x
作者:秦春林
链接:https://www.zhihu.com/question/65714012/answer/278421221
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在图形渲染中,如果架构抽象的比较好的,我们可以将整个渲染流程划分为三个相对比较独立的部分:
  • 光源(lighting):主要是光源的表述,例如是点光源还是面积等光源,使用辐射强度还是直接使用辐射亮度来表述光源发出的光。
  • 光照传输(Integrating,或light transport):就是光在场景中是怎么传输的,例如离线渲染中的光线追踪算法,它能模拟比较真实的光子传输行为,就是说能覆盖全部光子传输路径(或空间),但是在实时渲染中使用的一些近似方法也是表述光照传输的,虽然它可能省略掉了一些不重要的路径,但是这仍然是一种光照传输算法。光栅化的整个过程也是模拟了直接光照的传输。
  • 着色(shading):就是光与表面相交时发生的光学交互,比如反射和折射等。

例如从以下RenderMan的文档中就可以看出这个架构:

由此可以看出,光照传输和着色计算是相对比较独立的,这里光照传输可以对应你所说的“光线追踪”算法,而着色计算则对应你所说的“物理材质”。

那么物理材质是指什么,“材质”其实就是光在与某个特定表面交互时需要的所有光学交互的参数,例如法线,纹理,或者你说的BRDF,也就是说,材质定义了最终表面接受光照后的视觉特征。对于物体表面视觉特征的定义,根据尺寸粒度可以划分为三级:
  • 基于网格顶点的表述,这种就是只对网格顶点的着色进行描述,然后中间的表面像素则通过插值来计算。
  • 基于像素点的纹理贴图,这就是最常见的各种贴图,它们能表述像素级别的视觉特征。
  • 基于微观粒子的微面元表述。

上述前两种视觉表述是比较常见的,也是早期使用的一些技术。然而这两种表述远远不能描述物体表面的视觉特征,这是因为一个像素的尺寸远远大于物体表面上微观粒子的尺寸,而光实际上是作用在这些微观粒子上的,所以你可以看到早期的一些图形渲染结果表面会比较光滑那种,反应不出真实物体表面的微观细节,所以这些技术都可以称为不是基于物理的材质。
然而,要怎么表述这么微小的微观粒子的行为呢?显然我们不可能像纹理那样对每个微观粒子使用一个纹素进行表述,那样我们的计算机的内容将远远不够存储这种级别的纹理,所以人们提出了Microfacet BRDF理论,它使用一个法线概率分布函数,来模拟微观粒子的法线分布特征,这样就能够表述物体表面的微观特征,从而接近物理真实,所以称为基于物理的材质表述。
那顶点和像素级别的纹理可以存储在一张纹理图片中,这种表述怎么存储呢?前面已经说过这个级别的表述是无法精确定义和存储的,所以我们将这个概率密度分布直接写进shader中,因为shader也是材质的一部分。

从上可知,不管你使不使用光线追踪,都可以使用物理材质,这就是为什么离线渲染和实时渲染都可以使用基于物理的材质,因为它只涉及光与表面的交互,与光的传输过程无关。
这也是为什么近几年实时渲染的游戏品质有了很大提升,实时渲染与离线渲染的最大不同在于光照的传输过程,实时渲染省略或者近似了很多路径,但是在光与表面的交互上,它只涉及一个公式的计算,并不会对性能造成太大影响,所以可以很容易地集成进来。不过实践中,实时渲染使用的概率密度分布函数要比影视中使用的计算量要简单一些,这只是在质量上稍有差异,但是不影响它表述微观粒子视觉特征的能力。




参与人数 2 元素币 +35 活跃度 +1
还没有设置签名!您可以在此展示你的链接,或者个人主页!

使用道具 举报 登录

回复 <
swp5251  发表于 2018-8-23 11:45:10  
2#
握草 大佬牛逼
回复 收起回复
使用道具

快来发表你宝贵的意见吧!

qq_神殇_aUq 实名

通过了实名认证的内容创造者

  

主题
10
精华
0
超神
0
扩散
8
微金
367
智慧
8
余额
0
在线时间
150 小时

短杖 长枪 学徒法袍 火元素 长剑

快速回复 返回顶部 返回列表