CN103403769A - 行星尺度物体渲染 - Google Patents

行星尺度物体渲染 Download PDF

Info

Publication number
CN103403769A
CN103403769A CN2011800692863A CN201180069286A CN103403769A CN 103403769 A CN103403769 A CN 103403769A CN 2011800692863 A CN2011800692863 A CN 2011800692863A CN 201180069286 A CN201180069286 A CN 201180069286A CN 103403769 A CN103403769 A CN 103403769A
Authority
CN
China
Prior art keywords
quaternary tree
data
details
network topology
equipment
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
Application number
CN2011800692863A
Other languages
English (en)
Other versions
CN103403769B (zh
Inventor
W.孙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103403769A publication Critical patent/CN103403769A/zh
Application granted granted Critical
Publication of CN103403769B publication Critical patent/CN103403769B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

行星尺度物体渲染系统可提供具有不同层次的细节的多个球形网格拓扑,其由邻接面组成。可以以连续层次的细节来提供这些面的镶嵌。可随机访问网格拓扑中不同位点和层次的细节的几何数据。在一些实施例中可在四叉树中组织几何数据。分层四叉树数据结构可从底层向上地形成,其中用之前子代层的根节点形成相继更高的父代层。可从上而下地随机访问四叉树结构。

Description

行星尺度物体渲染
技术领域
这大体上涉及行星尺度物体渲染。如本文使用的,行星尺度物体渲染牵涉渲染在尺度上相差至少100,000倍的物体。
背景技术
利用例如在Google Earth中使用的行星物体渲染,用户可查看整个地球并且看到一个分辨率水平并且然后可有效地放大地球上的特定区域并且相对于较小的面积看到更大的分辨率。从而,Google Earth允许用户选择特定区域来查看、选择那些区域中的多少来查看,并且由此系统确定用户可看到的分辨率。
行星观看器可提供用于使各种科学数据可视化以及用于个人、社会和大众媒体的便利平台。行星查看器还可在航行、生态管理、地理监督和规划、环境科学、应急规划和响应中使用,以及用于娱乐。
由于查看距离和查看面积的大的变化以及需要实时检索非常大量的二维数据(其包括表面高度数据),以高精度实时渲染例如地球等行星尺度物体对于3D几何处理是富有挑战的,例如,行星查看器可查看近至一米以及远至几万千米的区域,其中查看面积小至一平方米并且大至整个半球。
附图说明
图1是对于一个实施例的多个网格拓扑中的三个的透视图;
图2是根据一个实施例的几何处理流水线的流程图;
图3是根据一个实施例的小片镶嵌的描述;
图4是示出根据一个实施例的位移绘图的标绘图;
图5是根据一个实施例用于离线处理的流程图;
图6是一个实施例的四叉树分级结构的布局;
图7是一个实施例的分级四叉树的描述;
图8是根据一个实施例的拓扑数据的运行时检索的流程图;
图9是一个实施例的硬件描述。
具体实施方式
根据本发明的一些实施例,行星物体是地球或另一个天体行星,但本发明可以适用于任何行星尺度物体(大于100,000X的尺度)。在一个实施例中,行星近似为正球体。这可使采样和插值简化并且更易于计算表面法线。
在一个实施例中,可存在多个固定或预定的离散层次的细节球形网格拓扑。例如,在一个实施例中,由球形网格拓扑实现的八个离散层次的细节可从最粗层次的细节跨越到最细层次的细节。在一个实施例中,最粗层次的细节是每小片1667×1667千米并且最细层次的细节小片是13.02×13.02平方千米。如本文使用的,面是球形网格拓扑上的四边形区域(面是三角形的极点区除外),其代表实际几何物体上的小片。
参考图1,用于实现预定数量的离散层次的细节的多个球形网格拓扑10中的三个可在一个实施例中使用。仅描绘三个拓扑来图示从左到右逐渐增加层次的细节。每个网格拓扑包括多个面12,其理想化并且简化为平坦的表面。从而,每个网格拓扑由代表给定分辨率的多个平坦的面组成。每个邻接平坦的面代表实际球形物体的大小和形状大致相似的球形(即,非平坦的)段,叫作小片。
在一些实施例中,由网格拓扑实现的固定或离散层次的细节通过网格拓扑和拓扑数据的连续层次细节补充。在一些实施例中,高效数据结构可用于快速网络传输、快速硬盘输入/输出(I/O)和高效存储器高速缓存。
参考图2,在一个实施例中,行星尺度物体渲染的几何处理流水线通过创建分级网格模型而开始,如在框14中指示的。这些分级网格模型是预定数量的离散层次的细节,如在图1中描绘的。尽管给出其中使用八个网格模型的示例,网格模型的数量可基于处理系统的能力而选择。
在一些实施例中,因为网格拓扑可能将具有将不适合本地存储的大小而不存储它们。将用两个32位浮点值来存储每个顶点的地理位置(即,经度和维度),一个32位整数用于将每个顶点指数化,一个32位整数用于将每个边指数化,一个32位整数用于将每个面指数化,并且额外的指数复制用于存储连接性信息。该信息中没有一个被存储,而相反根据需要而生成。
在一个实施例中,对m个离散细节层次(LOD)使用m个分级网格模型(例如,m=8),其中每一个LOD l对它的相邻较粗的LOD l-1两倍上采样。为了消除存储这些模型(在最细LOD大约5百万个顶点)的需要,这些LOD的顶点、边和面被仔细地指数化使得它们在任何LOD的位置和连接性可以在需要时被计算。
一般,查看器越接近给定小片,查看器期望看到的细节越多,并且反之亦然。在高度范围与预定网格LOD中的每个之间存在相关性,并且基于该相关性,选择最适合的LOD网格拓扑。基本上,用户离得越远,选择的网格越粗。LOD的选择通过视点的高度h而确定。每个LOD与最小高度阈值                                               
Figure 592408DEST_PATH_IMAGE001
关联。选择适合的LOD l*使得
进行镶嵌来确定每个小片内部的样本点的数量并且用较小的三角形将小片分成三角形来实现连续层次细节。在镶嵌之前,对于查看器肯定不可见的小片被去除来降低计算成本。不可见小片去除包含两个步骤:背面剔除和视域剔除(view frustum culling)。
分级背面剔除16在图2中示出。根据查看器有多远,该背面剔除去除背向查看器的球形网格的背侧上的面。基本上,查看器越接近小片,查看器看到的正面越少。未看到的面被剔除来简化计算。在一个实施例中,因为每个更详细的网格拓扑对它的前一网格拓扑两倍上采样(通过在经度和维度方向中的每个上在每两个顶点之间再多添加一个顶点),仅下一个较细LOD中添加的位于较粗LOD边界上的顶点需要针对背面剔除而被检查。因此,代替直接在选择的具有二次算法复杂度O(n2)的LOD上进行背面剔除,通过测试最粗LOD处所有顶点的可见度并且渐增地测试每个相邻较细LOD处添加的边界顶点直到选择的LOD为止而分级地进行背面剔除。分级背面剔除具有线性算法复杂度O(n),其比二次复杂度快得多。
背面剔除产生正面网格,其仅在视点的位置改变时需要被更新。开关17处的检查确定视点是否已经改变,这将确定是否需要进行分级背面剔除来更新正面网格。然后应用视域剔除以产生仅包含该视域中潜在的面的最小网格。在视域剔除18中,确定3D空间中的视域。该三维视域指示查看器基于查看器选择的查看位置、高度和查看角所可以看到的。可去除将不与视野(view)相交的小片来简化计算。
背面剔除和视域剔除要求每小片最大和最小高度值用于可见度估计。分级背面剔除16使用来自提取最大HQT块34的最大高度数据。视域剔除18使用来自块32的最小高度和来自块34的最大高度。完整的高度数据文件可编码到最大高度、最小高度和平均高度数据内。在一些实施例中,高度数据可从例如NASA的全球数字高度图(GDEM)等公共源获得。
一旦表面已经减少,下一个步骤是进行实际镶嵌。这牵涉调用镶嵌度量22,其基本上是用于确定每个小片需要多少样本点的方案。沿选择的小片外部的边E以及在小片P内部添加样本,如在图3中示出的。这些样本或样本点S的数量由镶嵌度量22确定。然后,一旦已经选择样本,样本点连接成三角形T,其最终被发送到渲染器。
一旦已经选择网格拓扑,可以在该拓扑内在感兴趣小片中添加更多的细节。每个小片是具有四个顶点和四个边的四边形。在一个实施例中,模型可被简化来使用平坦的小片。
小片镶嵌20将样本添加到边以及小片内部并且使点连接成三角形,这些三角形被发送给渲染器。小片评估24使用位移绘图来计算样本点中的每个的位置和法向量。
位移绘图是从粗网格LOD到细的详细网格LOD的调整。在一个实施例中,位移绘图是从正球体到现实世界中高度的实际拓扑的调整。从而,如在图4中示出的,具有半径R的球体上的每个点P由沿球体的法线n调整了距离D而到在地球表面上的实际位置S。该新的表面位置和法向量n S可使用位移绘图技术来确定。
从而,回到镶嵌度量22,它决定小片的镶嵌分辨率,即在小片中需要多少样本点S,来实现可取的连续层次细节。小片的镶嵌分辨率由沿小片的边的镶嵌分辨率以及小片内部的分辨率确定。
沿小片的边的镶嵌分辨率确定小片的边上需要的样本点的数量。这通过基于一定数量的因子来计算边应该分成多少段而进行。
第一因子是到所谈论的边的查看距离。点P c1P c2是移位了小片平均高度并且变换成拍摄装置坐标系的小片的边的端点。因为在拍摄装置坐标系中确定这些端点,它们对应于从视点到边的查看距离。镶嵌度量将查看距离的平均值确定为第一因子。
第二因子是查看角。屏幕上的边尺寸由查看角确定,因此基于查看角可需要沿长边出现的对于边更多的点。端点被规格化并且然后取点乘积来赋予查看角余弦值。当查看角是小的时,余弦值是大的并且如果余弦值在边镶嵌方程T(e)的分母中,样本的数量将更小。
下一个因子是平坦度误差εflat。如果边不太平坦,则将需要更多的点来准确地描绘边。平坦度误差因子考虑来自使用选择的LOD网格而逼近球体的误差以及由于高度改变的量而引起的误差。在一个实施例中,经验标度因子λ可用于将这两个误差项组合。
下一个因子考虑视点的X和Y方向尺寸(Fx和Fy)。视点越大,需要的细节越多。
下一个因子(叫作k)是用于将镶嵌度量方程的结果转换成适合的范围的恒定标度因子。
则镶嵌度量T(e)确定每个边应该分成多少段:
P c1P c2和是边的两个端点的3D位置,其移位了小片平均高度并且变换成拍摄装置坐标系。
Figure 739990DEST_PATH_IMAGE004
给出边的平均查看距离。
Figure 665220DEST_PATH_IMAGE005
是从规格化的两个端点的点乘积计算的查看角。
小片的平坦度误差εflat(f)(即,通过平坦的面逼近高阶球形小片的误差)通过选择的LOD的球形逼近误差
Figure 889528DEST_PATH_IMAGE006
和由小片的最大高度hmax(f)与最小高度hmin(f)之间的最大高度差所界定的拓扑不平整度的加权和来估计,这些在一个实施例中从GDEM高度数据来得到,
Figure 888708DEST_PATH_IMAGE007
在选择LOD的时间之前,基于LOD网格的平坦面与它对应的正球形小片之间的最大距离误差来计算LOD的球形逼近误差
Figure 173059DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE009A
其中R是行星的半径,并且θl是LOD的单个面覆盖的经度或维度方向上的角度。
一旦确定小片的每个边的镶嵌分辨率T(e),通过使小片的所有边的镶嵌分辨率平均化而得到小片的内部(非边)点的镶嵌分辨率T(f),
Figure 460952DEST_PATH_IMAGE010
可重新调整每个外部边上的镶嵌分辨率使得相邻小片之间的边一致来防止例如边开裂等视觉伪像。从而,两个相邻小片的公共边确定被平均化来得到该公共边的实际镶嵌分辨率T(e),
小片拐角上的顶点可被四个或以上的可见小片所共享。每个顶点的镶嵌分辨率T(v)由共享该顶点的所有小片的平均镶嵌分辨率确定,
顶点镶嵌分辨率不用于镶嵌,而用于确定要使用的拓扑数据的分辨率。
在一个实施例中,所有上面的镶嵌分辨率T(f)、T(e)和T(v)的计算在浮点值中进行。T(f)、T(e)或T(v)的最后结果(其最后可以是整数加小数)向上舍入为下一个较高整数,其是2的幂。
从而,在一个实施例中,镶嵌度量使用最大高度数据、最小高度数据和平均高度数据,如在图2中指示的。注意拐点P c1P c2不是平坦小片的原始拐点,而实际上是高度的调整点(通过小片的平均高度来调整)。因此,需要高度数据以便进行调整。
假定小片具有计算的镶嵌分辨率,镶嵌器产生具有uv坐标和三角形连接性的子采样点。在一个实施例中,最大镶嵌分辨率是512,等同于九个额外的LOD。
最后,镶嵌点的位置和法向量在小片评估期间由位移绘图高度数据计算并且馈送给渲染引擎。
在每个新近确定的样本点,使用高度数据的位移绘图来计算它的三维位置和表面法向量。每个小片的镶嵌小片评估24产生三维位置坐标列表、三维法向量列表和代表小片的样本点的三角形连接性的指数列表(框26)。在一个实施例中,位置、法向量和指数的列表然后馈送到OpenGL后端渲染器28用于渲染。
分级背面剔除、视域剔除、镶嵌度量和小片评估都使用高度数据。该数据可由服务器-客户端异步数据提取系统实时检索。
当在分级背面剔除、视域剔除、镶嵌度量计算和小片评估期间需要高度数据时,几何处理流水线(图2)检查数据客户端40的存储器高速缓存38。如果需要的数据不可用,几何处理流水线返回高速缓存38中可用的最佳数据并且恢复处理。同时,数据客户端40通过网络50向数据服务器52发送对需要数据的查询。
一旦接收查询,服务器52从硬盘92(图8)加载查询中规定的对应类型的高度数据54、56、58或60并且通过网络50向客户端40发送数据,同时将数据的副本存储在它自己的存储器高速缓存62中。一旦客户端从服务器接收数据,客户端将数据存储在客户端存储器高速缓存38中以便数据对于几何处理流水线是可用的。
分级背面剔除、视域剔除和镶嵌度量计算需要每小片最大、最小和平均高度值,而小片评估需要详细的高度数据用于位移绘图。需要高效压缩/解压方案来实时检索该大规模数据。
分级无损压缩算法可应用于这样的高度数据(离线)来生成几何处理流水线的不同部分所需要的不同类型的高度数据。所得的数据存储在分级四叉树数据结构中。在运行时的分级无损解压允许以任何分辨率迅速访问感兴趣的任何区域中的不同类型的高度数据。分级数据结构可高效地用于服务器上的硬盘输入/输出、服务器与客户端之间的网络传输以及服务器和客户端两者上的存储器高速缓存。
Haar小波快速地计算,但其未实现高压缩比。在一个实施例中,Haar变换与位组装(bit packing)的组合用于随机数据访问和压缩。尽管是低压缩比,高效数据结构、文件格式和每线程高速缓存分级结构设计成提供快速可缩放数据编码和检索技术方案。
基本2D Haar变换牵涉四个2×2模板与原始数据的卷积,其可以通过相同的变换加上标度因子来恢复。
Figure 594627DEST_PATH_IMAGE013
其中
Figure 635396DEST_PATH_IMAGE014
Haar变换基本上是平均化和差分操作。当递归地应用时,使用分级四叉树布局(如在图7中示出的),Haar变换集中数据中的低频分量,从而使得它特别适合于轻量位组装压缩法。
Haar变换可以直接用于对分级的每小片平均值编码。遗憾地,Haar变换无法用于对分级的每小片最大或最小值编码。为了该目的,可在一些实施例中使用最大和最小变换,其使Haar变换的结构扩展。可以如下那样在2×2数据网格
Figure 201506DEST_PATH_IMAGE015
上进行2D最大变换来产生新的数据网格
Figure 503174DEST_PATH_IMAGE016
1. 找到最大值
Figure 863749DEST_PATH_IMAGE017
2. 交换x'00与x00之间的位置来确保x'00在新的网格
Figure 188551DEST_PATH_IMAGE018
的左上角处。例如,如果x'00=x01,交换x01与x00之间的位置使得
Figure 558352DEST_PATH_IMAGE019
3. 来自最大值
Figure 448948DEST_PATH_IMAGE020
的差 = 
Figure 980423DEST_PATH_IMAGE021
4. 将x'00的原始位置位(bit)级联至X11。例如,如果x'00=x01,将二进制数“01” 级联到X11
逆最大变换是简单的:
1. 从X11提取x'00的原始位置二进制数“ij”。
2. 还原值
3. 通过交换x'00与x'ij而还原位置。
最大变换基本上是最大化和差分操作。当使用图7中相同的分级结构而递归地应用时,最大变换将数据中的低频分量集中并且适合于轻量位组装压缩法。
该最大变换可以通过略微修改最大化和差分操作而容易地改为最小变换,其同样受益于统一的分级架构。可以如下那样在2×2数据网格上进行2D最小变换来产生新的数据网格
Figure 914378DEST_PATH_IMAGE016
1. 找到最小值
Figure 820017DEST_PATH_IMAGE017
2. 交换x'00与x00之间的位置来确保x'00在新的网格
Figure 916149DEST_PATH_IMAGE018
的左上角处。例如,如果x'00=x01,交换x01与x00之间的位置使得
Figure 627753DEST_PATH_IMAGE019
3. 来自最小值
Figure 227362DEST_PATH_IMAGE023
的差=
Figure 366219DEST_PATH_IMAGE024
4. 将x'00的原始位置位级联到X11。例如,如果x'00=x01,将二进制数“01”级联到X11
逆最小变换是简单的:
1. 从X11提取x'00的原始位置二进制数“ij”。
2. 还原值
Figure 949647DEST_PATH_IMAGE022
3. 通过交换x'00与x'ij而还原位置。
四叉树单元是4阶的Haar、最大或最小变换的结果,其对16×16 2D数据网格的4个LOD编码。假设每数据条目具有32位来覆盖高度值的范围并且利用压缩,四叉树单元的大小不超过1千字节。这接近网络传输的最佳大小,因为网络包的典型大小比1千字节高一点。
四叉树的多层分级结构由下而上构造,如在图6中图示的。低层的所有四叉树独立地由递归Haar、最大或最小变换来编码。每16×16四叉树组合在一起并且它们的根节点值用作输入来对它们的父代四叉树编码。注意子代四叉树的根节点值在它们的父代四叉树中复制并且这给出了两个益处。首先,在检索单个数据点时不超出一个四叉树需要被编码。其次,不需要存储具有统一数据的四叉树,因为值可以从它的父代四叉树中检索。每个四叉树包含这样的信息,其指示它的子代四叉树中的每个是否存在并且如果是则将其数据存储在硬盘上。这避免不必要的数据提取并且在运行时的硬盘寻道最小化并且加速硬盘I/O。
多层四叉树分级结构能定标成任何数量的LOD。为了对每小片平均、最大和最小值编码,四叉树分级结构的网格与离散LOD网格模式对准,如在图5中示出的。在一个实施例中,两层四叉树涵盖每小片平均、最大和最小数据的8个离散LOD。层的数量可以增加来匹配任何给定数量的离散LOD。
为了对详细拓扑数据编码用于位移绘图,四叉树分级结构从顶层对应于两个半球的两个四叉树开始并且递归地生成子代四叉树直到涵盖原始数据的最高分辨率。在一个实施例中,使用5层四叉树(等同于20个LOD),来涵盖来自NASA的ASTER全球数字高度图(GDEM),其在空间位点中具有30m分辨率以及在高度中具有1m分辨率。在一个实施例中,注意该四叉树分级结构的网格未与离散LOD网格模型对准。这设计成利用四叉树分级结构对异构分辨率的数据具有内在可标度性,因为四叉树的任何子集可以容易地被具有不同分辨率的不同数据的四叉树所取代。这特别有用,因为对例如地球等行星的拓扑数据通常对于不同的区域达到不同的分辨率。
一旦构造四叉树分级,起源于共同的祖辈四叉树的每3层(或在每小片值编码的情况下,是最大数量的层)的四叉树被聚类。从集群中的所有四叉树收集统计资料来计算位长度表,其记录集群中所有四叉树的16×16数据条目中的每个所需要的最大数量的位。集群中的所有四叉树然后根据所得的位长度表通过位组装来压缩并且存储在文件中。位长度表存储在集群的根四叉树中用于数据检索期间的解压。
四叉树分级结构的离线构造流水线在图5中示出。原始GDEM文件被传递到Haar变换70a。原始GDEM文件还传递到最小变换70b和最大变换70c。然后,在每个情况下,在框72进行位组装来产生适合的文件76。为了对每小片平均、最小和最大值编码,从原始GDEM文件加载的数据设置成与离散层次细节网格模型对准来产生与离散层次细节对准的四叉树分级结构。为了对详细的拓扑数据编码,从原始GDEM文件加载的数据可与或可不与离散层次细节网格模型对准。
3层的选择在经验上确定为使位组装压缩比最大化与使位长度表的存储最小化之间的权衡。提高压缩比而不明显增加位长度表存储的更好的方法将是在整个四叉树分级结构上进行自适应聚类来提取最有代表性的位长度样式用于位组装。
为了保证行星渲染的实时性能,服务器-客户端分区系统用于运行时的异步数据提取,以及它的流水线(在图8中示出)。
当启动客户端40时,初始提取(图2中的块13)向服务器52发送查询来加载顶层的最大、最小和平均以及数据四叉树分级结构,其如之前描述的那样编码。
在服务器52侧,一组服务器高速缓存管理线程93监听来自客户端的查询88。每当接收查询时,服务器高速缓存管理线程首先检查(菱形80)服务器高速缓存62。如果被请求的四叉树已经在高速缓存中,它连同它对应的位长度表一起装配(框86)成网络数据包90并且经由网络50发送给客户端40。否则,服务器高速缓存管理线程基于从它的高速缓存父代四叉树可获得的信息来定位四叉树并且从硬盘92来加载它(框82)。然后装配四叉树(框86)并且将其发送给客户端40。编码的四叉树的副本存储(框84)在服务器高速缓存62中用于在下一次查询相同数据时快速检索。
在渲染客户端40的处理器上,存在两组线程,几何处理线程94和客户端高速缓存管理线程151。每当从服务器接收数据包90时,全局高速缓存管理线程从包提取编码的四叉树并且基于伴随四叉树一起的位长度表而拆解(框150)它的数据位。拆解的四叉树然后存储(框152)在全局高速缓存38b中。
每当在几何处理期间需要高度数据时,无论是每小片最大、最小、平均值还是细节数据值,几何处理线程94确定数据的地理位点(即,经度和维度)和分辨率154并且从它的本地高速缓存38a提取对应的原始数据四叉树。如果它们可用,进行三线性插值156来计算几何处理所需要的实际值。如果在菱形158处的检查确定被请求的四叉树不在本地高速缓存中,几何处理线程检查(菱形160)全局高速缓存38b。如果它可用,对来自全局高速缓存的拆解的四叉树应用逆Haar、最大或最小变换(框162)并且将四叉树原始数据的4个LOD存储(框164)在线程的本地高速缓存38a中。如果被请求的四叉树不在全局高速缓存中,将查询166发送到服务器52。同时,全局高速缓存中具有最高分辨率的最佳可用四叉树被检索(框168)、逆变换(框162)和复制(框164)到线程的本地高速缓存38a,并且另外的几何处理继续针对所得的原始数据。
保持数据被编码在服务器上并且在客户端的不同阶段以分布式方式解码的原因是使存储保持尽可能的紧凑同时使运行时间计算成本最小化。当客户端上的全局高速缓存被多个线程共享时,锁定对于防止竞赛情形是必需的,这是为什么每线程本地高速缓存用于缓解锁定竞争问题的原因。每线程本地高速缓存层与数据分片(data tiling)一起提供了减少对系统存储器的访问频率并且提高CPU上的硬件高速缓存效率的额外益处。为了利用四叉树分级结构,如在图6中示出的,每当请求四叉树并且将其高速缓存时,也检索并且高速缓存它所有的祖辈四叉树。这加速附近四叉树的文件信息、存在信息和位长度表的检索,因为在相邻区域中存在需要数据的高度变化。
服务器可以被服务器机器云所取代,其中编码的高度数据以随机分布的方式存储在服务器机器中的每个上来加速数据检索期间的网络响应。预提取机构可以基于来自鼠标和键盘输入的用户交互而添加到系统来进一步提高数据检索速度。上文描述的压缩和解压算法和数据结构可以应用于任何大的2D数据集(例如地形纹理数据)用于实时检索。
在一些实施例中,在CPU中进行上文描述的几何处理。在一个实施例中,可使用常规的技术在图形处理单元(GPU)中进行照亮和明暗化。
在图9中示出的计算机系统130可包括硬驱动器134和可移动介质136,其通过总线104而耦合于芯片集核逻辑110。键盘和鼠标120或其他常规部件可经由总线108耦合于芯片集核逻辑。在一个实施例中,核逻辑可经由总线105耦合于图形处理器112,并且耦合于主或主机处理器100。在一些实施例中,主机处理器可具有多线程化、单指令多数据(SIMD)和双倍精度、更广的先进向量扩充(AVX)能力。在一个实施例中,主机处理器实现本文描述的几何处理。在另一个实施例中,图形处理器可与主机处理器集成。图形处理器112还可通过总线106而耦合于帧缓冲器114。该帧缓冲器114可通过总线107而耦合于显示屏118。在一个实施例中,图形处理器112可以是使用单指令多数据(SIMD)架构的多线程、多核并行处理器。在一个实施例中,图形处理器可用于明暗化和照亮。
在软件实现的情况下,相关代码139可存储在任何适合的半导体、磁或光存储器中,其包括主存储器132或图形处理器内任何可用存储器。从而,在一个实施例中,用于进行图2和8的序列的代码可存储在非暂时性机器或计算机可读介质中,例如存储器132或图形处理器112,并且在一个实施例中可由处理器100或图形处理器112执行。
图2和8是流程图。在一些实施例中,在这些流程图中描绘的序列可在硬件、软件或固件中实现。在软件实施例中,例如半导体存储器、磁存储器或光存储器等非暂时性计算机可读介质可用于存储指令并且可由处理器执行来实现在图2和8中示出的序列。
本文描述的图形处理技术可在各种硬件架构中实现。例如,图形功能性可集成在芯片集内。备选地,可使用离散图形处理器。作为再另一个实施例,图形功能可由通用处理器(其包括多核处理器)实现。
整个说明书中对“一个实施例”或“实施例”的引用意指连同实施例描述的特定特征、结构或特性包括在包含在本发明内的至少一个实现中。从而,短语“一个实施例”或“在实施例中”的出现不一定指相同的实施例。此外,特定特征、结构或特性可采用除图示的特定实施例外的其他适合的形式而设立并且所有这样的形式可包含在本申请的权利要求内。
尽管已经关于有限数量的实施例描述本发明,本领域内技术人员将意识到从其中的许多修改和改动。规定附上的权利要求涵盖所有这样的修改和改动,它们落入本发明的真正精神和范围内。

Claims (30)

1. 一种方法,包括:
提供多个可选择的网格拓扑,所述多个可选择的网格拓扑具有不同层次的细节,每个网格拓扑由邻接面组成;并且
启用选择的网格拓扑的面的连续层次的细节镶嵌。
2. 如权利要求1所述的方法,其包括对网格拓扑中不同位点和层次的细节的几何数据启用随机访问。
3. 如权利要求2所述的方法,其包括将所述几何数据组织在四叉树中,每个四叉树包括小于一千字节的数据。
4. 如权利要求3所述的方法,其包括从底层向上地从所述四叉树建立分层四叉树数据结构,每个相继更高的父代层由之前的子代层的根节点形成。
5. 如权利要求4所述的方法,其包括从上而下地访问所述结构。
6. 如权利要求5所述的方法,其包括在所述四叉树中放入关于其子代四叉树的信息。
7. 如权利要求1所述的方法,其包括通过将查看距离、查看角、平坦度误差和视口大小组合而计算镶嵌分辨率。
8. 如权利要求7所述的方法,其包括使用球形逼近误差和拓扑不平整度误差来计算平坦度误差。
9. 如权利要求1所述的方法,其包括使用自适应聚类来提取代表性位长度表用于位组装压缩。
10. 如权利要求9所述的方法,其包括将分级Haar变换应用于分级最大和最小变换并且因此使用统一的四叉树分级数据结构用于数据压缩/解压。
11. 一种非暂时性计算机可读介质,其存储指令来使计算机能够执行下列步骤:
选择处于不同层次的细节的多个网格拓扑中的一个;以及
随机访问在网格拓扑中不同位点和层次的细节的几何数据。
12. 如权利要求11所述的介质,其进一步存储指令来用于:
提供具有不同层次的细节的多个可选择的网格拓扑,每个网格拓扑由邻接面组成,以及
启用选择的网格拓扑的面的连续层次的细节镶嵌。
13. 如权利要求12所述的介质,其进一步存储指令以用于:
将所述几何数据组织在四叉树中,每个四叉树包括小于一千字节的数据。
14. 如权利要求13所述的介质,其进一步存储指令以用于:
从底层向上地从所述四叉树建立分层四叉树数据结构,每个相继更高的父代层由之前的子代层的根节点形成。
15. 如权利要求14所述的介质,其进一步存储指令以用于:
从上而下地访问所述结构。
16. 如权利要求15所述的介质,其进一步存储指令以用于:
在所述四叉树中放入关于其子代四叉树的信息。
17. 如权利要求11所述的介质,其进一步存储指令以用于:
通过将查看距离、查看角、平坦度误差和视口大小组合而计算镶嵌分辨率。
18. 如权利要求17所述的介质,其进一步存储指令以用于:
使用球形逼近误差和拓扑不平整度误差来计算平坦度误差。
19. 如权利要求11所述的介质,其进一步存储指令以用于:
使用自适应聚类来提取代表性位长度表用于位组装压缩。
20. 如权利要求19所述的介质,其进一步存储指令以用于:
将分级Haar变换应用于分级最大和最小变换并且因此使用统一的四叉树分级数据结构用于数据压缩/解压。
21. 一种设备,包括:
处理器,用于从底层四叉树向上地建立分层四叉树数据结构,每个相继更高的父代层由之前的子代层的根节点形成;以及
存储装置,其耦合于所述处理器。
22. 如权利要求21所述的设备,所述处理器用于提供具有不同层次的细节的多个可选择的网格拓扑,每个网格拓扑由邻接面组成,以及启用选择的网格拓扑的面的连续层次的细节镶嵌。
23. 如权利要求22所述的设备,所述处理器用于启用对网格拓扑中不同位点和层次的细节的几何数据的随机访问。
24. 如权利要求23所述的设备,所述处理器用于将所述几何数据组织在四叉树中,所述四叉树包括小于一千字节的数据。
25. 如权利要求21所述的设备,所述处理器用于从上而下地访问所述结构。
26. 如权利要求26所述的设备,所述处理器用于在所述四叉树中加载关于其子代四叉树的信息。
27. 如权利要求22所述的设备,所述处理器用于通过将查看距离、查看角、平坦度误差和视口大小组合而计算镶嵌分辨率。
28. 如权利要求27所述的设备,所述处理器用于使用球形逼近误差和拓扑不平整度误差来计算平坦度误差。
29. 如权利要求22所述的设备,所述处理器用于使用自适应聚类来提取代表性位长度表用于位组装压缩。
30. 如权利要求29所述的设备,所述处理器用于将分级Haar变换应用于分级最大和最小变换并且因此使用统一的四叉树分级数据结构用于数据压缩/解压。
CN201180069286.3A 2011-01-14 2011-12-29 行星尺度物体渲染 Expired - Fee Related CN103403769B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/007,161 US9165403B2 (en) 2011-01-14 2011-01-14 Planetary scale object rendering
US13/007161 2011-01-14
PCT/US2011/067958 WO2012096790A2 (en) 2011-01-14 2011-12-29 Planetary scale object rendering

Publications (2)

Publication Number Publication Date
CN103403769A true CN103403769A (zh) 2013-11-20
CN103403769B CN103403769B (zh) 2016-06-15

Family

ID=46490434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180069286.3A Expired - Fee Related CN103403769B (zh) 2011-01-14 2011-12-29 行星尺度物体渲染

Country Status (4)

Country Link
US (1) US9165403B2 (zh)
CN (1) CN103403769B (zh)
TW (1) TWI502547B (zh)
WO (1) WO2012096790A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903295A (zh) * 2014-04-04 2014-07-02 四川川大智胜软件股份有限公司 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN107735815A (zh) * 2015-06-26 2018-02-23 电子艺界有限公司 简化具有冗余背部的小网格组件
CN111210498A (zh) * 2018-11-02 2020-05-29 辉达公司 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN113656514A (zh) * 2021-08-12 2021-11-16 煤炭科学研究总院 矿山三维模型可视化方法和装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070023987A1 (en) * 2005-05-23 2007-02-01 Kling Daniel H Folding methods, structures and apparatuses
US9098941B2 (en) * 2012-01-23 2015-08-04 Ayasdi, Inc. Systems and methods for graphical layout
US8830254B2 (en) 2012-01-24 2014-09-09 Ayasdi, Inc. Systems and methods for graph rendering
CN103544727B (zh) * 2013-06-26 2017-02-15 Tcl集团股份有限公司 一种基于预测分支的场景渲染优化方法、系统和移动终端
KR102104057B1 (ko) * 2013-07-09 2020-04-23 삼성전자 주식회사 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들
KR102053351B1 (ko) 2013-08-12 2019-12-06 삼성전자주식회사 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들
KR101555426B1 (ko) * 2014-02-07 2015-09-25 고려대학교 산학협력단 지형 렌더링 방법 및 장치
GB2526359B (en) * 2014-05-23 2020-07-22 Advanced Risc Mach Ltd Graphics processing systems
KR102313020B1 (ko) 2014-11-27 2021-10-15 삼성전자주식회사 그래픽스 프로세싱 유닛과 이를 포함하는 장치
ITUB20152024A1 (it) * 2015-07-08 2017-01-08 Nivi Group Spa Motore grafico per la creazione ed esecuzione di applicazioni con interfacce multisensoriali
US10706612B2 (en) * 2017-04-01 2020-07-07 Intel Corporation Tile-based immediate mode rendering with early hierarchical-z
US10373365B2 (en) 2017-04-10 2019-08-06 Intel Corporation Topology shader technology
JP7282532B2 (ja) * 2019-01-24 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム
CN111507926B (zh) * 2020-04-30 2023-12-12 九江精密测试技术研究所 一种基于MaxLOD Map的四叉树地形裂缝修补方法
KR102272569B1 (ko) * 2020-05-26 2021-07-05 한국과학기술원 웨이블릿 기반 변형된 거대 메쉬 데이터의 점진적 고속 재압축 방법 및 그 시스템
CN111899323B (zh) * 2020-06-30 2023-03-24 上海孪数科技有限公司 三维地球的绘制方法及装置
JP2022073247A (ja) * 2020-10-30 2022-05-17 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602550A (en) * 1995-06-19 1997-02-11 Bio-Logic Systems Corp. Apparatus and method for lossless waveform data compression
US20020171644A1 (en) * 2001-03-31 2002-11-21 Reshetov Alexander V. Spatial patches for graphics rendering
CN1564203A (zh) * 2004-04-12 2005-01-12 浙江大学 一种分级层次化组装式深度拼图集的快速绘制森林方法
US20090184957A1 (en) * 2008-01-21 2009-07-23 Samsung Electronics Co., Ltd. Method and system for compressing and decoding mesh data with random accessibility in three-dimensional mesh model
US20100013829A1 (en) * 2004-05-07 2010-01-21 TerraMetrics, Inc. Method and system for progressive mesh storage and reconstruction using wavelet-encoded height fields
US20110316854A1 (en) * 2010-06-23 2011-12-29 Bryan Vandrovec Global Visualization Process Terrain Database Builder

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191153A (ja) * 1997-12-26 1999-07-13 Ricoh Co Ltd ウェーブレット変換係数の符号化方法
US6879324B1 (en) 1998-07-14 2005-04-12 Microsoft Corporation Regional progressive meshes
US6373489B1 (en) * 1999-01-12 2002-04-16 Schlumberger Technology Corporation Scalable visualization for interactive geometry modeling
US7139794B2 (en) 2000-12-27 2006-11-21 3-D-V-U Israel (2000) Ltd. System and methods for network image delivery with dynamic viewing frustum optimized for limited bandwidth communication channels
US7225207B1 (en) * 2001-10-10 2007-05-29 Google Inc. Server for geospatially organized flat file data
US7215340B2 (en) * 2002-07-19 2007-05-08 Mitsubishi Electric Research Laboratories, Inc. Object space EWA splatting of point-based 3D models
US7129942B2 (en) * 2002-12-10 2006-10-31 International Business Machines Corporation System and method for performing domain decomposition for multiresolution surface analysis
US7536664B2 (en) * 2004-08-12 2009-05-19 International Business Machines Corporation Physical design system and method
US8884956B2 (en) 2006-08-11 2014-11-11 Siemens Product Lifecycle Management Software Inc. System and method for trimmed surface tessellation
US20090157503A1 (en) * 2007-12-18 2009-06-18 Microsoft Corporation Pyramidal volumes of advertising space
US20100091018A1 (en) * 2008-07-11 2010-04-15 Advanced Micro Devices, Inc. Rendering Detailed Animated Three Dimensional Characters with Coarse Mesh Instancing and Determining Tesselation Levels for Varying Character Crowd Density
US8482560B2 (en) 2008-12-31 2013-07-09 Intel Corporation Image forming techniques
TWI419514B (zh) 2009-02-03 2013-12-11 Inst Information Industry 用於一感測網路之節點裝置、節點數量調整方法及其電腦程式產品
TW201042952A (en) 2009-05-20 2010-12-01 Axiomtek Co Ltd Network device testing system and method thereof
US20110310102A1 (en) * 2010-06-17 2011-12-22 Via Technologies, Inc. Systems and methods for subdividing and storing vertex data
US8463586B2 (en) * 2010-06-22 2013-06-11 Saudi Arabian Oil Company Machine, program product, and computer-implemented method to simulate reservoirs as 2.5D unstructured grids

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602550A (en) * 1995-06-19 1997-02-11 Bio-Logic Systems Corp. Apparatus and method for lossless waveform data compression
US20020171644A1 (en) * 2001-03-31 2002-11-21 Reshetov Alexander V. Spatial patches for graphics rendering
CN1564203A (zh) * 2004-04-12 2005-01-12 浙江大学 一种分级层次化组装式深度拼图集的快速绘制森林方法
US20100013829A1 (en) * 2004-05-07 2010-01-21 TerraMetrics, Inc. Method and system for progressive mesh storage and reconstruction using wavelet-encoded height fields
US20090184957A1 (en) * 2008-01-21 2009-07-23 Samsung Electronics Co., Ltd. Method and system for compressing and decoding mesh data with random accessibility in three-dimensional mesh model
US20110316854A1 (en) * 2010-06-23 2011-12-29 Bryan Vandrovec Global Visualization Process Terrain Database Builder

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴亚东等: "《基于连续细节层次的地形动态生成技术》", 《北京理工大学学报》, vol. 20, no. 5, 31 October 2010 (2010-10-31), pages 602 - 606 *
张燕燕等: "《基于提升小波的大地形累进压缩及实时渲染》", 《计算机辅助设计与图形学学报》, vol. 22, no. 8, 31 August 2010 (2010-08-31), pages 1352 - 1359 *
王广君等: "《基于Harr小波的地形匹配技术》", 《电波科学学报》, vol. 17, no. 3, 30 June 2002 (2002-06-30), pages 240 - 244 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903295A (zh) * 2014-04-04 2014-07-02 四川川大智胜软件股份有限公司 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN103903295B (zh) * 2014-04-04 2017-01-11 四川川大智胜软件股份有限公司 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN107735815A (zh) * 2015-06-26 2018-02-23 电子艺界有限公司 简化具有冗余背部的小网格组件
CN107735815B (zh) * 2015-06-26 2021-10-29 电子艺界有限公司 简化具有冗余背部的小网格组件
CN111210498A (zh) * 2018-11-02 2020-05-29 辉达公司 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN111210498B (zh) * 2018-11-02 2024-03-01 辉达公司 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN113656514A (zh) * 2021-08-12 2021-11-16 煤炭科学研究总院 矿山三维模型可视化方法和装置

Also Published As

Publication number Publication date
TW201301196A (zh) 2013-01-01
WO2012096790A2 (en) 2012-07-19
CN103403769B (zh) 2016-06-15
US20120182298A1 (en) 2012-07-19
TWI502547B (zh) 2015-10-01
US9165403B2 (en) 2015-10-20
WO2012096790A3 (en) 2012-10-11

Similar Documents

Publication Publication Date Title
CN103403769A (zh) 行星尺度物体渲染
Pajarola et al. Survey of semi-regular multiresolution models for interactive terrain rendering
US8773422B1 (en) System, method, and computer program product for grouping linearly ordered primitives
Isenburg et al. Generating raster DEM from mass points via TIN streaming
CN105405166A (zh) 一种基于线性四叉树的lod模型生成方法
Li et al. Visualizing dynamic geosciences phenomena using an octree-based view-dependent LOD strategy within virtual globes
Gobbetti et al. Technical strategies for massive model visualization
CN111028335B (zh) 一种基于深度学习的点云数据的分块面片重建方法
CN108717729A (zh) 一种面向虚拟地球的地形多尺度tin在线可视化方法
Dietrich et al. Massive-model rendering techniques: a tutorial
CN103268221A (zh) 一种基于web技术的气象数据体三维显示方法及装置
Faust et al. Real-time global data model for the digital earth
Tabik et al. High-performance three-horizon composition algorithm for large-scale terrains
Kang et al. Efficient randomized hierarchy construction for interactive visualization of large scale point clouds
Ma et al. An integrated VR–GIS navigation platform for city/region simulation
Guo et al. A 3D Surface Reconstruction Method for Large‐Scale Point Cloud Data
Shalyapin et al. Fast simulations of extragalactic microlensing
Fu et al. A transparently scalable visualization architecture for exploring the universe
Kim et al. Efficient encoding and decoding extended geocodes for massive point cloud data
JPH11353496A (ja) 光線追跡のための交点探索装置
Koca et al. A hybrid representation for modeling, interactive editing, and real-time visualization of terrains with volumetric features
Masood et al. A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes
Zhang et al. Effective solutions to a global 3D visual system in networking environments
Fellegara et al. Efficient representation and analysis of triangulated terrains
Legrand et al. Morton integrals for high speed geometry simplification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160615

Termination date: 20211229

CF01 Termination of patent right due to non-payment of annual fee