CN117115348A - 三维模型的渲染方法、装置和计算机可读存储介质 - Google Patents

三维模型的渲染方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN117115348A
CN117115348A CN202311080703.5A CN202311080703A CN117115348A CN 117115348 A CN117115348 A CN 117115348A CN 202311080703 A CN202311080703 A CN 202311080703A CN 117115348 A CN117115348 A CN 117115348A
Authority
CN
China
Prior art keywords
tile
rendering
rendered
tile data
tiles
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.)
Pending
Application number
CN202311080703.5A
Other languages
English (en)
Inventor
刘姗姗
刘倩
程秀菊
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.)
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Original Assignee
China Telecom Technology Innovation Center
China Telecom Corp Ltd
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 China Telecom Technology Innovation Center, China Telecom Corp Ltd filed Critical China Telecom Technology Innovation Center
Priority to CN202311080703.5A priority Critical patent/CN117115348A/zh
Publication of CN117115348A publication Critical patent/CN117115348A/zh
Pending legal-status Critical Current

Links

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/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

本公开涉及一种三维模型的渲染方法、装置和计算机可读存储介质,涉及计算机领域。该三维模型的渲染方法包括:获取三维模型的多个待渲染瓦片的瓦片数据集,其中,瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;预测渲染时的网络质量指标;根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;根据选取结果,对多个待渲染瓦片进行渲染。该三维模型的渲染方法能够在不同的网络质量情况下,保证三维模型的渲染时间和渲染质量,提升了三维模型的渲染效果。

Description

