CN107978013A - 一种球形地表数据组织渲染与碰撞检测方法及系统 - Google Patents
一种球形地表数据组织渲染与碰撞检测方法及系统 Download PDFInfo
- Publication number
- CN107978013A CN107978013A CN201711383748.4A CN201711383748A CN107978013A CN 107978013 A CN107978013 A CN 107978013A CN 201711383748 A CN201711383748 A CN 201711383748A CN 107978013 A CN107978013 A CN 107978013A
- Authority
- CN
- China
- Prior art keywords
- diamond shape
- collision
- unit
- surface data
- tissue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种球形地表数据组织渲染与碰撞检测方法,包括:1)使用正二十面体进行球面剖分,并分解成多个菱形;2)使用单位向量来计算与其相交的菱形的重心坐标;3)采用clipmap及四叉树对每一个菱形组织渲染高度数据;4)基于重心坐标系组织碰撞数据及实现碰撞检测。本发明的球形地表数据组织渲染与碰撞检测方法及系统,基于正二十面体球面剖分,使用clipmap进行高度数据管理,并将clipmap的高度数据块映射到四叉树中,基于四叉树进行渲染节点管理,使用球面插值及重心坐标系进行球面坐标与正二十面体坐标的转换及碰撞树管理,实现了球面高度数据的管理的同时,提供了LOD机制及高效精确的碰撞检测机制。
Description
技术领域
本发明涉及地理信息领域,尤其涉及一种球形地表数据组织渲染与碰撞检测方法与系统。
背景技术
GIS(地理信息系统)以及游戏业界主流的基于高度图的球形数据组织方法为:基于正多面体进行球面剖分,将高度数据从正多面体的空间映射到球面上。球面剖分用得较多的是正六面体,正八面体,正二十面体。正二十面体剖分以其较低的映射形变正逐渐在业内流行。但是市面上常见的正二十面体剖分方法都是使用四叉树来组织数据及渲染单元,缺乏LOD机制。同时由于正二十面体与球面的映射复杂,市面上没有高效精确的碰撞检测机制。因此,目前亟需一种基于正二十面体剖分的,且有效支持LOD机制及高效精确的碰撞检测机制的方法。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种球形地表数据组织渲染与碰撞检测方法与系统,达到使正二十面体剖分具有LOD机制,且达到支持高效精确的碰撞检测的目的。
为了达到上述目的,本发明提供的球形地表数据组织渲染与碰撞检测方法,包括以下步骤:
1)使用正二十面体进行球面剖分,并分解成多个菱形;
2)使用单位向量来计算与其相交的菱形的重心坐标;
3)采用clipmap及四叉树对每一个菱形组织渲染高度数据;
4)基于重心坐标系组织碰撞数据及实现碰撞检测。
进一步地,所述步骤1)进一步包括:
使用正二十面体进行球面剖分,并将正二十面体分解成多个菱形;
将所述多个菱形铺平后,将其中的每个菱形作为clipmap,基于clipmap组织高度数据,并划分为2的幂次个小的菱形。
进一步地,所述步骤2)进一步包括:
将摄像机位置转为相对球心的单位向量,并使用该单位向量计算与其相交的菱形的重心坐标;
根据所述菱形的重心坐标,计算其余菱形的重心坐标,并以计算出来的重心坐标计算需要加载的高度数据块。
进一步地,所述步骤3)进一步包括:
为菱形建立四叉树,每一个clipmap高度数据块对应四叉树中的一个节点;
以四叉树节点为基础组织渲染单元,对每一个菱形组织渲染高度数据。
进一步地,所述步骤4),进一步包括以下步骤,
在菱形重心坐标系内建立碰撞树及其对应的碰撞单元格;
将射线的起点和终点转换到菱形的相对重心坐标系中,使用射线进行求交检测。
进一步地,所述在菱形重心坐标系内建立碰撞树及其对应的碰撞单元格的步骤,进一步包括:
在每一个菱形的重心坐标系内建立一棵碰撞树;
将所述菱形的重心坐标系按指定大小进行碰撞单元格的划分。
更进一步地,所述将射线的起点和终点转换到菱形的相对重心坐标系中,使用射线进行求交检测的步骤,进一步包括:
将射线的起点和终点转换到菱形的重心坐标系中;
在一个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程;
使用该参数方程,以单位碰撞单元格的大小进行步进;
当行进到标记有对应的高度数据或物体的碰撞单元格时,使用射线与其进行求交检测。
为了达到上述目的,本发明还提供一种球形地表数据组织渲染与碰撞检测系统,包括,地表数据组织渲染装置、地表数据碰撞检测装置,其特征在于,
所述地表数据组织渲染装置,其使用正二十面体进行球面剖分分解成多个菱形,并采用clipmap及四叉树对每一个菱形组织渲染高度数据;
所述地表数据碰撞检测装置,其基于重心坐标系组织碰撞数据及实现碰撞检测。
进一步地,所述地表数据组织渲染装置,包括剖分分解单元,组织高度单元,计算坐标单元,以及计算高度单元,其中,
所述剖分分解单元,其将球面剖分并分解成为若干菱形;
所述组织高度单元,其将每个菱形作为一个clipmap,基于clipmap及四叉树组织渲染高度数据;
所述计算坐标单元,其将摄像机位置转为相对球心的单位向量,并使用该单位向量计算与其相交的菱形的重心坐标;
所述计算高度单元,其根据所述菱形的重心坐标,计算各个菱形内需要加载的高度数据块。
更进一步地,所述地表数据碰撞检测装置,包括建树单元,转换单元,计算单元,以及求交检测单元,其中,
所述建树单元,其根据分解后的菱形建立重心坐标系,并在每一个菱形的重心坐标系内建立一棵碰撞树;
所述转换单元,其将射线的起点和终点转换到菱形的重心坐标系中,若射线的起点与终点不在一个菱形内,则预先将射线与正二十面体的棱进行求交检测,求出各个交点后,分段进行转换;
所述计算单元,其在每个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程;
所述求交检测单元,其使用所述参数方程,以单位碰撞单元格的大小进行步进检测是否标记有对应的高度数据或物体,若是,则使用射线与其进行求交检测。
本发明的球形地表数据组织渲染与碰撞检测方法及系统,基于正二十面体球面剖分,使用clipmap进行高度数据管理,并将clipmap的高度数据块映射到四叉树中,基于四叉树进行渲染节点管理,使用球面插值及重心坐标系进行球面坐标与正二十面体坐标的转换及碰撞树管理,实现了球面高度数据的管理的同时,提供了LOD机制及高效精确的碰撞检测机制。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的球形地表数据组织渲染与碰撞检测方法流程图;
图2为根据本发明的球形地表数据组织渲染与碰撞检测系统的原理框图;
图3为根据本发明的球形地表数据组织渲染装置的原理框图;
图4为根据本发明的球形地表数据碰撞检测装置的原理框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供了一种球形地表数据组织渲染与碰撞检测方法,图1为根据本发明的球形地表数据组织渲染与碰撞检测方法流程图,下面将参考图1,对本发明的球形地表数据组织渲染与碰撞检测方法进行详细描述。
首先,在步骤101,使用正二十面体进行球面剖分。坐标系统使用x轴朝右,y轴朝上,z轴朝里。剖分时,使用其中的一条棱的中点作为北极点,该棱指向正z轴,原点在正二十面体的中心的方案。这种方案更利于球面坐标到正二十面体的重心坐标的转换。将正二十面体分解成10个菱形(任意支持形成菱形的分解方法均可),将菱形铺平以后,将每个菱形基于clipmap组织高度数据,并划分为2的幂次个小的菱形(按实际剖分精度需求决定),这里clipmap组织高度数据的意思是,每个菱形在保存最精细的格子的数据的同时,保存1/2精度,1/4精度,1/8精度直至合适的精度级别的数据。
在步骤102,将摄像机位置转为相对球心的单位向量,使用该单位向量来计算与其相交的菱形上的重心坐标(转换重心坐标时,必须基于使用球面插值),并基于该重心坐标,计算其余菱形的重心坐标。
在步骤103,使用步骤102确定的各个菱形的重心坐标,计算各个菱形内需要加载的高度数据块。超过重心坐标[0,1]范围的高度数据块不需要加载。每一个菱形都建立一棵四叉树,每一个clipmap高度数据块都对应四叉树中的一个节点(clipmap的步进以最精细的数据块的大小为步长,而不是以最精细的单个高度数据为步长),以四叉树节点为基础来组织渲染单元。至此,实现了支持渲染单元的LOD功能。
在步骤104,使用重心坐标系内的uv值及两个端点进行球面插值(slerp),将菱形内的高度数据映射回球面。用球面插值的原因是,还原出来的三角形较均匀。
在步骤105,在每一个菱形的重心坐标系内建立一棵碰撞树(八叉树),由于重心坐标系是平直的,建立的碰撞树与平直坐标系方法一致。将菱形的重心坐标系按指定大小的碰撞单元格进行划分,当clipmap的高度数据加载完毕以后,按该高度数据所占范围在碰撞树中创建对应数量的碰撞单元格子。场景模型也可以将其世界空间的包围盒转换到重心坐标系以后创建对应数量的碰撞单元格子。
在步骤106,将射线的起点和终点转换到菱形的重心坐标系中。如果射线的起点和终点不在一个菱形内,需要先将射线与正二十面体的棱进行求交检测,求出各个交点以后,分段进行。
在步骤107,在一个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程,使用该参数方程,以单位碰撞单元格的大小进行步进,当行进到的碰撞单元格标记有对应的高度数据或物体时,使用射线与其进行求交检测。
至此,在重心坐标系中进行碰撞检测,实现了高效及精确(基于数学正确)的碰撞检测机制。
本发明还提供了一种球形地表数据组织渲染及碰撞检测系统,图2为根据本发明的球形地表数据组织渲染与碰撞检测系统的原理框图,如图2所示,本发明的球形地表数据组织渲染与碰撞检测系统,包括,球形地表数据组织渲染装置201、球形地表数据碰撞检测装置202,其中,
球形地表数据组织渲染装置,其使用正二十面体进行球面剖分分解成多个菱形,并采用clipmap及四叉树对每一个菱形组织渲染高度数据。
球形地表数据碰撞检测装置,其基于重心坐标系组织碰撞数据及实现碰撞检测。
图3为根据本发明的球形地表数据组织渲染装置的原理框图。如图3所示,本发明的球形地表数据组织渲染装置,包括,剖分分解单元301,组织高度单元302,计算坐标单元303,以及计算高度单元304,其中,
所述剖分分解单元301,其将球面剖分并分解成为若干菱形;
所述组织高度单元302,其将每个菱形作为一个clipmap,基于clipmap组织高度数据;
所述计算坐标单元303,其将摄像机位置转为相对球心的单位向量,并使用该单位向量来计算与其相交的菱形的重心坐标;
所述计算高度单元304,其根据所述菱形的重心坐标,计算各个菱形内需要加载的高度数据块。
图4为根据本发明的球形地表数据碰撞检测装置的原理框图,如图4所示,本发明的球形地表数据碰撞检测装置,包括,建树单元401,转换单元402,计算单元403,以及求交检测单元404,其中,
所述建树单元401,其根据分解后的菱形建立重心坐标系,并在每一个菱形的重心坐标系内建立一棵碰撞树;
所述转换单元402,其将射线的起点和终点转换到菱形的重心坐标系中,若射线的起点与终点不在一个菱形内,则预先将射线与正二十面体的棱进行求交检测,求出各个交点后,分段进行转换;
所述计算单元403,其在每个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程;
所述求交检测单元404,其使用所述参数方程,以单位碰撞单元格的大小进行步进检测是否标记有对应的高度数据或物体,若是,则使用射线与其进行求交检测。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种球形地表数据组织渲染与碰撞检测方法,其特征在于,所述方法包括以下步骤:
1)使用正二十面体进行球面剖分,并分解成多个菱形;
2)使用单位向量来计算与其相交的菱形的重心坐标;
3)采用clipmap及四叉树对每一个菱形组织渲染高度数据;
4)基于重心坐标系组织碰撞数据及实现碰撞检测。
2.根据权利要求1所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述步骤1)进一步包括:
使用正二十面体进行球面剖分,并将正二十面体分解成多个菱形;
将所述多个菱形铺平后,将其中的每个菱形作为clipmap,基于clipmap组织高度数据,并划分为2的幂次个小的菱形。
3.根据权利要求1所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述步骤2)进一步包括:
将摄像机位置转为相对球心的单位向量,并使用该单位向量计算与其相交的菱形的重心坐标;
根据所述菱形的重心坐标,计算其余菱形的重心坐标,并以计算出来的重心坐标计算需要加载的高度数据块。
4.根据权利要求1所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述步骤3)进一步包括:
为菱形建立四叉树,每一个clipmap高度数据块对应四叉树中的一个节点;
以四叉树节点为基础组织渲染单元,对每一个菱形组织渲染高度数据。
5.根据权利要求1所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述步骤4),进一步包括以下步骤,
在菱形重心坐标系内建立碰撞树及其对应的碰撞单元格;
将射线的起点和终点转换到菱形的重心坐标系中,使用射线进行求交检测。
6.根据权利要求5所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述在菱形重心坐标系内建立碰撞树及其对应的碰撞单元格的步骤,进一步包括:
在每一个菱形的重心坐标系内建立一棵碰撞树;
将所述菱形的重心坐标系按指定大小进行碰撞单元格的划分。
7.根据权利要求5所述的球形地表数据组织渲染与碰撞检测方法,其特征在于,所述将射线的起点和终点转换到菱形的重心坐标系中,使用射线进行求交检测的步骤,进一步包括:
将射线的起点和终点转换到菱形的重心坐标系中;
在一个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程;
使用该参数方程,以单位碰撞单元格的大小进行步进;
当行进到标记有对应的高度数据或物体的碰撞单元格时,使用射线与其进行求交检测。
8.一种球形地表数据组织渲染与碰撞检测系统,包括,球形地表数据组织渲染装置、球形地表数据碰撞检测装置,其特征在于,
所述球形地表数据组织渲染装置,其使用正二十面体进行球面剖分分解成多个菱形,并采用clipmap及四叉树对每一个菱形组织渲染高度数据;
所述球形地表数据碰撞检测装置,其基于重心坐标系组织碰撞数据及实现碰撞检测。
9.根据权利要求8所述的球形地表数据组织渲染与碰撞检测系统,其特征在于,所述球形地表数据组织渲染装置,包括,剖分分解单元,组织高度单元,计算坐标单元,以及计算高度单元,其中,
所述剖分分解单元,其将球面剖分并分解成为若干菱形;
所述组织高度单元,其将每个菱形作为一个clipmap,基于clipmap及四叉树组织渲染高度数据;
所述计算坐标单元,其将摄像机位置转为相对球心的单位向量,并使用该单位向量计算与其相交的菱形的重心坐标;
所述计算高度单元,其根据所述菱形的重心坐标,计算各个菱形内需要加载的高度数据块。
10.根据权利要求8所述的球形地表数据组织渲染与碰撞检测系统,其特征在于,
所述球形地表数据碰撞检测装置,包括,建树单元,转换单元,计算单元,以及求交检测单元,其中,
所述建树单元,其根据分解后的菱形建立重心坐标系,并在每一个菱形的重心坐标系内建立一棵碰撞树;
所述转换单元,其将射线的起点和终点转换到菱形的重心坐标系中,若射线的起点与终点不在一个菱形内,则预先将射线与正二十面体的棱进行求交检测,求出各个交点后,分段进行转换;
所述计算单元,其在每个菱形的重心坐标系内,计算起点和终点所确定的射线的参数方程;
所述求交检测单元,其使用所述参数方程,以单位碰撞单元格的大小进行步进检测是否标记有对应的高度数据或物体,若是,则使用射线与其进行求交检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711383748.4A CN107978013B (zh) | 2017-12-20 | 2017-12-20 | 一种球形地表数据组织渲染与碰撞检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711383748.4A CN107978013B (zh) | 2017-12-20 | 2017-12-20 | 一种球形地表数据组织渲染与碰撞检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107978013A true CN107978013A (zh) | 2018-05-01 |
CN107978013B CN107978013B (zh) | 2021-04-16 |
Family
ID=62006917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711383748.4A Active CN107978013B (zh) | 2017-12-20 | 2017-12-20 | 一种球形地表数据组织渲染与碰撞检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107978013B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599183A (zh) * | 2008-06-06 | 2009-12-09 | 吴立新 | 一种实现地球空间三维网格剖分的方法 |
CN101964157A (zh) * | 2010-09-27 | 2011-02-02 | 中国人民解放军国防科学技术大学 | 球面菱形网格递归剖分方法 |
CN102930591A (zh) * | 2012-11-09 | 2013-02-13 | 沈阳创达技术交易市场有限公司 | 地表植物的快速渲染 |
CN103413297A (zh) * | 2013-07-16 | 2013-11-27 | 南京师范大学 | 基于一体化三维gis模型的切割方法 |
JP2014038310A (ja) * | 2012-07-18 | 2014-02-27 | Goto Optical Mfg Co | 球形画像の表示方法および装置 |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
-
2017
- 2017-12-20 CN CN201711383748.4A patent/CN107978013B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599183A (zh) * | 2008-06-06 | 2009-12-09 | 吴立新 | 一种实现地球空间三维网格剖分的方法 |
CN101964157A (zh) * | 2010-09-27 | 2011-02-02 | 中国人民解放军国防科学技术大学 | 球面菱形网格递归剖分方法 |
JP2014038310A (ja) * | 2012-07-18 | 2014-02-27 | Goto Optical Mfg Co | 球形画像の表示方法および装置 |
CN102930591A (zh) * | 2012-11-09 | 2013-02-13 | 沈阳创达技术交易市场有限公司 | 地表植物的快速渲染 |
CN103413297A (zh) * | 2013-07-16 | 2013-11-27 | 南京师范大学 | 基于一体化三维gis模型的切割方法 |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
Non-Patent Citations (2)
Title |
---|
CHEN MENGYUN 等: "Method of Geometry Clipmap based on icosahedron", 《JOURNAL OF REMOTE SENSING》 * |
周良辰 等: "球面菱形离散格网正二十面体剖分法", 《测绘学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107978013B (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107607929B (zh) | 一种基于激光点云数据的测量杆塔倾斜角度的方法及装置 | |
CN103761397B (zh) | 用于面曝光增材成型的3d模型切片及投影面生成方法 | |
CN102155940B (zh) | 用于双目视觉定位跟踪系统的立体靶标 | |
CN108267154B (zh) | 一种地图显示方法及装置 | |
CN110335301B (zh) | 一种基于激光雷达和结构光的三维扫描方法及装置 | |
CN105842676A (zh) | 一种雷达盲区分析方法及装置 | |
CN105869211B (zh) | 一种可视域分析方法及装置 | |
CN110163087A (zh) | 一种人脸姿态识别方法及系统 | |
CN107705355A (zh) | 一种基于多张图片的3d人体建模方法及装置 | |
CN116229015B (zh) | 一种基于2N-Tree带附面层的贴体笛卡尔网格生成方法 | |
CN110298922A (zh) | 一种三维模型简化方法、装置及设备 | |
CN107464286A (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
TWI475511B (zh) | 曲面網格化系統及方法 | |
CN112365572A (zh) | 一种基于曲面细分的渲染方法及其相关产品 | |
CN115239784A (zh) | 点云生成方法、装置、计算机设备和存储介质 | |
CN114419241A (zh) | 一种三维模型构建方法、装置及存储介质 | |
CN106323169A (zh) | 一种球体球心坐标定位方法 | |
CN110736961B (zh) | 一种树木位置的测量系统及方法 | |
CN107478217B (zh) | 一种poi显示方法及装置 | |
CN107978013A (zh) | 一种球形地表数据组织渲染与碰撞检测方法及系统 | |
CN104932858A (zh) | 一种精确匹配实时漫游的背景地图叠加显示方法 | |
CN113112594A (zh) | 基于电力gim的输变电工程三维模型轻量化方法及装置 | |
CA2801790A1 (en) | Method and apparatus for determining the location of corrosion sites in a body subject to corrosion | |
US20090174720A1 (en) | Method and System for Surface analysis and Envelope Generation | |
CN107869971B (zh) | 一种基于三维激光扫描数据计算树冠表面积的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |