light probes


           尽管lightmapping已经能为游戏场景中的静态对象带来真实的光影,但是lightmapling不能将同样的效果作用在动态对象上,因此动态游戏对象不能很好的融合在静态场景中,它的光影会显得比较突出和静态场景脱节,为了让动态的对象很好的融合在场景,如果要为动态对象很好的实时的生成lightmapping,目前来说是不太可能的,不过可以使用一种在效果上近似,在性能上也可行的方法,light probes ,他的原理是在场景中放置一些采样点,收集周围的明暗信息,然后对动态对象临近的采样点进行差值运算,并将差值结果作用于动态对象上差值运算结果并不会消耗太多的性能,从而实现了动态游戏对象和静态场景的实时融合效果。

 

使用:

1.在一个场景中简单的用几个几何体构建一个游戏场景,并为游戏场景添加一些光源,进而用single lightmaps 模式为场景烘焙lightmap

2.选择场景中任意游戏对象或新建一个空对象(GameObject)并选中,依次打开菜单来中的componnet->rendering->Lighting Probes group组件,为所选的游戏对象添加组件Lighting Probes group, 同时在inspector视图中科院看到该组件的属性

3.为游戏场景布置采样点,单击inspector视图中的add probes 按钮,一个蓝色的采样点小球出现在场景中,科院像其他的游戏对象移动摆放他的位置

4.选中采样点,单击inspector视图中的light probes group项中的duplicate selected按钮,即可该在采样点的位置上复制另一个采样点,然后移动他到其他的位置,重复操作,知道大部分光影凸显的位置都摆放了采样点

5.在此烘焙游戏场景,在烘焙完成之后所有的采样点都赋予了采样点所在位置的光影信息,在lightmapping窗口打开时,可以在scene视图中看到所烘焙出的采样点和采样结果

6.接下来创建一个动态的对象来测试light probes效果,创建一个球体并选中,勾选use light probes,即可使用light probes来照亮该对象。

7.此时在游戏场景中移动创建的球体对象,即可看到light probes实现照亮这个球体的结果

 

 

light probes 应用细节

 

通常,布置lightprobes的最简单有效的方式是将采样点均与布置在场景中,这样场景中出现数量很多的点,并不用担心用掉很多内存,当然,我们完全没有必要耗费太多的点在在一片毫不光影的地方,一种优化布置方法是在光影差异比较大的地方放置多一些采样点,比如阴影的边缘,而在光影差异比较小的地方放置少一点采样点,

 

1.放置的采样点会把场景划分为多个相邻的四面体子空间,未了能够合理的划分出一些空间以便正确的差值,需要注意的是不要将所有的采样点放置在同一平面上,

2.另外,尽可能的在动态游戏对象能到达的地方布置采样点

3.如果动态的游戏对象只在地面上移动,可以适当的将高处的采样点放低

4.如果动态游戏对象只在地面上移动,为了得到期望的差值结果,也不要将高点放的过低,一致与所有的采样点几乎在同一平面上,

5.需要注意的是,根据游戏场景的烘焙时所选用的烘焙模式的选项,light probes采样点所收集的时有所区别的,single lightmaps模式下,出来realtimeonly光源,其他的光源信息都会被采样在采样点里。dual lightmaps模式下,由于在近距离实时光照区域内,所有的游戏对象会产生实时光影,所有采样点中收集的信息和near lightmaps中的信息是一种的,只需要补充一些实时光影中的没有的光影,比如bakedonly光源,反射光以及天空光等类型光源信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值