三维模型的渲染方法、装置和计算机可读存储介质
技术领域
本公开涉及计算机领域,特别涉及一种三维模型的渲染方法、装置和计算机可读存储介质。
背景技术
随着三维模型的复杂度、精细度越来越高,模型的体量也越来越大,实现其高效且流畅的可视化成为一个难题。当前通常采用基于3DTiles数据规范的多细节层次(Levelsof Detail,简称:LOD)方式对三维模型进行轻量化处理,将大体量的三维模型的数据按照瓦片形式组织。在渲染三维模型时,能够按需选取需要渲染的瓦片进行渲染,并且能够节约渲染时间,从而提升可视化体验。
发明内容
发明人研究发现,在通过LOD方式对三维模型进行轻量化处理时,根据3D Tiles数据规范将三维模型的数据组织为瓦片形式的划分标准不同,可能会造成瓦片的体积大小不均匀,例如出现单个瓦片体量过大,从而影响三维模型的渲染效果。另外,不同网络环境下,网络质量的好坏也会影响三维模型的渲染效果。
本公开所要解决的一个技术问题是:如何提升三维模型的渲染效果。
根据本公开的一些实施例,提供了一种三维模型的渲染方法,包括:获取三维模型的多个待渲染瓦片的瓦片数据集,其中,瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;预测渲染时的网络质量指标;根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;根据选取结果,对多个待渲染瓦片进行渲染。
在一些实施例中根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据包括:根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,确定每个瓦片数据的渲染质量指标,其中,渲染质量包括精细度、流畅度中的至少一个以及渲染时间;根据每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据。
在一些实施例中,根据每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据包括:以所有待渲染瓦片的整体渲染质量指标最大化为目标,为每个待渲染瓦片选取一个瓦片数据,其中,所有待渲染瓦片的整体渲染质量指标根据为每个待渲染瓦片选取的瓦片数据的渲染质量指标变化而变化。
在一些实施例中,整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定,其中,整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定;整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定;整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定。
在一些实施例中,整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定包括:通过对整体精细度、整体流畅度中的至少一个以及整体渲染时间的加权和确定整体渲染质量指标。
在一些实施例中,整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的精细度;根据为所有待渲染瓦片选取的瓦片数据的精细度的和与所有原始瓦片数据的精细度的和的比值,确定整体精细度。
在一些实施例中,整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的流畅度;根据为所有待渲染瓦片选取的瓦片数据的流畅度的和与所有原始瓦片数据的流畅度的和的比值,确定整体流畅度。
在一些实施例中,整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的渲染时间;根据为所有待渲染瓦片选取的瓦片数据的渲染时间的和与所有原始瓦片数据的渲染时间的和的比值,确定整体渲染时间。
在一些实施例中,精细度通过瓦片数据中的顶点数量、边数量、面数量、三角形数量中的至少一项确定;流畅度通过瓦片数据的渲染帧率确定;渲染时间通过网络质量指标和瓦片数据的数据量确定。
在一些实施例中,预测渲染时的网络质量指标包括:确定渲染前多个周期的网络质量指标的平均值;将渲染前一个周期的网络质量指标和平均值的加权和,预测为渲染时的网络质量指标。
在一些实施例中,获取三维模型的多个待渲染瓦片的瓦片数据集包括:根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片以及对应的多个瓦片数据,其中,索引树的每个节点对应一个瓦片的压缩级别不同的多个瓦片数据;根据每个待渲染瓦片的多个瓦片数据,获得多个待渲染瓦片的瓦片数据集。
在一些实施例中,根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片包括:根据索引树中的每个节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片。
在一些实施例中,根据索引树中的节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片对应的节点包括:按照索引树的根节点到子节点的层级顺序,依次将每个节点作为当前节点;确定当前节点对应的瓦片是否在视椎体范围内;在当前节点对应的瓦片在视椎体范围内的情况下,确定当前节点是否有子节点;在当前节点有子节点的情况下,确定子节点的屏幕空间误差是否不大于最大屏幕空间误差;在子节点的屏幕空间误差不大于最大屏幕空间误差的情况下,将子节点确定为待渲染瓦片对应的节点。
在一些实施例中,该三维模型的渲染方法还包括:在当前节点没有子节点的情况下,将当前节点确定为待渲染瓦片对应的节点。
在一些实施例中,该三维模型的渲染方法还包括:在子节点的屏幕空间误差大于最大屏幕空间误差的情况下,将子节点的子节点更新为当前节点。
在一些实施例中,该三维模型的渲染方法还包括:将三维模型的所有瓦片的瓦片数据进行不同级别的压缩;将所有瓦片中的每个瓦片对应的多个瓦片数据,作为一个节点,以构建索引树,其中,索引树中的节点之间的连接通过瓦片数据确定。
在一些实施例中,该三维模型的渲染方法还包括:显示多个待渲染瓦片的渲染效果。
根据本公开的另一些实施例,提供了一种三维模型的渲染装置,包括:获取模块,被配置为获取三维模型的多个待渲染瓦片的瓦片数据集,其中,瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;预测模块,被配置为预测渲染时的网络质量指标;选取模块,被配置为根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;渲染模块,被配置为根据选取结果,对多个待渲染瓦片进行渲染。
在一些实施例中,该三维模型的渲染装置还包括:显示模块,被配置为显示三维模型的渲染结果。
根据本公开的又一些实施例,提供了一种三维模型的渲染装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前所述的三维模型的渲染方法。
根据本公开的再一些实施例,提供了一种计算机可读存储介质,其上存储由计算机程序,其中,该程序被处理器执行时实现如前所述的三维模型的渲染方法的步骤。
本公开的实施例在进行三维模型的渲染时,根据网络质量指标,从待渲染瓦片对应的压缩级别不同的多个瓦片数据的选取一个瓦片数据进行渲染,从而能够在不同的网络质量情况下,保证三维模型的渲染时间和渲染质量,减少了在单个瓦片数据体量过大而在网络质量不好时难以渲染的问题,提升了三维模型的渲染效果。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的三维模型的渲染方法的流程示意图。
图2示出本公开一些实施例的确定待渲染瓦片的流程示意图。
图3示出本公开一些实施例的索引树的结构示意图。
图4示出本公开一些实施例的三维模型的渲染过程的流程示意图。
图5示出本公开一些实施例的三维模型的渲染装置的结构示意图。
图6示出本公开另一些实施例的三维模型的渲染装置的结构示意图。
图7示出本公开又一些实施例的三维模型的渲染装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
针对三维模型体量过大的问题,采用LOD方式进行轻量化处理。在LOD方式中对三维模型进行渲染时,将三维模型切割成多个瓦片,也就是将三维模型对应的数据进行瓦片化处理,之后下载并渲染处于视锥体范围内的瓦片,即可完成三维模型的渲染。相比于一次性下载三维模型的全部数据进行渲染,通过瓦片化处理对网络质量要求较低,还能节约渲染时间。
图1示出本公开的一些实施例的三维模型的渲染方法的流程示意图。如图1所示,该三维模型的渲染方法步骤S102~S108。
在步骤S102中,获取三维模型的多个待渲染瓦片的瓦片数据集,其中,瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据。
例如可以利用CesiumLab数据处理平台对三维模型对应的数据进行瓦片化处理,生成符合3D Tiles数据规范的数据,这些数据中包括瓦片索引文件和瓦片文件。根据瓦片索引文件从瓦片文件中选取与需要渲染的瓦片对应的瓦片文件,下载并进行渲染。
瓦片索引文件包括索引树,用于查询瓦片信息。索引树根据瓦片文件包括的瓦片数据生成,例如索引树中的一个节点对应一个瓦片,节点之间的连接关系通过瓦片之间的关系确定。在对三维模型对应的数据进行瓦片化处理时,可以采用多种数据结构形式(例如四叉树、八叉树、k维树等)来构建索引树,因此瓦片划分标准不同,从而会导致瓦片的体积大小不均匀,出现由于单个瓦片体量过大而导致在网络质量不佳时难以渲染的问题。
基于上述问题,本公开在获得三维模型的瓦片数据后,例如通过Draco压缩方法对其进行不同级别的压缩处理,以获得不同粒度的瓦片数据,也就是每个瓦片对应粒度不同的多个瓦片数据。根据网络质量情况,在对瓦片进行渲染时,选择合适粒度的瓦片数据用于渲染,从而能够保证三维模型的渲染体验,提升三维模型的渲染效果。
在一些实施例中,可以将经不同级别压缩后的多个瓦片数据添加到三维模型的原始瓦片数据的索引树中,也就是索引树中的每个节点对应一个瓦片的多个瓦片数据。
在一些实施例中,将三维模型的所有瓦片的瓦片数据进行不同级别的压缩;将所有瓦片中的每个瓦片对应的多个瓦片数据,作为一个节点,以构建索引树,其中,索引树中的节点之间的连接通过瓦片数据确定。
通过索引树,可以确定需要渲染的瓦片(记为待渲染瓦片),并且能够简捷地获取待渲染瓦片对应的瓦片数据,进行渲染,提升渲染效率。
在一些实施例中,根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片包括:根据索引树中的每个节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片。
在一些实施例中,根据索引树中的节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片对应的节点包括:按照索引树的根节点到子节点的层级顺序,依次将每个节点作为当前节点;确定当前节点对应的瓦片是否在视椎体范围内;在当前节点对应的瓦片在视椎体范围内的情况下,确定当前节点是否有子节点;在当前节点有子节点的情况下,确定子节点的屏幕空间误差是否不大于最大屏幕空间误差;在子节点的屏幕空间误差不大于最大屏幕空间误差的情况下,将子节点确定为待渲染瓦片对应的节点。
在一些实施例中,在当前节点没有子节点的情况下,将当前节点确定为待渲染瓦片对应的节点。
在一些实施例中,在子节点的屏幕空间误差大于最大屏幕空间误差的情况下,将子节点的子节点更新为当前节点。
图2示出本公开一些实施例的确定待渲染瓦片的流程示意图。通过图2描述上述确定待渲染瓦片的过程,如图2所示,确定待渲染瓦片的过程包括步骤S202~S216。
在步骤S202中,将三维模型数据通过瓦片化处理转换为3D Tiles瓦片化格式,即获得瓦片数据。
在步骤S204中,对瓦片数据进行不同级别的压缩,从而获得多种粒度的瓦片数据,并且构建对应多种粒度的瓦片数据的索引树。索引树的结构如图3所示,索引树包括根节点、子节点和叶子节点,叶子节点表示没有子节点的节点。
在步骤206中,根据索引树和瓦片数据,确定待渲染瓦片。对于索引树中的节点,按照从根节点到子节点的顺序依次判断。
在步骤208中,根据当前节点对应的瓦片数据判断当前节点对应的瓦片是否处于视锥体范围内,如果是则执行步骤S210,否则执行步骤S209。
在步骤209中,不将当前节点对应的瓦片确定为待渲染瓦片,即当前节点对应的瓦片不进行渲染。
在步骤210中,判断该当前节点是否有子节点,如果是则执行步骤S212,否则执行步骤S211。
在步骤S211中,将当前节点对应的瓦片确定为待渲染瓦片,进行渲染。
在步骤S212中,判断子节点的屏幕空间误差(SSE)是否大于最大屏幕空间误差(MaxSSE),如果是则执行步骤S211,否则执行步骤S214。
在一些实施例中,屏幕空间误差通过公式 确定,其中,height指屏幕渲染高度,d指观察视点到瓦片的距离,geometricError指空间几何误差,fov指视椎体的角度。最大屏幕空间误差可以根据需要设定。
在步骤S213中,将当前节点对应的瓦片确定为待渲染瓦片,进行渲染。
在步骤S214中,读取子节点的瓦片数据,返回步骤S208。
在步骤S216中,确定三维模型数据渲染是否完成,如果是则结束,否则回到步骤S206。
在确定待渲染瓦片后,通过索引树确定待渲染瓦片对应的所有瓦片数据,记为瓦片数据集。
在一些实施例中,获取三维模型的多个待渲染瓦片的瓦片数据集包括:根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片以及对应的多个瓦片数据,其中,索引树的每个节点对应一个瓦片的压缩级别不同的多个瓦片数据;根据每个待渲染瓦片的多个瓦片数据,获得多个待渲染瓦片的瓦片数据集。
在步骤S104中,预测渲染时的网络质量指标。
通过网络质量指标例如网络带宽衡量网络质量,以为每个待渲染瓦片从其对应的多个瓦片数据中选取瓦片数据进行渲染。网络带宽可以通过瓦片数据传输过程中的数据吞吐量来表示。例如,在网络质量较好时,期望获得较佳的渲染效果,因此可以基于这个目标选取瓦片数据。
在一些实施例中,预测渲染时的网络质量指标包括:确定渲染前多个周期的网络质量指标的平均值;将渲染前一个周期的网络质量指标和平均值的加权和,预测为渲染时的网络质量指标。
在一些实施例中,假设渲染前n个周期内,网络带宽分别为B1,B2,…,Bn,则n个周期的平均网络带宽为则预测渲染时的网络带宽/>其中Bn表示渲染前一个周期的网络带宽,w表示权重。
通过将渲染前一个周期的网络带宽和渲染前多个周期的平均网络带宽的加权和,预测为渲染时的网络带宽能够结合历史网络带宽和最近网络带宽,减少由于环境或系统状态等突发因素的影响,而造成的部分周期的网络带宽的波动对预测结果造成的影响。
在步骤S106中,根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据。
根据网络带宽、瓦片数据的信息,为待渲染瓦片选取最合适的瓦片数据用于渲染,能够提高三维模型的渲染速率,并且还能增大网络带宽的利用率。
在一些实施例中,根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据包括:根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,确定每个瓦片数据的渲染质量指标,其中,渲染质量包括精细度、流畅度中的至少一个以及渲染时间;根据每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据。
在一些实施例中,精细度通过瓦片数据中的顶点数量、边数量、面数量、三角形数量中的至少一项确定。瓦片数据中的顶点数量、边数量、面数量、三角形数量越多,精细度越高。
在一些实施例中,流畅度通过瓦片数据的渲染帧率确定。渲染帧率可以基于历史渲染数据的统计分析得到,例如基于瓦片数据中包含的多边形数量对历史瓦片数据在渲染时的渲染帧率进行统计分析。
在一些实施例中,获取与瓦片数据包含有相同的多边形数量的历史瓦片数据或多边形数量属于同一预设范围的历史瓦片数据;取这些历史瓦片数据在渲染时的渲染帧率的平均值,作为瓦片数据的渲染帧率。在获取历史瓦片数据时,需要基于与进行当前渲染相同的条件,例如,获取进行渲染的同一客户端的历史数据,以保证统计结果的准确有效性。
在一些实施例中,渲染时间通过网络质量指标和瓦片数据的数据量确定。瓦片数据的数据量与瓦片数据的压缩级别有关,压缩级别越大,数据量越小。在网络带宽一定时,瓦片数据的数据量越大,渲染时间越长。
相比于单个维度衡量渲染质量指标,结合精细度、流畅度中的至少一个以及渲染时间的多个维度能够使渲染质量指标更准确,从而使所有待渲染瓦片的整体渲染质量指标更准确,例如在多维度的渲染质量指标指导下,不会一味选取渲染时间最短的瓦片数据,也不会一味选取精细度最高的瓦片数据,能够从整体上把握三维模型的渲染效果。
在一些实施例中,根据每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据包括:以所有待渲染瓦片的整体渲染质量指标最大化为目标,为每个待渲染瓦片选取一个瓦片数据,其中,所有待渲染瓦片的整体渲染质量指标根据为每个待渲染瓦片选取的瓦片数据的渲染质量指标变化而变化。
由于每个瓦片数据的渲染质量指标通过精细度、流畅度中的至少一个以及渲染时间来衡量,因此所有待渲染瓦片的整体渲染质量指标也相应的通过整体精细度、整体流畅度中的至少一个以及整体渲染时间确定。
在一些实施例中,整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定,其中,整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定;整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定;整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定。
在一些实施例中,整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的精细度;根据为所有待渲染瓦片选取的瓦片数据的精细度的和与所有原始瓦片数据的精细度的和的比值,确定整体精细度。
在一些实施例中,整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的流畅度;根据为所有待渲染瓦片选取的瓦片数据的流畅度的和与所有原始瓦片数据的流畅度的和的比值,确定整体流畅度。
在一些实施例中,整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定包括:确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的渲染时间;根据为所有待渲染瓦片选取的瓦片数据的渲染时间的和与所有原始瓦片数据的渲染时间的和的比值,确定整体渲染时间。
在一些实施例中,所述整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定包括:通过对所述整体精细度、所述整体流畅度中的至少一个以及所述整体渲染时间的加权和确定所述整体渲染质量指标。
例如,在一些实施例中,整体渲染质量指标记为Q,精细度和整体精细度分别记为p、P,流畅度和整体流畅度分别记为f、F,渲染时间和整体渲染时间分别记为t和T,待渲染瓦片的个数为m。
那么为m个待渲染瓦片选取瓦片数据时,以Q为最大化目标,例如可以表示为MaxQ=α1P+α2F+α3T,其中α1、α2、α3为权重,并且α123=1。
在以上公式中, 其中pi、fi、ti分别表示为待渲染瓦片i选取的瓦片数据的精细度、流畅度、渲染时间,po、fo、to分别表示为待渲染瓦片i的未经压缩的原始瓦片数据的精细度、流畅度、渲染时间。
在步骤S108中,根据选取结果,对多个待渲染瓦片进行渲染。
在为所有待渲染瓦片选取瓦片数据后,将这些瓦片下载,进行渲染。之后可以进行三维模型中下一批待渲染瓦片的渲染,过程与上述步骤S101~S108类似,直到渲染完三维模型中所有需要渲染的瓦片。
在一些实施例中,三维模型的渲染方法还包括:显示多个待渲染瓦片的渲染结果,以便查看渲染效果,根据需要进行更改等。
图4示出本公开一些实施例的三维模型的渲染过程的流程示意图。如图4所示,在对三维模型进行渲染前,首先进行数据预处理过程,将三维模型数据进行瓦片化处理,获得符合3D Tiles数据规范的瓦片数据,之后对这些瓦片数据进行不同级别的压缩,获得多粒度的3D Tiles瓦片数据。
之后将三维模型经数据预处理后获得的数据发布给数据服务器,以供Web服务器读取和调度。在进行渲染时,客户端发起请求,请求获取渲染三维模型所对应的瓦片索引文件和瓦片文件。客户端在收到瓦片索引文件后,解析瓦片索引文件,获得需要渲染的瓦片信息,包括瓦片的包围盒、空间几何误差、渲染方式、瓦片的子节点的包围盒、空间几何误差、渲染方式以及索引URI等。根据瓦片索引文件依次读取瓦片文件,进行数据调度。数据调度如前述过程包括预测网络带宽,选择待渲染瓦片及其瓦片数据。
最后基于选择的待渲染瓦片以及瓦片数据进行渲染,渲染过程可以在各种终端服务器上执行。
上述实施例在进行三维模型的渲染时,根据网络质量指标,从待渲染瓦片对应的压缩级别不同的多个瓦片数据的选取一个瓦片数据用于待渲染瓦片的渲染,从而能够在不同的网络质量情况下,保证三维模型的渲染时间和渲染质量,减少了在单个瓦片数据体量过大而在网络质量不好时难以渲染的问题,提升了三维模型的渲染效果。
图5示出本公开一些实施例的三维模型的渲染装置的结构示意图。
如图5所示,三维模型的渲染装置50包括:
获取模块510,被配置为获取三维模型的多个待渲染瓦片的瓦片数据集,其中,瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;
预测模块520,被配置为预测渲染时的网络质量指标;
选取模块530,被配置为根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;
渲染模块540,被配置为根据选取结果,对多个待渲染瓦片进行渲染。
在一些实施例中,选取模块530被配置为根据网络质量指标、瓦片数据集中的每个瓦片数据的信息,确定每个瓦片数据的渲染质量指标,其中,渲染质量包括精细度、流畅度中的至少一个以及渲染时间;根据每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据。
在一些实施例中,选取模块530被配置为以所有待渲染瓦片的整体渲染质量指标最大化为目标,为每个待渲染瓦片选取一个瓦片数据,其中,所有待渲染瓦片的整体渲染质量指标根据为每个待渲染瓦片选取的瓦片数据的渲染质量指标变化而变化。
在一些实施例中,整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定,其中,整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定;整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定;整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定。
在一些实施例中,选取模块530被配置为通过对整体精细度、整体流畅度中的至少一个以及整体渲染时间的加权和确定整体渲染质量指标。
在一些实施例中,选取模块530被配置为确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的精细度;根据为所有待渲染瓦片选取的瓦片数据的精细度的和与所有原始瓦片数据的精细度的和的比值,确定整体精细度。
在一些实施例中,选取模块530被配置为确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的流畅度;根据为所有待渲染瓦片选取的瓦片数据的流畅度的和与所有原始瓦片数据的流畅度的和的比值,确定整体流畅度。
在一些实施例中,选取模块530被配置为确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的渲染时间;根据为所有待渲染瓦片选取的瓦片数据的渲染时间的和与所有原始瓦片数据的渲染时间的和的比值,确定整体渲染时间。
在一些实施例中,精细度通过瓦片数据中的顶点数量、边数量、面数量、三角形数量中的至少一项确定;流畅度通过瓦片数据的渲染帧率确定;渲染时间通过网络质量指标和瓦片数据的数据量确定。
在一些实施例中,预测模块520被配置为确定渲染前多个周期的网络质量指标的平均值;将渲染前一个周期的网络质量指标和平均值的加权和,预测为渲染时的网络质量指标。
在一些实施例中,获取模块510被配置为根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片以及对应的多个瓦片数据,其中,索引树的每个节点对应一个瓦片的压缩级别不同的多个瓦片数据;根据每个待渲染瓦片的多个瓦片数据,获得多个待渲染瓦片的瓦片数据集。
在一些实施例中,获取模块510被配置为根据索引树中的每个节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片。
在一些实施例中,获取模块510被配置为按照索引树的根节点到子节点的层级顺序,依次将每个节点作为当前节点;确定当前节点对应的瓦片是否在视椎体范围内;在当前节点对应的瓦片在视椎体范围内的情况下,确定当前节点是否有子节点;在当前节点有子节点的情况下,确定子节点的屏幕空间误差是否不大于最大屏幕空间误差;在子节点的屏幕空间误差不大于最大屏幕空间误差的情况下,将子节点确定为待渲染瓦片对应的节点。
在一些实施例中,获取模块510被进一步配置为在当前节点没有子节点的情况下,将当前节点确定为待渲染瓦片对应的节点。
在一些实施例中,获取模块510被进一步配置为在子节点的屏幕空间误差大于最大屏幕空间误差的情况下,将子节点的子节点更新为当前节点。
在一些实施例中,获取模块510被进一步配置为将三维模型的所有瓦片的瓦片数据进行不同级别的压缩;将所有瓦片中的每个瓦片对应的多个瓦片数据,作为一个节点,以构建索引树,其中,索引树中的节点之间的连接通过瓦片数据确定。
在一些实施例中,三维模型的渲染装置50还包括显示模块550,被配置为显示三维模型的渲染结果。
上述实施例在进行三维模型的渲染时,根据网络质量指标,从待渲染瓦片对应的压缩级别不同的多个瓦片数据的选取一个瓦片数据用于待渲染瓦片的渲染,从而能够在不同的网络质量情况下,保证三维模型的渲染时间和渲染质量,减少了在单个瓦片数据体量过大而在网络质量不好时难以渲染的问题,提升了三维模型的渲染效果。
图6示出本公开另一些实施例的三维模型的渲染装置的结构示意图。如图6所示,该实施例的装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行本公开中任意一些实施例中的三维模型的渲染方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图7示出本公开又一些实施例的三维模型的渲染装置的结构示意图。如图7所示,该实施例的装置70包括:存储器710以及处理器720,分别与存储器610以及处理器620类似。还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线660连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口750为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (21)

