unity中reflectionProbe研究

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


下面先从属性功能上解释一二: 
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(可以是多个物体,为解决大范围多楼层的反射提供思路);
————————————————
版权声明:本文为CSDN博主「差点忘记打铁了」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fenglele_Fans/article/details/81029265

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值