纳金网
标题: Unity5 中基于物理的着色器 [打印本页]
作者: 狂风大尉 时间: 2014-11-29 07:41
标题: Unity5 中基于物理的着色器
作者:ROD LOPEZ
原文:http://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/
翻译:“小七、子程”
什么是基于物理的着色呢?基于物理的着色(简称PBS)就是以一种模拟现实中材质和光照的相互影响。直到最近PBS才能应用在即时图形运算中。这种方法在有光源和材质接近真实的场合下优势非常明显。
物理着色是想建立一种友善的方式来实现不同的光照条件下的逼真效果。它模拟光线在现实中的行为,而非使用多个特定的演算模型来模拟,因为后者可能会在一些情况下失真。
为实现这种效果它必须遵循物理原理,包括能量守恒(也就是物体反射出去的光量不可能超过所接收的光量),菲涅耳反射(Fresnel reflections - 所有表面反射在掠射角处更加强烈),以及物体表面如何自我遮挡(Surfaces occlude)等。
Unity 5包含了一些Shader,象是标准着色器(Standard Shader),它们组成了一个易用又完整的PBS光照明模块。标准着色器主要是针对硬质表面(也就是建筑材质)设计的,可以处理大多数现实世界的材质, 例如石头、陶瓷、铜器、银器或橡胶等。但它也可以非常出色地处理一些非硬质表面的材质,例如皮肤、头发或布料等。
跟"我的"游戏内容有何关联?
基 于物理的着色器并不代表“真实”,单纯加入功能也不一定就能完全决定游戏表现。它适合多种不同的美术风格和美学效果,例如从精确扫描 (Accurately Scanned),到传统拍照(Traditionally Photographed),再到手工绘制(Hand-painted)的各类贴图。
对于制作没有特殊光照表现的2D游戏开发者来说,PBS不是必需的选项。但是如果你想玩玩PBS来创建出酷炫的效果,这里我们将提供一些有用的使用经验。
一窥究竟
当我们谈及Unity5中的光照时,不妨引入两个概念,即Context和Content:Context是指Unity原生的一些内容,而Content则是使用者创造的内容(类似于UGC)。
关于CONTEXT
当给一个物件加入光照时,该物件周边的环境是非常重要的。Unity先前的版本中已经提供了一些经典的辅助工具,例如光照探头(Light Probes),它能够对某个位置上的漫反射光照进行采样。而在Unity 5中我们将提供描述周围环境信息更加有效的方式。
纵览全域
HDR信息是PBS中一个非常重要的元素。它能够更加有效地描述环境信息,例如太阳的明亮度可能会超过蓝天10倍。Unity5中提供了一个原生的通道来处理HDR格式档案,你可以直接汇入副档名为.hdr和.exr的图片。
加入发光效果
反射探头(Reflection Probe)纪录了某个确定位置的反射情况。Unity5的场景中会预设包含一个反射探头(你可以从Edit->Scene Render Settings->Default Reflection来查看它)。你可以修改设定或者采用天空盒(Skybox),不设置具体位置。
当然,你也可以建立自己的反射探头。可以从GameObject->Light->Create Reflection probe找到这个功能。
然后就可以进行以下的操作:
将反射探头拖到场景中的任意位置,它就会开始主动获取周围环境的光照信息了。
每个反射探头都有作用区域(就是探头周围显示的黄色区域)。里面的物体会从反射探头上获取反射信息。
更多的图元着色:
由于Unity5的动态全域光照(dynamic GI),光照探针也包含了间接的光线反射信息,并透过标准着色器作用于每个图元。这样不管光线是直接或间接地作用于法线贴图,它的效果看起来都会很棒。
这张图只用了一个往下照明的光源,桶子旁边和底部并没有受到直接光源
动态全域光照(Dynamic GI)
全域光照是PBS模块中Context层面重要的成员。为了对Unity5中的全域光照有一个全面的理解,最好的方法是看看我们发表的有关动态全域光照的文章。
颜色空间(Color Space)
PBS和标准着色器都工作在线性和Gamma模式。HDR编码、反射探针的资料以及其他Content都会与你选择的颜色空间相呼应。但为了达到最佳(最舒服)的视觉效果,你应该尽可能保持在线性颜色空间。
内容(The Content)
内容是你直接建立的资料,标准着色器确实对Unity传统的材质工作流程进行了一些改进,希望你会满意。
材质编辑器(The Material Editor)
标准着色器还引入了一个新的材质编辑器,它使PBS的材质编辑工作比以前的非PBS材质更简单。
新编辑器更精简,但却提供了材质所有可能选项。在新编辑器中我们不需要选不同的着色器来改变贴图通道,不会再出现“texture unused, please choose another shader” 这样的错误,不再需要切换着色器来改变混合模式。
你会有一些备选的贴图通道,任何一个没用到的通道都会在编译时被优化掉,因此不用担心效率问题。Unity会根据你输入到编辑器中的资料来产生正确的程序,使它用最高的效率执行。
小技巧:你可以用ctrl+点击贴图来预览大图,还可以分别查看颜色和Alpha通道。
按照你想的方式点亮一切!
PBS当然和Unity5的动态全域光照(GI)是兼容的,全域光照系统完全了解标准着色器的工作方式,并在产生场景时将其考虑在内。
PBS和GI合体使开发者可以快速改变整个场景的光照条件,把不可能变成可能,效果也更逼真。
下图中的小镇你会注意到它和文章开头那幅有不同的光照设定。静态物体看起来更有质感和层次,整个场景远近分明。这正是PBS的魔力所在。一旦材质加入PBS构建,它就会变得和光照条件完全独立,大大减少工作量!
这就是我们喜欢它的理由,也是我们认为你也会喜欢它的理由!
这个维京人的村庄我们打算在Unity5.0发布的同时也在Asset Store上发布。赞喔!
作者: hyui 时间: 2014-11-29 17:11
good to know !!
作者: heise 时间: 2014-11-29 21:08
不知道何时发布?
欢迎光临 纳金网 (http://go.narkii.com/club/) |
Powered by Discuz! X2.5 |