CN114463473A - 图像渲染的处理方法和装置、存储介质及电子设备 - Google Patents
图像渲染的处理方法和装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114463473A CN114463473A CN202011241830.5A CN202011241830A CN114463473A CN 114463473 A CN114463473 A CN 114463473A CN 202011241830 A CN202011241830 A CN 202011241830A CN 114463473 A CN114463473 A CN 114463473A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- sub
- rendering
- dimensional graphic
- objects
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 220
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000003672 processing method Methods 0.000 title abstract description 17
- 230000011218 segmentation Effects 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000005520 cutting process Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明实施例提供了一种图像渲染的处理方法和装置、存储介质及电子设备,接收三维图形对象,将三维图形对象进行视锥体裁剪得到三维图形锥体;上述方法包括:将三维图形锥体进行四叉树分割,生成三维图形子对象;计算三维图形子对象的渲染复杂度;在三维图形子对象的渲染复杂度未达到渲染条件的情况下,对三维图形子对象进行若干次四叉树分割,以获取达到渲染条件的多个目标三维图形子对象;对多个目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;将渲染后的目标三维图形子对象进行拼接,得到三维图形对象对应的二维渲染图。通过本发明,解决了图形渲染效率低下的问题,进而达到了提高图形渲染效率的效果。
Description
技术领域
本发明涉及图像处理技术领域,具体而言,涉及一种图像渲染的处理方法和装置、存储介质及电子设备。
背景技术
对于图像渲染资源处理和任务的划分,相关技术中通常采用静态的方式对图像行渲染资源划分。采用静态方式对图像行渲染资源划分是将待处理的图像模型分配成多个相同处理资源的任务节点,然后对该多个任务节点进行渲染,在此处理过程中,每个渲染节点负责的任务处理量都是固定的。这种做法虽然方便简单,但是无法进行动态图像的交互,同时也会存在资源分配不均匀,任务调度等待时间过长等图像渲染处理效率较低问题。
针对上述图像渲染过程中存在的渲染图像合成效率低下的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种图像渲染的处理方法和装置、存储介质及电子设备,以至少解决相关技术中图形渲染效率低下的问题。
根据本发明的一个实施例,提供了一种图像渲染的处理方法,包括:接收三维图形对象,将上述三维图形对象进行视锥体裁剪得到三维图形锥体;将上述三维图形锥体进行四叉树分割,生成三维图形子对象;计算上述三维图形子对象的渲染复杂度;在上述三维图形子对象的渲染复杂度未达到渲染条件的情况下,对上述三维图形子对象进行若干次四叉树分割,以获取达到上述渲染条件的多个目标三维图形子对象;对多个上述目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;将上述渲染后的目标三维图形子对象进行拼接,得到上述三维图形对象对应的二维渲染图。
根据本发明的另一个实施例,提供了一种图像渲染的处理装置,包括:第一裁剪模块,用于接收三维图形对象,将上述三维图形对象进行视锥体裁剪得到三维图形锥体;第一分割模块,用于将上述三维图形锥体进行四叉树分割,生成三维图形子对象;第一计算模块,用于计算上述三维图形子对象的渲染复杂度;第一处理模块,用于在上述三维图形子对象的渲染复杂度未达到渲染条件的情况下,对上述三维图形子对象进行若干次四叉树分割,以获取达到上述渲染条件的多个目标三维图形子对象;第一渲染模块,对多个上述目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;第一拼接模块,用于将上述渲染后的目标三维图形子对象进行拼接,得到上述三维图形对象对应的二维渲染图。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,其中,上述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于采用了将三维图形锥体进行四叉树分割,生成三维图形子对象,然后计算三维图形子对象的渲染复杂度;通过将不符合渲染复杂度的三维子对象多次进行分割以获取达到渲染条件的多个目标三维图形子对象;因此,实现了根据三维图像的渲染复杂度来动态分配渲染任务,可以解决图像渲染过程中存在的图形渲染效率低下的问题,进而达到了提高图形渲染效率,以及合理分配图像渲染处理资源的效果。
附图说明
图1是根据本发明实施例的图像渲染的处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的图像渲染的处理系统架构示意图;
图3是根据本发明实施例的图像渲染的处理方法的流程图;
图4是根据本发明实施例的一种图像渲染的处理方法的网格模型分割效果示意图;
图5是根据本发明实施例的一种图像渲染的处理方法的点云模型分割效果示意图;
图6是根据本发明实施例的另一种图像渲染的处理方法的网格模型分割效果示意图;
图7是根据本发明实施例的图像渲染的处理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种图像渲染的处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的图像渲染的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本申请实施例可以运行于图2所示的图像渲染的处理系统架构上,如图2所示,该系统架构包括:模型载入模块201、分布式渲染模块202、控制浏览模块203,其中,模型载入模块201主要实现三维图像模型的载入和保存,以及统计系统所需的特征信息;分布式渲染模块202主要实现模拟三维图像的分布式渲染,以及将渲染后的结果记录在渲染目标纹理中,传递给控制浏览模块203;控制浏览模块203主要用于实现控制系统的运行,进行三维图像模型的视锥分割和任务的分配,将视锥分割结果进行汇总和展示,以及展示系统状态信息,处理复杂三维图像模型的交互信息。模型载入模块201将点云模型和网格模型数据发送至控制浏览模块203,控制浏览模块203将点云模型和网格模型进行视锥分割后,存入到分割后的子视锥列表中,然后控制浏览模块203将该子视锥列表发送到分布式渲染模块203进行图像渲染,分布式渲染模块203将渲染后的包含子节点的渲染结果列表发送到控制浏览模块203进行汇总和展示。
在本实施例中提供了一种运行于图2所示的图像渲染系统架构上的图像渲染的处理方法,图3是根据本发明实施例的图像渲染的处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,接收三维图形对象,将三维图形对象进行视锥体裁剪得到三维图形锥体;
步骤S304,将三维图形锥体进行四叉树分割,生成三维图形子对象;
步骤S306,计算三维图形子对象的渲染复杂度;
步骤S308,在三维图形子对象的渲染复杂度未达到渲染条件的情况下,对三维图形子对象进行若干次四叉树分割,以获取达到渲染条件的多个目标三维图形子对象;
步骤S310,对多个目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;
步骤S312,将渲染后的目标三维图形子对象进行拼接,得到三维图形对象对应的二维渲染图。
在步骤S302中,实际应用时,三维图形对象可以包括但不限于网格模型对象或者是点云模型对象,在此不做限定;将所述三维图形对象进行视锥体裁剪得到三维图形锥体,也就是说,通过视锥体裁剪,得到三维图形对象中有实体元素的椎体模型,剔除无实体元素子对象,即剔除掉三维图像中没有实体元素的部分;从而能减少图像渲染中的计算量。如图4所示,三维图形对象400经过视锥体裁剪后,剔除无实体元素子对象406,得到三维图形锥体402。
在步骤S304中,实际应用时,三维图形锥体进行四叉树分割,生成三维图形子对象,也就是说将进行视锥裁剪后得到的三维图像椎体进行四等分,得到处理资源相同的四个三维图形子对象。如图4所示,将三维图形锥体402进行四叉树分割,后得到三维图形子对象408(图中有阴影部分区域)。
在步骤S306中,实际应用时,计算三维图形子对象的渲染复杂度,例如,当三维图形对象为网格模型时,通过计算三维图形子对象中的三角网格数量来得到该网格模型下的渲染复杂度;当三维对象为点云模型时,三维图形子对象中的点云的数量来得到该点云模型下的渲染复杂度。如图4所示,图4显示的三维图形对象400为网格模型,通过计算该网格模型中三维图形子对象408的三角网格404的数量来得到该网格模型下的图像渲染复杂度。如图5所示,图5显示的三维图形对象500为点云模型,通过计算该点云模型中三维图形锥体502的点云504的数量来得到该点云模型下的图像渲染复杂度。
相关技术中为了解决采用静态方式带来的图像渲染的资源分配不均匀,以及图像渲染调度等待时间过长等问题,采用动态方式对图像行渲染资源划分,该动态方式主要利用二叉树的特性,对待处理的图像模型进行动态的分割。通过该方法对该分割后的图像模型绘制一棵二叉预测树。利用二叉预测树的叶子节点的特性,让绘制过程中的渲染子节点和二叉树中的叶节点相结合,将它前帧中每个渲染处理机被分配的渲染任务量以时间的形式量化记录下来,然后根据时间数值去合理均匀的分配每个渲染处理机的负载。其理论依据是,在相邻时序上的两个画面,在三维渲染中常用帧来代表,也即两个帧画面,它们的绘制时间序列上变化不是很大,所以在进行这两个帧的绘制所消耗的资源大致相同。该任务分配的实现方式如下:首先计算得到前一帧进行绘制的时间,对二叉预测树进行刷新,刷新的目的,是使得相对较小的任务块可以进行合并,复杂的任务块进行划分,分配给更多的渲染节点。但是该算法在复杂的渲染场景中,如果进行交互渲染变化的服务过大(即渲染对象前后两帧图像差别较大),会导致渲染性能造成较大的波动,使得构建二叉预测树的工作变得困难,并且会部分失效。最终的画面合成缺乏一致性特征,降低图像渲染效率。
为了解决上述采用动态方式对图像行渲染资源划分导致的图像渲染效率低下的问题,本发明采用了如图3中所示的方法步骤来解决上述技术问题。本发明不仅解决了采用静态方式带来的图像渲染资源分配不均匀,以及调度时间过长问题,而且解决了上述采用动态二叉树模型方式下出现的渲染性能造成较大的波动,以及最终的渲染画面合成缺乏一致性特征为技术问题。
通过上述步骤,由于采用了将三维图形锥体进行四叉树分割,生成三维图形子对象,然后计算三维图形子对象的渲染复杂度;通过将不符合渲染复杂度的三维子对象多次进行分割以获取达到渲染条件的多个目标三维图形子对象;因此,可以解决图像渲染过程中存在的图形渲染效率低下的问题,进而达到了提高图形渲染效率,以及合理分配图像渲染处理资源的效果。
在一实施例中,步骤S306-S308包括:确定所述三维图形子对象中的图元的数量;其中,所述图元为三维图形子对象中包含的图像的基本图像元素;若图元数量大于等于预设图元值,则确定当前的三维图形子对象的渲染复杂度未达到渲染条件;对三维图形子对象进行若干次四叉树分割,以获取图元数量小于或等于预设图元值的多个目标三维图形子对象。设置预设图元值是根据每个渲染任务处理的子节点计算能力而确定的,例如每个子节点能处理的图元个数最大为3个,就可以设置预设图元值为3。当三维图形子对象中的图元值例如为5时,就确定当前的三维图形子对象的渲染复杂度未达到渲染条件,此时就需要对当前的三维图形子对象中继续进行四叉树分割,以获取图元数量小于或等于3的多个目标三维图形子对象。如图6所示,三维图形子对象602中包含的图元数量为5,当预设的图元值为3时,对当前的三维图形子对象602继续进行四叉树分割,得到达到渲染条件的目标图形子对象604,目标图形子对象606,目标图形子对象604中的图元数量为3,目标图形子对象606中的图元数量为2。
在一实施例中,步骤S306-S308包括:在三维图形对象为网格模型的情况下,确定三维图形子对象中的三角网格的数量;其中,三角网格为三维图形子对象中包含的图像的基本图像元素;若三角网格数量大于预设三角网格值,则确定当前的三维图形子对象的渲染复杂度未达到渲染条件;对三维图形子对象进行若干次四叉树分割,以获取三角网格数量小于或等于预设三角网格值的多个目标三维图形子对象。如图4所示,三维图形对象400为网格模型的情况下,当三维图形子对象408包含的三角网格数量大于预设三角网格值,则确定当前的三维图形子对象408的渲染复杂度未达到渲染条件;对三维图形子对象进行若干次四叉树分割,以获取三角网格数量小于或等于预设三角网格值的多个目标三维图形子对象。
在一实施例中,步骤S306-S308包括:在三维图形对象为点云模型的情况下,确定三维图形子对象中的点云的数量;其中,点云为三维图形子对象中包含的图像的基本图像元素;若点云数量大于等于预设点云值,则确定当前的三维图形子对象的渲染复杂度未达到渲染条件;对三维图形子对象进行若干次四叉树分割,以获取点云数量小于或等于预设点云值的多个目标三维图形子对象。如图5所示,三维图形对象500为网格模型的情况下,当三维图形子对象508(图中有阴影部分区域)包含的三角网格数量大于预设三角网格值,则确定当前的三维图形子对象508的渲染复杂度未达到渲染条件;对三维图形子对象进行若干次四叉树分割,以获取三角网格数量小于或等于预设三角网格值的多个目标三维图形子对象。
在一实施例中,步骤S310包括:将对多个目标三维图形子对象投影到待渲染平面,得到三维图像投影子对象;其中,三维图像投影子对象为渲染后的目标三维图形子对象。
在一实施例中,步骤S312包括:确定出三维图像投影子对象在待渲染平面中的二维坐标;根据二维坐标将三维图像投影子对象在待渲染平面中进行拼接,得到二维渲染图;输出二维渲染图至待显示界面。如图6中,图(a1)中的投影子对象604和图(a2)中的投影子对象606,将二者进行拼接后即可得到图(a)的目标渲染对象602中;其中,待显示界面可以为手机、平板电脑、笔记本电脑、PC机等终端的显示器,在此不做限定。
在一实施例中,该图像渲染的处理方法还包括:根据待显示界面的分辨率大小,生成与待显示界面尺寸相同的二维初始图片;可选地,二维初始图片的颜色值可以为零,也就是说二维初始图片的颜色为黑色,在此不做限定;将二维渲染图按预设比例投影到二维初始图片中,得到二维目标图片;输出二维目标图片至待显示界面。也就是说,例如待显示的界面(比如电脑屏幕)的分辨率为640*480,先生存与待显示界面分辨率和尺寸相同的二维初始图片,如图6中的图(a)所示,二维初始图片的颜色值为零(即该图片为纯黑色图片),然后将二维渲染图600按预设比例(分辨率为640*480)投影到二维初始图片中,得到二维目标图片,将目标二维图片输出到电脑屏幕中。
其中,上述步骤的执行主体可以为终端设备等,终端设备可以为手机、平板电脑、笔记本电脑、PC机等终端,但不限于此。
基于前述实施例,在一应用实施例中,结合图2所示,上述图像渲染的处理方法还包括:
在大规模场景渲染的应用场景下,使用基于图像渲染复杂度和四叉树模型来对三维图像的视锥进行分割,能够实现图像渲染任务资源的均匀分配,本发明实例中可以使用目标对象渲染引擎(Object-Oriented Graphics Rendering Engine,简称为OGRE)OGRE自带的camera类、frustum类的接口进行了实现。实现过程如下步骤:
1.在总节点通过模型载入模块201,载入网格模型或点云模型,将其传递给控制浏览模块203。
2.控制浏览模块203进行基于渲染复杂度和四叉树模型的视锥分割方法,并进行任务的分配。在每一次渲染时,控制浏览模块203监听用户的输入对模型的相应参数。控制浏览模块203确定出需要渲染的三维图像中的图元元素后,根据当前视锥中的数据基于渲染复杂度(即三维图像中的图元的个数)对视锥进行分割,分割过程使用四叉树模型的方式对用户输入的点云模型或网格模型进行。尽量保证每个子视锥中渲染数据量不大于图形处理节点处理的阈值K。
3.三维图像进行视锥分割完成后,控制浏览模块203将子视锥分配给各个子渲染模块,即发送至分布式渲染模块202。
4.分布式渲染模块202在完成各节点渲染完成后,将渲染结果传递至控制浏览模块203中的总节点,根据图像拼接算法保证渲染结果的一致性,并将最终结果传递至客户端的显示界面中。
基于前述实施例,在一应用实施例中,上述图像渲染的处理方法还包括:
基于渲染复杂度建立一个四叉树模型对三维图像的视锥进行分割。在确定好需要渲染的图像资源之后,首先以需要图像渲染内容的中心为根节点把三维图像的视锥平均分成四块,然后检测每个被均分的子视锥中需要渲染的图元数目,对于点云数据模型而言,需要统计该子视锥区域中的点云数量,对于网格模型而言,需要统计该子视锥区域的三角网格数量。如果子视锥中没有图元元素,则跳过这个子视锥;如果判断出当前子视锥中包含的图元数目超过阈值K,则再次进行对当前子视锥进行四等分,直到每个子视锥中的图元数目小于或等于阈值K,就可以返回目标子视锥。这样就可以确保每个子任务渲染数据量最多不超过每个渲染子节点处理任务的上限值K。在具体的实现中,每个子视锥需要保存为该子视锥与待渲染的二维平面中的投影对象的上、下、左、右坐标。
在该实施例的具体实现中,采用以下算法:
输入要处理的任务参数及三维图像数据,包括需要进行分割的视锥F;已经确定好在视锥中的模型M;和每个子节点可以承载的渲染量K。
1.通过数据的预处理操作,得到模型M所包含的片元(三角网格片或多边形网格片),或者点云的数量。
2.之后首先创建一个全局的视锥列表,来存储将上述视锥F进行分割的子视锥。
3.如果子视锥需要渲染的片元数量或点云数量等于零了,那么就停止对当前子视锥进行分割操作。
4.如果需要渲染的片元数量或者点云数量小于设置的单个渲染节点可以承载的渲染量K值时,就将这部分的需要渲染的对象放入一个子视锥中。
5.如果步骤3和4都不满足,表明当前需要渲染的片元数量或者点云数量是单个节点无法承受的,那么就需要继续进行分割的操作。通过继续使用四叉树的分割方式,将当前的子视锥范围进行四等分。
6.最后对于分割后得到的子视锥行步骤3-5的递归操作,直到满足步骤3和4中的条件,得到最终的视锥列表。
7.图像渲染的处理系统会将该视锥列表分别分给每个图像渲染子节点,进行渲染任务。因此,可以使得每个渲染子节点都可以使用最大的渲染效率进行图像渲染。
8.完成了视锥分割的工作之后,将这些渲染任务分配给子节点进行渲染。得到各个视锥对应的图像之后,然后将这些图像在图像渲染总节点进行拼接整合得到二维渲染图像。
其中,图像拼接算法为:首先初始化生成一张全黑的图片初始化图片,大小设置为和待显示界面的主视窗所含像素相同。图像渲染的处理系统每当收到一个子渲染节点的结果时,控制浏览模块会将该渲染目标纹理根据其位置进行投影变换,调整到它对应的大小。之后,控制浏览模块会根据该子视锥对应的坐标将该部分结果放置到初始化图片中。当所有子任务的画面都处理完成后,最终合成的图像结果将被传递给控制浏览模块,进一步展示给客户端的显示界面。
本发明通过上述步骤,由于采用了将三维图形锥体进行四叉树分割,生成三维图形子对象,然后计算三维图形子对象的渲染复杂度;通过将不符合渲染复杂度的三维子对象多次进行分割以获取达到渲染条件的多个目标三维图形子对象;因此,可以解决图像渲染过程中存在的图形渲染效率低下的问题,进而达到了提高图形渲染效率,以及合理分配图像渲染处理资源的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种图形渲染的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的图像渲染的处理装置的结构框图,如图6所示,该装置包括:
第一裁剪模块702,用于接收三维图形对象,将三维图形对象进行视锥体裁剪得到三维图形锥体;
第一分割模块704,用于将三维图形锥体进行四叉树分割,生成三维图形子对象;
第一计算模块706,用于计算三维图形子对象的渲染复杂度;
第一处理模块708,用于在三维图形子对象的渲染复杂度未达到渲染条件的情况下,对三维图形子对象进行若干次四叉树分割,以获取达到渲染条件的多个目标三维图形子对象;
第一渲染模块710,用于对多个目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;
第一拼接模块712,用于将渲染后的目标三维图形子对象进行拼接,得到三维图形对象对应的二维渲染图。
在本申请实施例中,三维图形对象可以包括但不限于网格模型对象或者是点云模型对象,在此不做限定;将所述三维图形对象进行视锥体裁剪得到三维图形锥体,也就是说,通过视锥体裁剪,得到三维图形对象中有实体元素的椎体模型,剔除无实体元素子对象,即剔除掉三维图像中没有实体元素的部分;从而能减少图像渲染中的计算量。如图4所示,三维图形对象400经过视锥体裁剪后,剔除无实体元素子对象406,得到三维图形锥体402。
在本申请实施例中,三维图形锥体进行四叉树分割,生成三维图形子对象,也就是说将进行视锥裁剪后得到的三维图像椎体进行四等分,得到处理资源相同的四个三维图形子对象。如图4所示,将三维图形锥体402进行四叉树分割,后得到三维图形子对象408(图中有阴影部分区域)。
在本申请实施例中,计算三维图形子对象的渲染复杂度,例如,当三维图形对象为网格模型时,通过计算三维图形子对象中的三角网格数量来得到该网格模型下的渲染复杂度;当三维对象为点云模型时,三维图形子对象中的点云的数量来得到该点云模型下的渲染复杂度。如图4所示,图4显示的三维图形对象400为网格模型,通过计算该网格模型中三维图形子对象408的三角网格404的数量来得到该网格模型下的图像渲染复杂度。如图5所示,图5显示的三维图形对象500为点云模型,通过计算该点云模型中三维图形锥体502的点云504的数量来得到该点云模型下的图像渲染复杂度。
在本发明实施例中,由于采用了将三维图形锥体进行四叉树分割,生成三维图形子对象,然后计算三维图形子对象的渲染复杂度;通过将不符合渲染复杂度的三维子对象多次进行分割以获取达到渲染条件的多个目标三维图形子对象;因此,可以解决图像渲染过程中存在的图形渲染效率低下的问题,进而达到了提高图形渲染效率,以及合理分配图像渲染处理资源的效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种图像渲染的处理方法,其特征在于,包括:
接收三维图形对象,将所述三维图形对象进行视锥体裁剪得到三维图形锥体;
将所述三维图形锥体进行四叉树分割,生成三维图形子对象;
计算所述三维图形子对象的渲染复杂度;
在所述三维图形子对象的渲染复杂度未达到渲染条件的情况下,对所述三维图形子对象进行若干次四叉树分割,以获取达到所述渲染条件的多个目标三维图形子对象;
对多个所述目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;
将所述渲染后的目标三维图形子对象进行拼接,得到所述三维图形对象对应的二维渲染图。
2.根据权利要求1所述的方法,其特征在于,所述计算所述三维图形子对象的渲染复杂度;
在所述三维图形子对象的渲染复杂度未达到渲染条件的情况下,对所述三维图形子对象进行若干次四叉树分割,以获取达到所述渲染条件的多个目标三维图形子对象;包括:
确定所述三维图形子对象中的图元的数量;其中,所述图元为所述三维图形子对象中包含的图像的基本图像元素;
若所述图元数量大于预设图元值,则确定当前的所述三维图形子对象的渲染复杂度未达到渲染条件;
对所述三维图形子对象进行若干次四叉树分割,以获取所述图元数量小于或等于预设图元值的多个目标三维图形子对象。
3.根据权利要求2所述的方法,其特征在于,所述方法包括:
在所述三维图形对象为网格模型的情况下,确定所述三维图形子对象中的三角网格的数量;其中,所述三角网格为所述三维图形子对象中包含的图像的基本图像元素;
若所述三角网格数量大于预设三角网格值,则确定当前的所述三维图形子对象的渲染复杂度未达到渲染条件;
对所述三维图形子对象进行若干次四叉树分割,以获取所述三角网格数量小于或等于预设三角网格值的多个目标三维图形子对象。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述三维图形对象为点云模型的情况下,确定所述三维图形子对象中的点云的数量;其中,所述点云为所述三维图形子对象中包含的图像的基本图像元素;
若所述点云数量大于预设点云值,则确定当前的所述三维图形子对象的渲染复杂度未达到渲染条件;
对所述三维图形子对象进行若干次四叉树分割,以获取所述点云数量小于或等于预设点云值的多个目标三维图形子对象。
5.根据权利要求1所述的方法,其特征在于,所述对多个所述目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象,包括:
将所述对多个所述目标三维图形子对象投影到待渲染平面,得到三维图像投影子对象;其中,所述三维图像投影子对象为渲染后的目标三维图形子对象。
6.根据权利要求5所述的方法,其特征在于,所述将所述渲染后的目标三维图形子对象进行拼接,得到所述三维图形对象对应的二维渲染图,包括:
确定出三维图像投影子对象在所述待渲染平面中的二维坐标;
根据所述二维坐标将所述三维图像投影子对象在所述待渲染平面中进行拼接,得到所述二维渲染图;
输出所述二维渲染图至待显示界面。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述待显示界面的分辨率大小,生成与所述待显示界面尺寸相同的二维初始图片;
将所述二维渲染图按预设比例投影到所述二维初始图片中,得到二维目标图片;
输出所述二维目标图片至所述待显示界面。
8.一种图像渲染的处理装置,其特征在于,包括:
第一裁剪模块,用于接收三维图形对象,将所述三维图形对象进行视锥体裁剪得到三维图形锥体;
第一分割模块,用于将所述三维图形锥体进行四叉树分割,生成三维图形子对象;
第一计算模块,用于计算所述三维图形子对象的渲染复杂度;
第一处理模块,用于在所述三维图形子对象的渲染复杂度未达到渲染条件的情况下,对所述三维图形子对象进行若干次四叉树分割,以获取达到所述渲染条件的多个目标三维图形子对象;
第一渲染模块,用于对多个所述目标三维图形子对象在待渲染平面分别进行渲染,得到渲染后的目标三维图形子对象;
第一拼接模块,用于将所述渲染后的目标三维图形子对象进行拼接,得到所述三维图形对象对应的二维渲染图。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241830.5A CN114463473A (zh) | 2020-11-09 | 2020-11-09 | 图像渲染的处理方法和装置、存储介质及电子设备 |
PCT/CN2021/125371 WO2022095714A1 (zh) | 2020-11-09 | 2021-10-21 | 图像渲染的处理方法和装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011241830.5A CN114463473A (zh) | 2020-11-09 | 2020-11-09 | 图像渲染的处理方法和装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114463473A true CN114463473A (zh) | 2022-05-10 |
Family
ID=81404734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011241830.5A Pending CN114463473A (zh) | 2020-11-09 | 2020-11-09 | 图像渲染的处理方法和装置、存储介质及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114463473A (zh) |
WO (1) | WO2022095714A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116206046A (zh) * | 2022-12-13 | 2023-06-02 | 北京百度网讯科技有限公司 | 渲染处理方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116912395B (zh) * | 2023-09-14 | 2024-01-12 | 武汉蜂鸟龙腾软件有限公司 | 基于OpenGL的图形混合渲染方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831632B (zh) * | 2012-07-24 | 2015-05-13 | 上海晨思电子科技有限公司 | 镜像纹理生成方法、装置 |
US10147226B1 (en) * | 2016-03-08 | 2018-12-04 | Pixelworks, Inc. | 2D motion vectors from 3D model data |
CN107978018B (zh) * | 2017-12-22 | 2022-07-05 | 广州视源电子科技股份有限公司 | 立体图形模型的构建方法、装置、电子设备及存储介质 |
CN110738721B (zh) * | 2019-10-12 | 2023-09-01 | 四川航天神坤科技有限公司 | 基于视频几何分析的三维场景渲染加速方法及系统 |
-
2020
- 2020-11-09 CN CN202011241830.5A patent/CN114463473A/zh active Pending
-
2021
- 2021-10-21 WO PCT/CN2021/125371 patent/WO2022095714A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116206046A (zh) * | 2022-12-13 | 2023-06-02 | 北京百度网讯科技有限公司 | 渲染处理方法、装置、电子设备及存储介质 |
CN116206046B (zh) * | 2022-12-13 | 2024-01-23 | 北京百度网讯科技有限公司 | 渲染处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022095714A1 (zh) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110706341B (zh) | 一种城市信息模型的高性能渲染方法、装置及存储介质 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
KR102047615B1 (ko) | 입자 시스템을 위한 처리 방법 및 장치 | |
WO2022095714A1 (zh) | 图像渲染的处理方法和装置、存储介质及电子设备 | |
CN108389241A (zh) | 游戏场景中生成贴图的方法、装置和系统 | |
CN111932663A (zh) | 基于多层级非对称通信管理的并行绘制方法 | |
CN111899323B (zh) | 三维地球的绘制方法及装置 | |
CN111738935B (zh) | 残影渲染方法和装置、存储介质和电子装置 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN111710020A (zh) | 动画渲染方法和装置及存储介质 | |
US20230343021A1 (en) | Visible element determination method and apparatus, storage medium, and electronic device | |
CN115861510A (zh) | 对象渲染方法、装置、电子设备、存储介质及程序产品 | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
CN113254215B (zh) | 数据处理方法和装置、存储介质及电子设备 | |
CN111681317B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114549761A (zh) | 基于分布式存储的实景三维模型分层渲染优化方法及系统、存储介质 | |
CN114299202A (zh) | 虚拟场景制作的处理方法及装置、存储介质、终端 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
JPH10198823A (ja) | 映像生成装置 | |
CN112825197A (zh) | Unity中群集动画快速渲染的方法、存储介质 | |
Arora et al. | Distributed cluster processing to evaluate interlaced run-length compression schemes | |
CN109542573B (zh) | 一种场景显示方法和装置 | |
CN114898029A (zh) | 对象渲染方法及装置、存储介质、电子装置 | |
CN109045693B (zh) | 模型的剔除方法及装置、存储介质和电子装置 | |
CN117197327A (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 |