这篇在上一篇的基础上增加了对PBR的认识,主要包括了金属度和粗糙度(光滑度)的测试
unity里PBR流程,PBR材质属性具体分析
传统模型到PBR的流程,一些PBR制作转换工具介绍
以前这篇http://blog.csdn.net/shenmifangke/article/details/50587290
先上一张unity Scene场景的实时效果图(材质的贴图来自网络经过修改)
这两种材质都是基于unity自带材质球就是standard
下面就说说这个建立材质球后默认的材质
Unity5中重点推出了一套基于物理的着色(Physically Based Shading,PBS)的多功能Shader,叫做标准着色器(Standard Shader)。这套Shader的设计初衷是化繁为简。想用这样的一个多功能Shader,来代替之前多种多样的Shader各司其职,对于不同的材质效果,需要不同的Shader的局面。
Unity 5中目前有两个标准着色器,一个名为Standard,我们称它为标准着色器的标准版,另一个名为Standard(Specular Setup),我们称它为标准着色器的高光版,它们共同组成了一个完整的PBS光照明模型,且非常易于使用。其实这两个Shader基本差不多,只是有细微的属性参数上的区别。标准版这边的_Metallic(金属性)、_MetallicGlossMap(金属光泽贴图),被高光版的_SpecColor(高光颜色)、_SpecGlossMap(高光颜色法线贴图)所代替。
标准着色器主要是针对硬质表面(也就是建筑材质)而设计的,可以处理大多数现实世界的材质,例如石头、陶瓷、铜器、银器或橡胶等。同时,它也可以非常出色地处理一些非硬质表面的材质,例如皮肤、头发或布料等。
上面一段理论摘自http://blog.csdn.net/poem_qianmo/article/details/49556461
下面是我翻译的官方金属度流程的截图(我认为金属度流程的更通用,但是由于技术限制也会有一些效果无法用这种材质实现)
可以看出光滑度(粗糙度)是存储在金属度的透明通道里的
这也就是为什么没有放贴图的时候有个smooth滑块,但是放了贴图以后就没有这项了,因为这项需要被一个通道的图片控制
下面我们来做个测试
可以在ps里做一张如上图所示的tiff或者tga格式,(估计psd也行吧)
注意可以新建一个通道,单独在上面绘制,不需要可见
另外说下png不行,它的透明通道是自动的
另外把红色通道做的和其他不一样也方便测试高光材质流程(这个可以自己调整材质测试)
然后就能得到下面图的效果
可以发现这两个参数还是非常重要的,严重影响了视觉效果
一般性的如果需要在unity里有好的PBR效果,需要三张贴图(可以说是四张图 因为金属度和粗糙度合并了)
颜色贴图
金属度+粗糙度
法线贴图
如果需要更好的效果可以再增加height map ,occlusion map ,细节贴图等等
需要注意到是occ贴图在unity中遇到光照会自动计算,能显著增加空间效果
另外说下金属度和高光流程,其实两种是可以在一定程度上相互转化的,substance就可以搞定(可以看后面讲到)
两种其实也没有强求用哪种,只是金属度的参数更加理性,其他的还是要看项目的艺术效果
当然虽然两种材质在效果上有很大重合空间,也有不能达到的地方,举个例子,对于黑色几乎不反光的物体
http://blog.csdn.net/shenmifangke
金属度不能做到高光流程那么黑的效果(除非去掉环境球)
下面是金属度和流程的区别,我加了自己的想法(需要更多内容可以关注或者加我qq)
PBR图制作流程
流程上有很多东西可以使用,我这里说的主要是substance designer软件
因为unity直接支持它的材质,sbsar格式能直接在unity中使用,而且据说还有其他软件的支持性
Quxel\Substance\Maya\3dsMax\UE\U3D5\ce已经全线PBR向进化,Disney Principled BRDF就是一个很好的范例,Hyperion和最新的RenderMan都采用了这个技术。虚幻引擎4中的材质系统也是基于这个模型的简化版(Real Shading in UE4)。
SP(substancepainter)、SD(substance designer)、Quxel(NDO、DDO、3DO以及MegaScan材质库,四个合起来叫做Quixel Suite套件)这些生产工具使得美术在工作时增加了效率,理清了思路,越来越趋向于及时反馈和所见即所得,而且与几大引擎接口互导也方便了许多,很大程度的减轻了纯美术方面的负担。
下面是简单操作流程图
具体的就不说了,自己可以搜教程有很多的,需要注意到是软件有两个
substance designer是修改和创建材质的,如果需要直接刷贴图可以用substance painter 可以直接看到刷上去的效果
他们之间可以互相导,主要还是看工作流程,下面这张就是工作关系
substance designer可以导出可供unity使用的材质球
substance painter可以画贴图到substance designer看效果并修改
link贴图和模型
这里记得双击项目才能关联带有多套uv的模型(原始模型不好看还有版权问题 所以打个码)
这是处理后的效果,可以看出没打码的部分更加真实了
http://blog.csdn.net/shenmifangke
一般导出的时候可以直接将粗糙度贴图并入金属度的alpha通道里
要导出材质的话可以之际publish如下
也可以选中结果图片后在贴图窗口里直接导出图片