1.一种三维模型的渲染方法,包括:
获取三维模型的多个待渲染瓦片的瓦片数据集,其中,所述瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;
预测渲染时的网络质量指标;
根据所述网络质量指标、所述瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;
根据选取结果,对所述多个待渲染瓦片进行渲染。
2.根据权利要求1所述的渲染方法,其中,所述根据所述网络质量指标、所述瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据包括:
根据所述网络质量指标、所述瓦片数据集中的每个瓦片数据的信息,确定所述每个瓦片数据的渲染质量指标,其中,所述渲染质量包括精细度、流畅度中的至少一个以及渲染时间;
根据所述每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据。
3.根据权利要求2所述的渲染方法,其中,所述根据所述每个瓦片数据的渲染质量指标,为每个待渲染瓦片选取一个瓦片数据包括:
以所有待渲染瓦片的整体渲染质量指标最大化为目标,为每个待渲染瓦片选取一个瓦片数据,其中,所述所有待渲染瓦片的整体渲染质量指标根据为每个待渲染瓦片选取的瓦片数据的渲染质量指标变化而变化。
4.根据权利要求3所述的渲染方法,其中,所述整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定,其中,
所述整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定;
所述整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定;
所述整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定。
5.根据权利要求4所述的渲染方法,其中,所述整体渲染质量指标根据整体精细度、整体流畅度中的至少一个以及整体渲染时间确定包括:
通过对所述整体精细度、所述整体流畅度中的至少一个以及所述整体渲染时间的加权和确定所述整体渲染质量指标。
6.根据权利要求4所述的渲染方法,其中,所述整体精细度根据为每个待渲染瓦片选取的瓦片数据的精细度确定包括:
确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的精细度;
根据为所有待渲染瓦片选取的瓦片数据的精细度的和与所述所有原始瓦片数据的精细度的和的比值,确定所述整体精细度。
7.根据权利要求4所述的渲染方法,其中,所述整体流畅度根据为每个待渲染瓦片选取的瓦片数据的流畅度确定包括:
确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的流畅度;
根据为所有待渲染瓦片选取的瓦片数据的流畅度的和与所述所有原始瓦片数据的流畅度的和的比值,确定所述整体流畅度。
8.根据权利要求4所述的渲染方法,其中,所述整体渲染时间根据为每个待渲染瓦片选取的瓦片数据的渲染时间确定包括:
确定所有待渲染瓦片对应的瓦片数据中的未经压缩的所有原始瓦片数据的渲染时间;
根据为所有待渲染瓦片选取的瓦片数据的渲染时间的和与所述所有原始瓦片数据的渲染时间的和的比值,确定所述整体渲染时间。
9.根据权利要求2所述的渲染方法,其中,
所述精细度通过所述瓦片数据中的顶点数量、边数量、面数量、三角形数量中至少一项确定;
所述流畅度通过所述瓦片数据的渲染帧率确定;
所述渲染时间通过所述网络质量指标和所述瓦片数据的数据量确定。
10.根据权利要求1所述的渲染方法,其中,所述预测渲染时的网络质量指标包括:
确定渲染前多个周期的网络质量指标的平均值;
将渲染前一个周期的网络质量指标和所述平均值的加权和,预测为渲染时的网络质量指标。
11.根据权利要求1所述的渲染方法,其中,所述获取三维模型的多个待渲染瓦片的瓦片数据集包括:
根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片以及对应的多个瓦片数据,其中,所述索引树的每个节点对应一个瓦片的压缩级别不同的多个瓦片数据;
根据所述每个待渲染瓦片的多个瓦片数据,获得多个待渲染瓦片的瓦片数据集。
12.根据权利要求11所述的渲染方法,其中,所述根据三维模型的所有瓦片的索引树,确定每个待渲染瓦片包括:
根据所述索引树中的每个节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片。
13.根据权利要求12所述的渲染方法,其中,所述根据所述索引树中的节点对应的瓦片的位置、屏幕空间误差确定每个待渲染瓦片对应的节点包括:
按照所述索引树的根节点到子节点的层级顺序,依次将每个节点作为当前节点;
确定所述当前节点对应的瓦片是否在视椎体范围内;
在所述当前节点对应的瓦片在所述视椎体范围内的情况下,确定所述当前节点是否有子节点;
在所述当前节点有所述子节点的情况下,确定所述子节点的屏幕空间误差是否不大于最大屏幕空间误差;
在所述子节点的屏幕空间误差不大于最大屏幕空间误差的情况下,将所述子节点确定为待渲染瓦片对应的节点。
14.根据权利要求13所述的渲染方法,还包括:
在所述当前节点没有所述子节点的情况下,将所述当前节点确定为待渲染瓦片对应的节点。
15.根据权利要求14所述的渲染方法,还包括:
在所述子节点的屏幕空间误差大于最大屏幕空间误差的情况下,将所述子节点的子节点更新为当前节点。
16.根据权利要求11所述的渲染方法,还包括:
将三维模型的所有瓦片的瓦片数据进行不同级别的压缩;
将所述所有瓦片中的每个瓦片对应的多个瓦片数据,作为一个节点,以构建索引树,其中,所述索引树中的所述节点之间的连接通过所述瓦片数据确定。
17.根据权利要求11所述的渲染方法,还包括:
显示所述多个待渲染瓦片的渲染效果。
18.一种三维模型的渲染装置,包括:
获取模块,被配置为获取三维模型的多个待渲染瓦片的瓦片数据集,其中,所述瓦片数据集包括每个待渲染瓦片对应的压缩级别不同的多个瓦片数据;
预测模块,被配置为预测渲染时的网络质量指标;
选取模块,被配置为根据所述网络质量指标、所述瓦片数据集中的每个瓦片数据的信息,为每个待渲染瓦片选取一个瓦片数据;
渲染模块,被配置为根据选取结果,对所述多个待渲染瓦片进行渲染。
19.根据权利要求18所述的渲染装置,还包括:
显示模块,被配置为显示所述多个待渲染瓦片的渲染结果。
20.一种三维模型的渲染装置,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1至17中任一项所述的三维模型的渲染方法。
21.一种计算机可读存储介质,其上存储由计算机程序,其中,该程序被处理器执行时实现如权利要求1至17中任一项所述的三维模型的渲染方法的步骤。
CN202311080703.5A 2023-08-25 2023-08-25 三维模型的渲染方法、装置和计算机可读存储介质 Pending CN117115348A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311080703.5A CN117115348A (zh) 2023-08-25 2023-08-25 三维模型的渲染方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311080703.5A CN117115348A (zh) 2023-08-25 2023-08-25 三维模型的渲染方法、装置和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117115348A true CN117115348A (zh) 2023-11-24

