欢迎来到天天文库
浏览记录
ID:22373800
大小:4.96 MB
页数:99页
时间:2018-10-20
《游戏场景管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、游戏中的场景管理技术浙江大学软件学院梁秀波Email:liangxb@cst.zju.edu.cn游戏Quake3的场景三维游戏场景的组织和绘制三维游戏中的图形技术可分为三个层面场景的几何组织与优化着重于提高绘制效率场景的画面真实度,采用一系列特效生成技术包括高级纹理映射,过程式建模等基于真实物理定律的游戏效果模拟主要是阴影模拟和碰撞检测本次课程将着重讲解三维游戏场景的几何组织,优化管理以及在此基础上的OGRE中的复杂场景的管理三维游戏场景的组织和绘制三维场景的组织和管理游戏场景的几何优化三维场景的快速可见性判断与
2、消隐地形场景的绘制与漫游碰撞检测简介基于场景图(Scenegraph)的表达和管理第一步根据游戏的需要更新场景图必要的部分这种更新是部分的,不需要从根节点遍历第二步场景图的剔除和绘制太阳系的场景图太阳系场景图绘制伪代码绘制太阳将当前矩阵压入矩阵堆栈设置第一个旋转矩阵绘制行星A将当前矩阵压入矩阵堆栈设置第二个旋转矩阵绘制卫星A绘制卫星B从矩阵堆栈弹出顶部矩阵绘制行星B将当前矩阵压入矩阵堆栈设置第三个旋转矩阵绘制卫星C绘制卫星D从矩阵堆栈弹出顶部矩阵从矩阵堆栈弹出顶部矩阵改进后的太阳系场景图绘制伪代码绘制太阳将当前矩阵
3、压入矩阵堆栈将当前矩阵压入矩阵堆栈设置第一个旋转矩阵绘制行星A将当前矩阵压入矩阵堆栈设置第二个旋转矩阵绘制卫星A绘制卫星B从矩阵堆栈弹出顶部矩阵从矩阵堆栈弹出顶部矩阵将当前矩阵压入矩阵堆栈设置第三个旋转矩阵绘制行星B将当前矩阵压入矩阵堆栈设置第四个旋转矩阵绘制卫星C绘制卫星D从矩阵堆栈弹出顶部矩阵从矩阵堆栈弹出顶部矩阵从矩阵堆栈弹出顶部矩阵基于绘制状态的场景管理把场景物体按照绘制状态分类绘制状态集合A●砖块纹理●细节纹理●红色材质●无融合模式绘制状态集合B●砖块纹理●细节纹理●灰色材质●无融合模式绘制状态集合C●砖
4、块纹理●凹凸纹理●红色材质●无融合模式绘制状态集合D●立方体纹理●无纹理●单色材质●加法融合模式绘制状态集合实例绘制状态树实例基于场景包围体的场景组织加速判断场景物体之间的空间关系,主要有两种方法对单个物体建立包围体,在包围体的基础上建立包围盒层次树场景剖分常用的包围体技术包围体和包围球示例球的体积比立方体大OBB树的构造示意图物体的凸包围体常用的类型增量式(incremental)礼包式(gift-wrapping)分治式(divide-and-conquer)快速凸包算法(quick-hull)k-dop(di
5、scretedorientationpolytope,离散有向多面体)比上述的包围体更紧密地包围原物体,创建的层次树节点更少8-dop结构场景绘制的几何剖分将场景中的几何物体通过层次性机制组织起来优点使用灵活,能快速剔除层次树的整个分枝注意要保持树的平衡!包围树常用的几何剖分技术BSP树(左)场景的BSP树剖分;(右)BSP树结构示意图BSP树的构造过程(左)一次剖分后的场景平面图;(右)一次剖分后的BSP树(左)两次剖分后的场景平面图;(右)两次剖分后的BSP树BSP算法处理四个嵌套遮挡的多边形用画家算法无法处理
6、四个嵌套遮挡的多边形情形四叉树(a)场景多边形;(b)第一次剖分;(c)第二次剖分八叉树(a)(b)(c)(a)初始节点;(b)第一次剖分;(c)第二次剖分景物包围体和场景剖分技术比较技术名称适用场景构建复杂度实用性二叉树尺寸不是特别大的室内建筑场景复杂大部分三维游戏引擎四叉树室外基于高度场的地形一般仅用于地形绘制八叉树大规模三维室内、外空间场景一般复杂三维游戏引擎均匀八叉树体素表示场景、分布均匀的三维场景简单少量三维游戏引擎景物包围体和场景剖分技术比较场景包围体技术场景剖分技术表示方式层次物体表示层次空间表示剖分
7、方式物体剖分场景剖分聚类方式物体的层次聚类空间的层次聚类层次细节物体层次细节空间层次细节主要作用围绕物体将空间区域区分开来围绕区域将物体区分开来代表方法包围球树OBB-树、AABB树、k-DOPS二叉树、四叉树、八叉树、均匀三维网格、kD树场景包围体和场景剖分技术比较(左)场景包围体技术(右)场景剖分技术层次细节(LOD)技术简单取舍型LOD平滑过渡型LOD静态LOD动态LODLOD经典的简化算法顶点删除边删除最有效!面删除基于边删除的顶点简化兔子模型的四个层次LODModels渐进网格和连续多分辨率绘制技术对于数
8、据量庞大的复杂模型LOD模型只能预先产生多个间断的简化模型引起实时绘制时图形画面的跳跃为克服LOD的缺点,Huppe等人于1995年提出渐进网格技术(ProgressiveMesh)预计算简化过程中原顶点和新顶点的关系由基本网格模型逐步恢复模型细节示例:SpeedTree的LOD过渡示例:SpeedTree的LOD过渡示例:SpeedTree的LOD过渡De
此文档下载收益归作者所有