Unity中Reflection Probe反射探针使用解析

发表于2018-08-21
评论0 2.08w浏览
Reflection Probe,反射探头,用于控制场景中光线的反射信息。这就是本篇文章要给大家介绍的重点内容,关于Reflection Probe反射探针的使用。

反射探头最主要的作用:模拟反射;  

举个例子:在大型场景中,需要作出建筑物的外表玻璃的反射效果,这种效果可以使用镜子shader来做实时真实反射,但是性能开销太大。Unity提供的reflection Probe可以提供反射周围真实环境的伪反射;

下面先从属性功能上解释一二:

bake类型的type,其作用就是烘焙出反射贴图(cubemap)。烘焙的时候注意如果想把某物体烘焙进去,该物体应该勾选reflectionProbe static。当你需要反射贴图时,可以自己生成一个。



custom类型的type,用你指定的cubemap来反射周围环境,营造氛围不错……

上图:

着重讲讲realtime类型的type,refreshMode分三类:on awake/every frame/via scripting。on wake 就是程序开始运行时获取周围环境生成的一张反射贴图,之后你再改变外部环境,反射贴图不会有变化,还是这个样……(当然如果你是改变reflectionProbe的某些参数还是会变的);every frame ,顾名思义就是每一帧都会获取周围环境来生成反射贴图。在该模式下,相应的time slicing 有三种类型:all faces at once/individual faces/no time slicing,效果上区别不大,性能上有些许区别。比如当你移动反射探头的时候,no time slicing如丝滑般过渡,all face at once 就有一点卡顿的感觉,individual faces 卡顿感更强……;via scripting 这个没发现有啥特别的……

然后是importance,这个主要是在决定一个物体同时受到几个reflectionProbe影响时的优先级。举个例子:一个物体在两个反射探头的范围之内,那个权重就是各0.5,如图:

当我把其中一个reflectionProbe的importance改成2(默认是1),那么权重分配就成这样了:

intensity :在反射探头的范围内控制环境亮度大小,如同光源一样照亮周围;

box projection :最上面的动态图中,从不同角度看镜面有不同的景象,但是你把摄像头拉远,在反射平面上看到的景象大小并不会改变。如果你想让反射的景象随距离发生变化,那么久勾选box projection;

box size : 反射探头影响范围大小;

box offsize :box的偏移;

reselution:值越大,反射的景象越清晰;

shadow distance :反射景象中阴影的有或无,明显后者不明显;

clear flags :skybox则反射天空盒,solid color 反射背景颜色;

culling mask :指定反射哪一层的物体;

clipping planes :控制反射探头反射环境的远近,near仅far远;

最后说一下,上面的动图怎么来的:在reflectionProbe的范围内,将物体材质选为standard,然后将smoothness调为1(可以是多个物体,为解决大范围多楼层的反射提供思路);
来自:https://blog.csdn.net/Fenglele_Fans/article/details/81029265

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引