Matcap和BRDF着色

时间:2013-07-15 07:42:03

标签: opengl directx rendering shader

我只是想知道ZBrush中使用的Matcap着色器与双向辐射分布函数着色器之间的区别。
这两种技术是否相同?使用BRDF完成Matcap还是不同?

1 个答案:

答案 0 :(得分:1)

这是一个非常好的答案:Matcap and BRDF Shading比-2更有用。但我不应该抱怨......

来自Nicol Bolas

  

假设您指的是双向反射   分布函数,BRDF只不过是一个奇特的名字   广泛的照明方程。这些是计算的函数   基于两个方向的表面反射分布   (双向):入射光的方向和方向   表面的观察者。 BRDF方向都定义在   他们相对于正常方向的相对方向,所以   normal实际上是一个隐含参数。

     

这是一个非常普遍的照明方程类别。标准   Lambert,Blinn,Phong等都符合双向标准   反射分布函数。它们都可以用来表示   朝向光的方向和朝向观众的方向。

     

但是,由于你将它与Matcap进行比较,我认为你是   指的是基于物理的BRDF,而不是所有的一般类别   BRDFs。也就是说,从使用机器计算的表生成BRDF   用a来检测真实材料的光交互特性   改变视野和光线方向。

     

假设你所指的Matcap是这样的话,我   不得不说,不。至少那个特定的实现   Matcap不是。

     

如果你想要特别慷慨,那么它就是一个BRDF。但是只有   在最宽松的意义上。为什么?因为计算了反射率   不会随着这两个方向发生变化。看看吧   着色器;它使用的唯一方向信息是表面   正常。虽然它是用于计算颜色的属性,   从BR​​DF的角度来看,这是一个常数。

     

如果你想成为技术人员,Matcap使用BRDF。即球体   质地。这就是照明方程实际上是什么;那就是   反射率分布,基于特定的视图和光   方向。

     

适当的基于物理的BRDF实际上是4维查找   表,基于两个方向的角度。 Matcap使用了   二维查找表,而查找并不是真正基于   无论是视线还是光线方向;只是正常。 Matcap是   基本上是作弊,使用适当的4D的单个静态2D切片   BRDF。

     

所以不,Matcap不是BRDF,就像使用结果的代码一样   用于为特定像素着色的BRDF本身不是BRDF。