Unity Occlusion Culling Sumup

意义

遮挡剔除,当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。

不同于视锥剔除(只是不渲染摄像机视角范围外的物体)。

Unity怎么做到的

采用了Umbra's occlusion culling算法:

The occlusion culling process will go through the scene using a virtual camera to build a hierarchy of potentially visible sets of objects. This data is used at runtime by each camera to identify what is visible and what is not.

The data for occlusion culling is composed of cells. Each cell is a subdivision of the entire bounding volume of the scene. More specifically the cells form a binary tree. Occlusion Culling uses two trees, one for View Cells (Static Objects) and the other for Target Cells (Moving Objects). View Cells map to a list of indices that define the visible static objects which gives more accurate culling results for static objects.

关键点:

Balance between the size of your objects and the size of the cells.

怎么使用Unity Occlusion Culling

  1. Unity单位长度对应1米。

  2. 场景静态模型的制作。太大,总是会看到物体的某一部分,导致剔除效果不好;太小,增加drawcall。

  3. 参与Occlusion Culling的场景对象,勾上Static(Occluder Static和Occludee Static)。对于不可能成为遮挡物的对象,如透明物体、很小的物体,可只勾选Occludee Static,表示只会被遮挡,以减少计算。Occluder可理解为“遮挡者”,Occludee可理解为“被遮挡者”,类似employer和employee的关系。所以建议对于不希望被遮挡剔除的非静态物体,可以用另外的摄像机观看。


  4. 如果需要遮挡运动的(non-static)对象,则需要创建Occlusion Area。但目前通过测试看来,即使没有创建Occlusion Area时,Unity默认整个场景是一个大的Occlusion Area,会自动遮挡运动的对象。



    参数设置:

  • Size. 区域大小
  • Center. 区域中心位置
  • Is View Volume. 区域内是否遮挡静态物体
  1. Bake。参数设置:
  • Smallest Occluder.可成为遮挡者的最小尺寸。该参数越大,会影响划分场景的Cell的Size越大,使得影响遮挡剔除的准确性越高,但会使场景遮挡烘焙数据变大,烘焙速度变慢,运行时会好用更多的cpu进行遮挡剔除的计算。应该尽量让Cell的大小比物体的大小大个几米,同时物体的大小也不能太小。

  • Smallest Hole.摄像机能通过观看的最小缝隙。该参数设置越小,会导致烘焙过程越久,烘焙过程占用的内存也越大。

  • Backface Threshold.背面测试程度。100代表完全禁用背面测试,因为摄像机一般不会进入物体内部或者地下,所以通常保持100即可。



    上图中是Unity的默认参数设置,一般情况下保持即可。如果需要调节,Smallest Occluder和Smallest Hole都应该以默认值位基准,从大一点的值开始往下调整,直到遮挡剔除的整体感觉没有问题。过程中如果发现遮挡剔除开始影响效率或者遮挡剔除数据太大了,则应该停止往下调整。
    在默认参数的设定下,生成Cell的大小是20米,根据Cell和Object大小平衡的原则,物体大小最好不要超过15米,如果希望成为遮挡者,同时也不要小于5米。

  1. 效果预览。在预览面板选定摄像机:


相关性能比较

  • 在出生点向对面出生点方向观看
  • 默认参数设置,3个均分场景的Occlusion Area
\ No OC OC
Draw calls 824 314
Total Batches 109 74
Tris 38.6k 25.1k
Verts 54.1k 33.4k
VRAM usage 15.9–31.4 MB 15.9–27.5 MB
CPU 5.85ms 5.3ms
Camera.Render 2.81ms 1.72ms
Mem-Used Total 112.2MB 112.1MB
FPS 60 60(锁帧)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 首先介绍下draw call(这个东西越少你的游戏跑的越快): 在游戏中每一个被展示的独立的部分都被放在了一个特别...
    杨夏MX阅读 13,319评论 0 17
  • Things I found out while finding Concurrent::File::Find 现...
    焉知非鱼阅读 240评论 4 0
  • 人生苦海无边。 每个人的一生都是不断面临挑战,承担责任,走向成熟的过程。这些“痛苦”是不可避免的,唯有勇于面对才能...
    杜伊特阅读 275评论 0 0
  • ——普通人买保险的6个原因 1. 【保险守尊严】 能和死神抢生意, 专跟病魔夺口粮。 常同陋习争金钱, 可与命运...
    72e518839e4c阅读 436评论 0 1
  • 1.降低额头的温度 2.坚持每周三天,每次一小时有规律的有氧运动。 3.睡觉前减少蓝光,可以尝试用红光 4.睡前三...
    撸猫真君阅读 208评论 0 0