unity 遮挡剔除 和烘赔参数

来源:互联网 发布:九种开源软件许可证 编辑:程序博客网 时间:2024/05/01 13:09


occluson culling即遮挡剔除 ,当使用遮挡剔除时,会在渲染对象被送进渲染流水线之前,将因为被遮挡而不会被看到的隐藏面或隐藏对象进行剔除,从而减少了每帧的渲染数据量,提高了渲染性能,在遮挡密集的场景中性能提升会更加明显

 

 

使用:

 

1.在游戏场景中创建多了cube 利用toolbar(工具)中的移动,旋转,缩放等命令对创建的cube进行编辑,构建一个模拟密集的建筑物场景,为了突出层次关系以及视觉效果,在场景中创建光源对象,将所有的cube标记为static 并将场景进行烘焙。

2.打开菜单来中的window->occlusion culling项,打开occlusion culling视图,此时scene场景中出现密集的空间划分的网格

3.单击occlusion视图右下角的bake按钮,即可进行烘焙

4.单击occlusion视窗中的visualization标签页,此时便可看见场景视窗中观察到剔除结果,摄像机中对象视锥中很多cube对象都被剔除,只留下了lightmap上的阴影,同时在摄像机视窗中可以看到实际渲染的结果

5.使用occlusion culling需要预先烘焙好运行游戏场景数据,occlusion culling相关数据无法动态生成,因此,依次在运行时场景中有变动,那么需要在烘焙时为会变动的游戏对象勾选occludee static(被遮挡体)

 

 

设置烘培的参数

 

Technique :技术,该项有3种方式选择,

 

1. PVS Only:使用预先计算的可见性数据精确的剔除被遮挡的静态对象,对动态对象进行视锥体剔除,CPU消耗最小,不能动态开启或关闭Portal.

2. PVS and dynamic object:使用预先计算的可见性数据精确的剔除被遮挡的静态对象被遮挡的动态对象使用粗率的入口剔除,CPU运算适中,在剔除计算消耗和过度渲染消耗之间到达一个很好的平衡,不能动态开启或关闭Protal

3. Automatic Protal Generation:对被遮挡的静态和动态对象均使用精确入口剔除,运行时会自动生成Protal 以此对CPU消耗很大,充许动态开启或关闭Protal 

 

 

 

view cell size

 

该项用于设置观察域单元大小,默认为1,数值越小剔除精度越高,同时生成烘培数据所占用的内存越多。

对于使用PVS anddynamic objects剔除动态对象的情况,通常来讲,View Cell Size越小,动态对象剔除率越高,但View cell size越小会导致生成的数据越大,因此需要对象大小和View cell大小之间找一个平衡,使得View cell和一般对象比较起来也不知于太小,即不要让一个对象包含多个cell,另外,在View cellsize过大的时候,由于精度不够导致不能准确的剔除那些看上去应该被剔除的对象。

Memeny Limit

 

该项用于烘培数据大小的限制,适合用于PVS和PVS anddynamicobjects。

 

occluder static 和occludee static

 

通过勾选occluderstatic 和occludeestatic来讲对象参与到剔除遮挡烘培,另外,也可以在对象的inspector试图右上角的staitc中勾选。

occluder即遮挡体,occludee即被遮挡体,透明的,特别小的以及将会控制其移动的游戏对象通常不会会遮挡其他对象,因此只需要勾选occludee static

 

0 0
原创粉丝点击