用于控制最终看到的画面。
相机常用基本设置。
物理相机:实际上就是用于模拟真实世界相机的参数,让开发者可以容易地将Unity相机对应到真实的相机世界类型上。比如可以通过物理相机控制Sensor Type(传感器类型)。
示例场景只有一盏平行光(Directional Light),用于模拟太阳光。
除非是在封闭的环境中,否则都要考虑来自天空的光照,包括雾效。
HDRP使用Volume框架将天空的光照、阴影、后处理等着设置集中到一起。
在场景中有两个Volume:
Sky and Fog Volume:负责天空和雾效;
Post Process Volume:负责后处理效果;
Volume框架其实就是一个组件,他和Camera组件本质上是一样的,因为两者都可以被添加到GameObject中,为其添加功能。
Global(全局):设置全局模式,则Volume上的效果默认会印象整个场景。
Local(本地):可以指定不同形状的碰撞体。Volume上的效果只会在相机与Volume上的碰撞体发生碰撞时被触发。例如:不同房间设置不同Volume,在切换房间时,会显示画面过度变换。
使用Volume框架的一个好处是可以把组件和具体的设置进行分离。组件上所有的设置其实来自于关联的Profile。
主要用于选择天空盒格式:
在示例场景中Visual Environment 勾选了HDRI Sky,所以要为Volume指定一个HDRI Sky。并对其进行设置。目前关联的时Unity自带的DefaultHDRISky高动态图。
在HDRI Sky中通过设置Exposure(曝光度)来控制天空的环境光强度。
可以控制场景中的雾气的浓度、离地面的高度,也可以设置距离远近。还可以配合使用灯光组件的Volumetrics(体积光)属性创造体积光效果。
添加配置信息。
其实可以把Sky and Fog Volume 和 Post Process Volume 合二为一,因为用了相同的Volume框架,同时只需要一个Volume关联一个Profile。
不过,这样会使组件显示列表很长,不利于后期维护。另一方面如果使用多个Local的后处理Volume,会使其灵活性很差。
Light Probe Group
由一组Light Probe(光照探针)组成, 用于为场景提供高效的间接光照信息,特别适合为场景中的小物体(参与光照贴图烘培但不从光照贴图中获取间接光信息)和动态物体提供间接光照信息。
反射探针通过对自身周围的场景进行采样,可以为场景中相关模型提供高效的反射信息,让场景中的模型表面拥有逼真的反射效果。
在Reflection Probes下对应的三个反射探针,如下图:
Unity支持FBX文件模型,也逐渐支持Alembic,USD这类文件格式,也可以用Unity Reflect把Autodesk Revit,Sketchup这一类行业软件中的模型导入Unity。
Baked Global Illumination(烘培全局光照信息)。
就目前的算法和设备的算力实时生成全局光照信息还不现实。光线追踪功能已近在高端显卡中实现,但对于大多设备而言,还是需要使用像光照贴图烘培(Lightmapping)这样的技术来预计算全局光照信息,将计算好的光照信息保存到光照贴图(Lightmap)上,然后在实时渲染时将它们应用到场景中,来实现全局光照的效果。
总之,一个HDRP场景中除了包含模型外,还需要包含相机、灯光、光照探针、反射探针,最重要的是使用Volume控制整个场景的光照和后处理效果。也需要使用光照贴图烘培技术来为场景添加全局光照。