游戏引擎笔记(二)场景管理
室内场景管理技术:(通过裁剪的方式减少面片)
BSP:(剔除隐藏面)
通过将场景中的物体(或三角形)有序化,从观察点触发检索BSP,获取已z坐标为关键码的三角形存储表。
Portal:
室外场景管理技术:
常见的室外场景 管理技术包括四叉树分割LOD和ROAM。
四叉树细分:对场景中摄像机能看见的周围一小部分范围进行细分。
越靠近视点范围,细节等级越高。
(对于二维空间,mesh网格)
ROAM:按照三角面片进行细分。
LOD:四叉树和八叉树细分统称LOD。
四叉树:
每一个四叉树的子节点中, 需要存储5个点的索引,除了四个角的信息外,还需要保存中心的值。
平截台体:(视景体)
为了判断一个点是否包含在平截台体内部,需要将点的坐标带入凭借头体6个平面的平面方程式中,如果所有的平面方程式的结果值都是正数,表示该点在平截头体内部。
边界球体的剔除:
使用包围物体的球体检测物体与平截头体之间的关系。
四叉树的剔除:
四叉树与平截台体相结合可以实现地表的剔除。如果四叉树的父节点不在平截头体内,那么子节点也不在凭借头体内,这时,只要检测父节点在平截头体内部的节点就行了。反复进行这个过程就可以快速的实现四叉树节点的剔除。
节点评价:
位于视野范围内的节点,需要通过计算节点与摄像机距离的远近,判别节点应该分割的级别,构造出在视野范围内的更细致的节点细节层级分割。
生成待渲染的地形网格:
不可分割子节点:不可再细分。
可分割子节点:可分割子节点需要把正方形分割为三角形。
“窟窿”现象:
在进行渲染时,如果相邻节点的LOD分割等级不同,则公共两侧的渲染三角形顶点高度不一样,是最终渲染出来的地形表面出现“窟窿”现象。
为了防止这种现象,需要用合适的三角形来修补。
室内场景管理——BSP树:
BSPTrees的英文全称为二维空间分割树,简称二叉树。
本文作者:香菇0_0
本文链接:https://www.cnblogs.com/Xiang-gu/p/16512374.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步