性能优化 可见性剔除学习 空间分割术,包围盒检测,遮挡检测
admin
2024-01-25 18:15:53

可见性检测是为了从场景物品开始 尽可能多的去除不可见物体

可见性层次:像素,三角形,物体,装满物体的房间,有多个房间的楼房

关于像素,三角形,物体的检测:

包围盒检测(物体级):

基本思想:包围盒不可见则 三角形和像素一定不可见
可见再去判断三角形可见 再去判断像素可见
包围盒检测方式:基于视锥检测包围盒(视锥体内外检测和投影矩阵)
视锥体内外检测:
把点和面转到裁剪空间
依次检测包围盒的8个点对视锥体的6个面进行内外判断
比较大的缺点是不能检测特殊位置的物体 如下图右上角的

但这类物体不会太多 当然可以使用投影矩阵的方式进行裁剪 但投影矩阵的裁剪方式太耗时了? 不如直接渲染出来可能还快一点(比起用投影矩阵的方式)?

遮挡检测(像素级):

判断包围盒是否被其他物体遮挡是非常困难的 最好的方式就是用 深度测试来做检测 但这类检测依然是消耗太高 最好在之前就可以把物品剔除出去 下面介绍空间分割术

空间分割术(空间级物体房间,楼房 ):

直接对空间进行分割 怎么划分空间 用物体数量来划分
超过一定数量就划分出来一个空间 最简单的方式就是动态四叉树结构
当当前空间超过一定数量时就对该空间进行划分
动态四叉树结构(用平行轴的方式分割),
二叉空间分割树BSP(任意方向的线分割):
经典BSP:分割所有物体 如果物体处于两区之间则直接把该物体分割为两部分
但这样做又不利于成批提交三角网格(合批)所以最好跟节点也行存储物品 当物体在中间时 不把该物体归类到叶子节点

做优化的思路大概可能就是先
用空间分割术判断空间
再用包围盒进行物体级别的判断
再用深度测试进行像素级别的检测

相关内容

热门资讯

原创 美... 长期以来,商场开设美食广场都是各家商场的常规动作,但是就在最近美食广场被商场B1所击败的消息冲上热搜...
沈阳骨汤汆悦麻辣烫在2026:... 2026年,沈阳餐饮市场中的麻辣烫品类持续迭代,消费者对汤底品质与食材新鲜度的关注度显著提升。作为东...
三天两夜,在广州该怎么吃? 城市特色美食一定要试 最近,有市民察觉,广州不少好吃的餐厅、酒楼、美食街以及地铁线路突然...
原创 4... 夏天燥热缺水,很容易大便干结、肚子胀,这4道清淡吃法高纤补水,温和促肠道蠕动,便便顺畅,肠胃无负担。...
原创 南... 标题:南方年夜饭上的4种海鲜食品,虾蟹很常见,唯有它让人念念不忘! 在南方的年夜饭上,海鲜总是不可...