Family

ID=88801661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311080703.5A Pending CN117115348A (zh) 2023-08-25 2023-08-25 三维模型的渲染方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117115348A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117372599A (zh) * 2023-12-04 2024-01-09 山东理工大学 一种海量真三维模型加载优化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117372599A (zh) * 2023-12-04 2024-01-09 山东理工大学 一种海量真三维模型加载优化方法
CN117372599B (zh) * 2023-12-04 2024-03-01 山东理工大学 一种海量真三维模型加载优化方法

Similar Documents

Publication Publication Date Title
US9245383B2 (en) Accelerated three-dimensional intersection testing using compressed volumes
CN111858828B (zh) 一种面向三维地理数据的传输和渲染方法及系统
CN108470374B (zh) 海量点云数据处理方法及装置
US10417821B2 (en) Method of simplifying a geometry model
WO2020098531A1 (zh) 对象的加载方法和装置、存储介质、电子装置
CN117115348A (zh) 三维模型的渲染方法、装置和计算机可读存储介质
US9208610B2 (en) Alternate scene representations for optimizing rendering of computer graphics
CN110162577B (zh) 企业族谱的可视化展现方法、设备以及系统
Lafarge et al. R Implementation of a Polyhedral Approximation to a 3D Set of Points Using the α-Shape
CN114943013A (zh) 一种效能评估方法、系统、计算设备以及存储介质
CN115994197A (zh) GeoSOT网格数据计算方法
Chaudhuri et al. Scalable computation of distributions from large scale data sets
CN112843700B (zh) 地形图像的生成方法、装置、计算机设备和存储介质
CN106503171B (zh) 一种矢量数据的处理方法及装置
CN111744183A (zh) 游戏中的光照采样方法、装置以及计算机设备
Dong et al. A time-critical adaptive approach for visualizing natural scenes on different devices
Scholz et al. Level of Detail for Real-Time Volumetric Terrain Rendering.
CN115719410A (zh) 一种空间模型数据的切片方法
KR100527682B1 (ko) 3차원 지리정보 처리방법 및 그 장치
US8847949B1 (en) Streaming replicated geographic data for display in a three-dimensional environment
CN115205434B (zh) 一种点云数据的可视化处理方法和装置
Kang et al. An efficient simplification and real-time rendering algorithm for large-scale terrain
CN113313829B (zh) 显示模型的快速构建处理方法及装置
CN110175740A (zh) 一种基于Kriging代理模型的场景分析实现方法
CN111460775B (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