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

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

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

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

包围盒检测(物体级):

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

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

遮挡检测(像素级):

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

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

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

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

相关内容

热门资讯

原创 夏... 夏天湿热重、脾胃易虚寒,这4道汤健脾祛湿、暖胃护胃、清热不伤阳,适合连续两个月常喝,步骤清晰、做法简...
明日四月十六,记得“吃4样,做... 明日农历四月十六,记得“吃4样,做1事”五谷丰登迎福气,老传统别丢! 时光如梭,转眼间来到了农历四月...
今年目标全国销售网点突破200... 5月16日下午6点,贵阳市吾茶白·贵茶潮饮烘焙概念店里排起小队。 “就要这款,上次喝完一直惦记着。”...
原创 淄... 很多人认识淄博只靠烧烤但真正撑起淄博饮食底蕴的从来不是网红热度而是一代代扎根老城的老字号烟火。这些老...
原创 夏... “赤日炎炎似火烧”,这话一到夏天,可算是说到大家心坎里去了。天热起来,不光人没精神,连胃口也跟着变差...