unity中reflectionProbe研究

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

下面先从属性功能上解释一二:
bake类型的type,其作用就是烘焙出反射贴图(cubemap)。烘焙的时候注意如果想把某物体烘焙进去,该物体应该勾选reflectionProbe static。当你需要反射贴图时,自己生成一个,多好。。。
unity中reflectionProbe研究_第1张图片
unity中reflectionProbe研究_第2张图片
unity中reflectionProbe研究_第3张图片

custom类型的type,用你指定的cubemap来反射周围环境,营造氛围不错。。。
上图:
unity中reflectionProbe研究_第4张图片
着重讲讲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,如图:unity中reflectionProbe研究_第5张图片
当我把其中一个reflectionProbe的importance改成2(默认是1),那么权重分配就成这样了:
unity中reflectionProbe研究_第6张图片
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(可以是多个物体,为解决大范围多楼层的反射提供思路);

你可能感兴趣的:(unity3d)