梳理Unity中PBS的使用流程:1.什么是PBS(PhysicallyBasedShader)和相对传统光照模型Lambert或Phong的优势。2.Unity中PBS的实现
一 PBS介绍
从字面的意思来看,基于物理的渲染技术(PhysicallyBasedShader)。其实可以理解为是一种光照模型,相比与Lambert和Phong,更贴合现实。消耗更高
PBS能实现更好的法线高光效果:
还有主要体现在于PBS对使用者更友好;使用一个Shader能实现各种材质效果,变换环境也不需要频繁的修改Shader参数属性,只需要修改光照环境;
二 unity对PBS的实现
Unity5开始,官方的Standard Shader就使用的PBS光照模型,一个众多属性的集合,通过设置贴图和参数,可以启用或者禁用其中的一些属性。
参考Unity官方文档 Unity - Manual: Standard Shader (unity3d.com)https://docs.unity3d.com/Manual/shader-StandardShader.html
三 Unity 中PBS 的具体使用
接下来,以此场景为例,介绍Unity中PBS的使用,以下分为两个部分:
1.具体GameObject的shder
unity提供的表格调整StandardShader的具体参数,决定了物体是什么材质(是木头还是金属?):
2.光照环境
调整了物体的材质之后,还需要和整个场景交互影响。这就是相当于物体所处的上下文:环境不同,物体呈现出的方式效果也不同,这也是贴合现实体现。
1> 天空盒(环境)&灯光 (这里只是用了平行光)
设置场景的反射源为Skybox,同时调整平行光的颜色和方向与当前天空盒子相契合
2>反射探针
一些暗处或者室内,需要用反射探针来作为反射源
3>光探针
采集光照纤细用于动态物体(eg:角色)
四 参考
Demo源于 Viking Village URP | 视频教程项目资源 | Unity Asset Store
Viking Village相关 Blog
Standard Shader的表格可以在这里找到