[发明专利]一种体素地形的管理方法有效
| 申请号: | 201811316354.1 | 申请日: | 2018-11-07 |
| 公开(公告)号: | CN109712227B | 公开(公告)日: | 2022-07-15 |
| 发明(设计)人: | 郭嵩;吕文伟 | 申请(专利权)人: | 苏州蜗牛数字科技股份有限公司 |
| 主分类号: | G06T17/00 | 分类号: | G06T17/00;G06T17/05;A63F13/60;A63F13/52 |
| 代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
| 地址: | 215000 江苏省*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 地形 管理 方法 | ||
一种体素地形的管理方法,包括以下步骤:按照地形块的大小对游戏世界分块;针对每个地形块,按照块的大小对地形块进行分块;针对每个地形块,对体素进行降采样;使用八叉树,对地形块进行管理,生成提取地形表面所使用的八叉树;对所述提取地形表面所使用的八叉树上的所有的节点进行网格提取;构建渲染所使用的八叉树;生成平坦节点对应的渲染节点;确定渲染节点。本发明的体素地形的管理方法,有效避免了内部体素外漏,有效消除不同多细节等级之间出现裂缝,能够有效解决高等级多细节等级网格上贴图被拉伸的问题,以比较小的代价生成地形的多细节等级对应的网格。
技术领域
本发明涉及游戏引擎开发技术领域,特别涉及一种基于八叉树的体素地形的管理方法。
背景技术
目前,主流三维游戏一般都需要庞大、精致的游戏世界。所谓的游戏世界,不单指玩家看见的三维渲染环境,还包括游戏性所需要的虚拟环境。多数三维游戏使用三角形网格构建大部分的游戏世界,包括地形、建筑、植被及其它静态物件。一些以户外环境为主的游戏,会使用到基于高度图的地形,还有一些室内为主的游戏,会使用到构造实体几何技术去建造基本的室内环境。但由于以上方法各有优缺点,所以使用场合比较局限。
寻找更佳的三维游戏的制作方式,一直是游戏制作的重要探索方向。相比于传统的游戏,使用体素构建的游戏世界允许设计者在不使用其它静态网格(Mesh)的情况下,制作出隧道、洞穴、垂壁等自然景观。相比于传统的基于高度图的地形,基于体素的地形在高度上多出一个维度,使用传统的地形管理方法已经不能满足当前的需求,因此亟需一种能够高效管理当前体素地形的方法,使得在性能上能够满足实时渲染的需求。并且对于游戏中的地形,实时编辑是一个基本的需求,如何管理地形,能够快速响应玩家实时编辑的需求是一个很大的挑战。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种体素地形的管理方法,通过使用八叉树对地形进行管理,分别构建BuildOctree和RenderOctree,使得构建与渲染进行分离,通过深度遍历八叉树,且在RenderOctree上记录各个子树的节点个数,尽可能减少渲染时候的遍历开销。
为实现上述目的,本发明提供的体素地形的管理方法,包括以下步骤:
1)按照地形块的大小对游戏世界分块;
2)针对每个地形块,按照块的大小对地形块进行分块;
3)针对每个地形块,对体素进行降采样;
4)使用八叉树,对地形块进行管理,生成提取地形表面所使用的八叉树;
5)对所述提取地形表面所使用的八叉树上的所有的节点进行网格提取;
6)构建渲染所使用的八叉树;
7)生成平坦节点对应的渲染节点;
8)确定渲染节点。
进一步地,所述步骤1)进一步包括,根据体素的类型确定所述地形块的大小,按照地形块的大小对游戏世界分块。
进一步地,所述步骤1)进一步包括,根据体素的大小确定块的大小;针对每个地形块,按照块的大小对地形块进行分块所述地形块的大小。
进一步地,所述步骤3)进一步包括,将八个相邻的体素降采样成为一个体素,降采样后的体素的体积等于降采样前八个体素的体积之和。
进一步地,所述步骤4)进一步包括,利用所述块构建八叉树,每个所述块对应八叉树上的一个节点,八叉树上的每一层对应一个多细节等级,每一层表示一个地形块的大小。
进一步地,所述步骤5)进一步包括,采用立方体表面提取算法,对所述提取地形表面所使用的八叉树上的所有的节点提取渲染所使用的网格、物理碰撞所使用的网格以及渲染阴影所使用的网格。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811316354.1/2.html,转载请声明来源钻瓜专利网。





