欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 一种点云渲染方法及装置独创技术27340字

一种点云渲染方法及装置

2021-03-12 14:52:28

一种点云渲染方法及装置

  技术领域

  本申请涉及计算机技术领域,特别涉及一种点云渲染方法及装置、计算设备和计算机可读存储介质。

  背景技术

  现有技术的游戏中,随着技术的发展,画面的像素精度越来越高,大型游戏的场景画面渲染时所涉及的渲染的运算量越来越大,往往超出系统的处理能力。因此,现有技术在处理时,往往将一个场景中的模型划分为几部分,即划分为几个LOD(Levels of Detail,多细节级别)。各个LOD的画面精度不一样,对于远处的模型使用较低精度,即对距离较远的LOD使用较低分辨率;对于近处的模型使用较高精度,即对距离较近的LOD使用较高分辨率。

  现有技术的这种渲染方式,虽然节约了不少运算量,但是存在以下问题:

  1、LOD的模型制作流程复杂,美术手工制作,或者使用软件自动生成,效果较差。

  2、各级LOD的资源之间是冗余的,用LOD2时,LOD1和LOD0的资源闲置。

  3、模型绘制的复杂度直接与场景中的所有模型的总面数相关,现有的LOD技术将多个模型合并为1个模型,合并过程中涉及到减面,此过程无法实时化,且会增加一次冗余资源。

  发明内容

  有鉴于此,本申请实施例提供了一种点云渲染方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

  本申请实施例提供了一种点云渲染方法,包括:

  预加载待渲染图形对应模型的原始点云数据集合,其中,所述待渲染图形包括至少一个区域图形,所述原始点云数据集合包括每个区域图形对应模型的原始点云数据;

  确定待渲染的目标区域图形,从所述原始点云数据集合中确定所述目标区域图形对应模型的点云区域数据;

  根据所述点云区域数据提取对应的点,并基于提取的点进行渲染生成渲染图形。

  可选地,在预加载待渲染图形对应模型的原始点云数据集合之前,还包括:

  确定所述待渲染图形对应的至少一个模型;

  确定每个所述模型对应的分辨率,并根据每个所述模型对应的分辨率将所述模型进行体素化;

  将体素化生成的模型单元用点替代,生成每个模型对应的原始点云数据。

  可选地,所述方法还包括:

  确定每个模型对应的显示精度,并确定所述模型在每一级显示精度对应的原始点云数据中点的密度。

  可选地,根据所述点云区域数据提取对应的点,并基于提取的点进行渲染生成渲染图形,包括:

  确定所述目标区域图形的显示精度;

  根据所述显示精度等级在所述目标区域图形对应模型的点云区域数据中提取对应的点,并基于提取的点生成对应所述显示精度等级的渲染图形。

  可选地,根据所述显示精度等级在所述目标区域图形对应模型的点云区域数据中提取对应的点,包括:

  在显示精度等级为第n级的情况下,在目标区域图形对应模型的显示精度等级为n-1级的点云区域数据中提取对应密度的点,其中,n为大于1的整数。

  本申请实施例提供了一种点云渲染装置,包括:

  预加载模块,被配置为预加载待渲染图形对应模型的原始点云数据集合,其中,所述待渲染图形包括至少一个区域图形,所述原始点云数据集合包括每个区域图形对应模型的原始点云数据;

  点云数据确定模块,被配置为确定待渲染的目标区域图形,从所述原始点云数据集合中确定所述目标区域图形对应模型的点云区域数据;

  渲染图形生成模块,被配置为根据所述点云区域数据提取对应的点,并基于提取的点进行渲染生成渲染图形。

  可选地,所述装置还包括原始点云数据生成模块,被配置为:

  确定所述待渲染图形对应的至少一个模型;

  确定每个所述模型对应的分辨率,并根据每个所述模型对应的分辨率将所述模型进行体素化;

  将体素化生成的模型单元用点替代,生成每个模型对应的原始点云数据。

  可选地,所述装置还包括:

  精度确定模块,被配置为确定每个模型对应的显示精度等级,并确定所述模型在每一级显示精度对应的原始点云数据中点的密度。

  本申请实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述的点云渲染方法的步骤。

  本申请实施例提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述的点云渲染方法的步骤。

  本申请提供的点云渲染方法及装置,通过点云数据取代网格数据进行图形的渲染,以得到待渲染图形对应模型的原始点云数据集合,并将待渲染图形分割为至少一个区域图形,从而在渲染时可以根据选定的区域图形在预加载的原始点云数据集合中提取对应模型的点云区域数据,再根据点云区域数据提取对应的点进行渲染生成渲染图形,避免了现有技术中通过LOD制作模型的复杂流程,并且通过点云中的点生成渲染图形,过程可以实时实现,避免了多个模型的叠加与减面处理,进而避免了冗余资源的产生。

  其次,本方法可以根据显示精度等级来确定模型对应的原始点云数据中点的密度,进而获取待渲染图形对应模型的原始点云数据集合,实现待渲染图形的不同精度级别的显示,从而在复杂模型的渲染过程中,逐级进行不同精度级别的显示,不会产生额外的冗余资源,且有利于提高渲染的效率。

  附图说明

  图1是本申请一实施例的计算设备的结构示意图;

  图2是本申请一实施例的点云渲染方法的流程示意图;

  图3a~图3d是通过本申请一实施例的方法将一个待渲染图形对应的4个模型点云化后的示意图的流程示意图;

  图4是本申请一实施例的一个待渲染图形对应的模型对应的点云图;

  图5是本申请一实施例的点云渲染装置的结构示意图。

  具体实施方式

  在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

  在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  首先,对本发明一个或多个实施例涉及的名词术语进行解释。

  多细节级别(Levels of Detail,LOD):LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

  点云(point cloud):点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合。点云在编程实现的时候是一种数据结构,用来表达多维空间中点的集合,一般地,多维空间指的是三维空间。

  点云图像:由点云构成的图像,其基本单位为一个个点。

  网格:计算机世界中,由于只能用离散的结构去模拟现实中连续的事物,所以现实世界中的曲面实际上在计算机里是由无数个小的多边形网格组成。具体地,多边形网格又被称为“Mesh”,是计算机图形学中用于为各种不规则物体建立模型的一种数据结构。

  在本申请中,提供了一种点云渲染方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

  图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

  计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

  在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

  计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

  其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的点云渲染方法方法的示意性流程图,包括步骤202至步骤206。

  202、预加载待渲染图形对应模型的原始点云数据集合,其中,所述待渲染图形包括至少一个区域图形,所述原始点云数据集合包括每个区域图形对应模型的原始点云数据。

  本实施例中,将模型通过点云数据集合来表示,以替代现有技术中的通过网格来表示,以避免现有技术中通过LOD制作模型的复杂流程。

  对应地,在步骤202之前,需要生成待渲染图形对应模型的原始点云数据集合。需要说明的是,对于待渲染图形,对应的模型有多个,每个模型均要生成对应的点云数据集合;对于同一个模型,还可以有不同精度的显示,可以通过设置每一精度对应一个点的密度,并在渲染时提取对应精度的点的数量,可以实现同一模型不同精度的显示。

  具体地,步骤202之前,还包括下述步骤S2012~S2016:

  S2012、确定所述待渲染图形对应的至少一个模型。

  本实施例中,可以通过接收输入命令来确定待渲染图形对应的模型。其中,待渲染图形对应的模型可以为一个,也可以为多个。

  S2014、确定每个所述模型对应的分辨率,并根据每个所述模型对应的分辨率将所述模型进行体素化。

  对于每个模型,分辨率越高,则显示精度越高,生成的点云数据中的点的密度和数量就越大。

  S2016、将体素化生成的模型单元用点替代,生成每个模型对应的原始点云数据。

  本步骤S2016中,在得到每个模型对应的原始点云数据后,可以进一步得到待渲染图形对应模型的原始点云数据集合。

  现有技术中,模型绘制的复杂度直接与场景中的所有模型的总面数相关,现有的HLOD(Hierachical Levels of Detail,分层细节级别)技术将多个模型合并为1个模型的过程中,会将多个模型进行叠加与减面处理,从而增加冗余资源。本实施例中,通过将模型进行体素化并用点替代,生成每个模型对应的原始点云数据。从而在渲染时提取模型对应的点即可,无需进行模型的叠加与减面处理,可以避免冗余资源的产生。

  参见图3a~图3d,图3a~图3d分别示出了一个待渲染图形对应的4个模型点云化后的示意图。由图中可见,图3a所示的模型的点密度最高,则图3a所示的模型的显示精度最大。

  本实施例中,对于单个模型对应多个分辨率的情形,可以根据该模型对应的最高的分辨率对模型进行体素化,以生成表示该模型对应的密度最高的原始点云数据,然后根据该模型对应的密度最高的原始点云数据进行其他分辨率对应的原始点云数据的后续处理,具体处理过程可以参见下述步骤。

  所以,本实施例的方法还包括:S2018、确定每个模型对应的显示精度,并确定所述模型在每一级显示精度对应的原始点云数据中点的密度。

  例如,确定一个待渲染图形对应有3个模型,每个模型对应有3个显示精度。参见表1,其中,L11>L21>L31,L12>L22>L32,L13>L23>L33。对应地,1级显示精度对应的原始点云数据中点的密度为A1,2级显示精度对应的原始点云数据中点的密度为A2,3级显示精度对应的原始点云数据中点的密度为A3,其中,A1>A2>A3。

  第1级显示精度对应的是较近的场景模型,需要完全精度显示;第2级显示精度对应的是稍远一些的场景模型,需要略低精度显示;第3级显示精度对应的是较远处的场景模型,只需要低精度显示。

  表1

  

  本实施例的方法可以根据显示精度等级来确定模型对应的原始点云数据中点的密度,进而获取待渲染图形对应模型的原始点云数据集合,实现待渲染图形的不同精度级别的显示,从而在复杂模型的渲染过程中,逐级进行不同精度级别的显示,不会产生额外的冗余资源,且有利于提高渲染的效率。

  例如对于千万级别的点云数据的复杂模型,本方法通过设置不同精度等级的模型对应的点的集合,从而可以先加载低精度的点云数据,再加载高精度的点云数据,实现“延迟加载”的效果,有利于提高复杂模型的处理效率。

  204、确定待渲染的目标区域图形,从所述原始点云数据集合中确定所述目标区域图形对应模型的点云区域数据。

  参见上述表1,以分别确定模型1、2和3对应的显示精度等级为L11、L22和L33为例,可以分别确认L11级显示精度下模型1对应的原始点云数据、L22级显示精度下模型2对应的原始点云数据和L33级显示精度下模型3对应的原始点云数据。

  本实施例中,将待渲染图形分割为至少一个区域图形,从而在渲染时可以根据选定的区域图形在预加载的原始点云数据集合中提取对应模型的点云区域数据,而无需加载整个待渲染图形对应的所有原始点云数据,减少后续渲染过程中的数据处理量。

  例如,一个待渲染图形包括4个区域图形B1、B2、B3、B4,确定待渲染的目标区域图形为B2,从原始点云数据集合中确定目标区域图形B2对应模型的点云区域数据。

  206、根据所述点云区域数据提取对应的点,并基于提取的点进行渲染生成渲染图形。

  具体地,步骤206包括步骤S2062~S2064:

  S2062、确定所述目标区域图形的显示精度。

  S2064、根据所述显示精度等级在所述目标区域图形对应模型的点云区域数据中提取对应的点,并基于提取的点生成对应所述显示精度等级的渲染图形。

  具体地,对于目标区域图形的显示精度等级包括M级,对于第1级显示精度,即最高精度等级,在目标区域图形对应模型的点云区域数据中提取所有对应的点。

  对于显示精度等级为第n级的情况下,在目标区域图形对应模型的显示精度等级为n-1级的点云区域数据中提取对应密度的点,其中,n为大于1的整数。

  通过本实施例的点的提取方法,可以在高一级显示精度的点云区域数据中提取低一级显示精度的点,从而无需针对每一级显示精度重复地在原始点云数据集合中提取点,减小数据的处理量。

  例如对于第1级显示精度的点云区域数据,点密度为A1;对于第2级显示精度的点云区域数据,点密度为A2。在提取目标区域图形对应模型的第2级显示精度的点云区域数据时,可以在第1级显示精度的点云区域数据中提取点密度为A2的点,并生成对应第2级显示精度的渲染图形。

  参见上述表1,以模型1为例,对于L11级的显示精度,可以确认L11级显示精度下模型对应的原始点云数据;

  对于L12级的显示精度,可以先确认L11级显示精度下模型对应的原始点云数据,再根据L12级显示精度对应的点的密度A2,在L11级显示精度下模型对应的原始点云数据中进一步进行选取。

  对于L13级的显示精度,可以根据L13级显示精度对应的点的密度A3,在L12级显示精度下模型对应的原始点云数据中进一步进行选取。

  本实施例提供的点云渲染方法,通过点云数据取代网格数据进行图形的渲染,以得到待渲染图形对应模型的原始点云数据集合,并将待渲染图形分割为至少一个区域图形,从而在渲染时可以根据选定的区域图形在预加载的原始点云数据集合中提取对应模型的点云区域数据,再根据点云区域数据提取对应的点进行渲染生成渲染图形,避免了现有技术中通过LOD制作模型的复杂流程,并且通过点云中的点生成渲染图形,过程可以实时实现,避免了多个模型的叠加与减面处理,进而避免了冗余资源的产生。

  其次,本方法可以根据显示精度等级来确定模型对应的原始点云数据中点的密度,进而获取待渲染图形对应模型的原始点云数据集合,实现待渲染图形的不同精度级别的显示,从而在复杂模型的渲染过程中,逐级进行不同精度级别的显示,不会产生额外的冗余资源,且有利于提高渲染的效率。

  为了进一步地理解本实施例的点云渲染方法,参见图4。图4中示出了一个待渲染图形对应的模型的原始点云数据,且该模型划分为3个显示精度等级:第1级对应的原始点云数据包括全部点,第2级显示精度对应的原始点云数据包括黑色点和灰色点,第3级显示精度对应的原始点云数据包括黑色点。

  所述点云渲染方法包括:

  S1、预加载待渲染图形对应模型的原始点云数据集合,其中,所述待渲染图形包括多个区域图形,所述原始点云数据集合包括该区域图形对应模型的原始点云数据。

  S2、确定待渲染的目标区域图形,从原始点云数据集合中确定目标区域图形对应模型的点云区域数据。

  本实施例中,确定待渲染的目标区域图形为矩形,则该目标区域图形对应模型的点云区域数据参见图4。

  S3、确定所述目标区域图形的显示精度,然后分别执行步骤S4~S6。

  S4、在显示精度等级为第1级的情况下,在目标区域图形对应模型的点云区域数据中提取所有点,基于提取的点生成对应所述显示精度等级的渲染图形。

  S5、在显示精度等级为第2级的情况下,在目标区域图形对应模型的显示精度等级为1级的点云区域数据中提取黑色点和灰色点,基于提取的点生成对应所述显示精度等级的渲染图形。

  S6、在显示精度等级为第3级的情况下,在目标区域图形对应模型的显示精度等级为2级的点云区域数据中提取对应黑色点,基于提取的点生成对应所述显示精度等级的渲染图形。

  本申请一实施例还提供一种点云渲染装置,参见图5,包括:

  预加载模块502,被配置为预加载待渲染图形对应模型的原始点云数据集合,其中,所述待渲染图形包括至少一个区域图形,所述原始点云数据集合包括每个区域图形对应模型的原始点云数据;

  点云数据确定模块504,被配置为确定待渲染的目标区域图形,从所述原始点云数据集合中确定所述目标区域图形对应模型的点云区域数据;

  渲染图形生成模块506,被配置为根据所述点云区域数据提取对应的点,并基于提取的点进行渲染生成渲染图形。

  可选地,所述装置还包括:原始点云数据生成模块,被配置为确定所述待渲染图形对应的至少一个模型;

  确定每个所述模型对应的分辨率,并根据每个所述模型对应的分辨率将所述模型进行体素化;

  将体素化生成的模型单元用点替代,生成每个模型对应的原始点云数据。

  可选地,所述装置还包括:精度确定模块,被配置为确定每个模型对应的显示精度等级,并确定所述模型在每一级显示精度对应的原始点云数据中点的密度。

  可选地,所述渲染图形生成模块506,具体被配置为:

  确定所述目标区域图形的显示精度;

  根据所述显示精度等级在所述目标区域图形对应模型的点云区域数据中提取对应的点,并基于提取的点生成对应所述显示精度等级的渲染图形。

  可选地,所述渲染图形生成模块506,具体被配置为:在显示精度等级为第n级的情况下,在目标区域图形对应模型的显示精度等级为n-1级的点云区域数据中提取对应密度的点,其中,n为大于1的整数。

  本实施例提供的点云渲染装置,通过点云数据取代网格数据进行图形的渲染,以得到待渲染图形对应模型的原始点云数据集合,并将待渲染图形分割为至少一个区域图形,从而在渲染时可以根据选定的区域图形在预加载的原始点云数据集合中提取对应模型的点云区域数据,再根据点云区域数据提取对应的点进行渲染生成渲染图形,避免了现有技术中通过LOD制作模型的复杂流程,并且通过点云中的点生成渲染图形,过程可以实时实现,避免了多个模型的叠加与减面处理,进而避免了冗余资源的产生。

  其次,本装置可以根据显示精度等级来确定模型对应的原始点云数据中点的密度,进而获取待渲染图形对应模型的原始点云数据集合,实现待渲染图形的不同精度级别的显示,从而在复杂模型的渲染过程中,逐级进行不同精度级别的显示,不会产生额外的冗余资源,且有利于提高渲染的效率。

  上述为本实施例的一种点云渲染装置的示意性方案。需要说明的是,该装置的技术方案与上述的点云渲染方法的技术方案属于同一构思,装置的技术方案未详细描述的细节内容,均可以参见上述点云渲染方法的技术方案的描述。

  本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述点云渲染方法的步骤。

  上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的点云渲染方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述点云渲染方法的技术方案的描述。

  所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

  需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

  在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

  以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

《一种点云渲染方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)