CN111063032B - 模型渲染方法、***及电子装置 - Google Patents
模型渲染方法、***及电子装置 Download PDFInfo
- Publication number
- CN111063032B CN111063032B CN201911373358.8A CN201911373358A CN111063032B CN 111063032 B CN111063032 B CN 111063032B CN 201911373358 A CN201911373358 A CN 201911373358A CN 111063032 B CN111063032 B CN 111063032B
- Authority
- CN
- China
- Prior art keywords
- models
- model
- merging
- group
- rendering
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000009877 rendering Methods 0.000 title claims abstract description 81
- 230000008569 process Effects 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000000429 assembly Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- RKTYLMNFRDHKIL-UHFFFAOYSA-N copper;5,10,15,20-tetraphenylporphyrin-22,24-diide Chemical compound [Cu+2].C1=CC(C(=C2C=CC([N-]2)=C(C=2C=CC=CC=2)C=2C=CC(N=2)=C(C=2C=CC=CC=2)C2=CC=C3[N-]2)C=2C=CC=CC=2)=NC1=C3C1=CC=CC=C1 RKTYLMNFRDHKIL-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种模型渲染方法、***及电子装置,涉及模型渲染技术领域,该方法首先根据模型的类型,将多个模型进行分组,得到多个分类组。然后分别对每个分类组中的模型进行合并,得到多个合并结果,最后分别对每个合并结果中的模型进行渲染计算。本方法通过实时的对多个合并结果中的模型进行合并,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
Description
技术领域
本发明涉及模型渲染技术领域,尤其是涉及一种模型渲染方法、***及电子装置。
背景技术
目前,在积木搭建类场景的三维游戏中,玩家通过多个规则的积木组件搭建出一个复杂的模型,该模型中包含所有积木组件的表面信息,在模型渲染的过程中需要调用较多数量的DrawCall,涉及较多的三角面数量。当模型中包含较多的积木组件时,对模型进行渲染的过程会占用游戏设备较多的资源,严重时影响游戏运行的效率,导致游戏渲染帧率降低,用户体验度下降。
现有技术中采用合批的方式来渲染模型,但该类方式需要对每一帧重新组织合批数据,这会影响运行效率。当在移动设备中,由于移动设备的性能有限,每一次合批能够合并的模型时有限的,应对大量合批时容易出现性能问题。合批的方式并不能降低三角面数量,重合的三角面仍然会重复渲染。
综上所述,对于积木搭建类游戏中,现有技术中缺少一种能够有效降低DrawCall数量以及三角面数量的方式方法。
发明内容
有鉴于此,本发明的目的在于提供一种模型渲染方法、***及电子装置。通过对模型进行实时分组合并的方式,减少渲染所需的DrawCall以及三角面的数量,提高模型渲染的效率。
第一方面,本发明实施例提供了一种模型渲染方法,该方法包括:
根据模型的类型,将多个模型进行分组,得到多个分类组;
分别对每个分类组中的模型进行合并,得到一个或多个合并结果;
根据合并结果生成合并模型;
对合并模型进行渲染显示。
在一些实施方式中,上述根据模型的类型,将多个模型进行分组,得到多个分类组的步骤,包括:
获取每个模型的类型;
针对每个类型分别建立对应的分类组;
遍历需要合并的所有模型,根据不同的类型信息将每个模型划分到对应的分类组中,得到多个分类组。
在一些实施方式中,上述遍历需要合并的所有模型,根据不同的类型信息将每个模型划分到对应的分类组中,得到多个分类组的步骤,包括:
遍历需要合并的所有模型,得到所有模型的类型;
如果所有模型中有新增模型,增加新增模型对应的分类组。
在一些实施方式中,上述模型的类型由模型的名称以及模型的朝向所决定。
在一些实施方式中,上述分别对每个分类组中的模型进行合并,得到一个或多个合并组结果的步骤,包括:
初始化坐标系;
获取同组模型的世界坐标以及法线向量;
根据坐标系的方向,分别合并每个方向上的同组模型,得到多个合并结果。
在一些实施方式中,上述根据坐标系的方向,合并每个方向上的同组模型的步骤,包括:
获取同组模型的表面信息;
同组模型中如果有两个模型的表面相同且位于对向一侧,将两个模型合并成一个模型。
在一些实施方式中,上述根据坐标系的方向,分别合并每个方向上的同组模型,得到多个合并组的步骤,包括:
新建临时合并组;临时合并组用于保存每个方向上的合并结果;
依次对坐标系的坐标轴中每个方向的模型进行合并,得到坐标轴中每个方向的合并结果;
将合并结果依次保存在临时合并组中,得到多个合并结果。
在一些实施方式中,上述根据合并结果生成合并模型的步骤,包括:
获取合并结果中的待渲染模型的顶点坐标以及法线向量;
根据待渲染模型的顶点坐标,计算待渲染模型的纹理坐标;
根据顶点坐标、法线向量以及纹理坐标生成所述待渲染模型。
第二方面,本发明实施例提供了一种模型渲染***,该***包括:
模型分组模块,用于根据模型的类型,将多个模型进行分组,得到多个分类组;
分组合并模块,用于分别对每个分类组中的模型进行合并,得到一个或多个合并组结果;
模型合并模块,用于根据合并结果生成合并模型;
模型渲染模块,用于对每个合并模型进行渲染显示。
第三方面,本发明实施例提供了一种电子装置,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面中任一可能的实施方式的方法的步骤。
本发明实施例带来了以下有益效果:本发明实施例提供了一种模型渲染方法、***及电子装置,该方法首先根据模型的类型,将多个模型进行分组,得到多个分类组。然后分别对每个分类组中的模型进行合并,得到一个或多个合并组结果,并根据合并结果生成合并模型,最后对合并模型进行渲染显示。本方法通过实时的对多个合并组中的模型进行合并,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的模型渲染方法的流程图;
图2为本发明实施例提供的某款三维积木搭建类游戏示意图;
图3为本发明实施例提供的模型渲染方法中步骤S101的流程图;
图4为本发明实施例提供的模型渲染方法中步骤S303的流程图;
图5为本发明实施例提供的模型渲染方法中步骤S102的流程图;
图6为本发明实施例提供的模型渲染方法中模型坐标系的示意图;
图7为本发明实施例提供的模型渲染方法中步骤S503的流程图;
图8为本发明实施例提供的模型渲染方法中步骤S103的流程图;
图9为本发明实施例提供的模型渲染具体实现过程的示意图;
图10为本发明实施例提供的模型渲染***的结构示意图;
图11为本发明实施例提供的一种电子装置结构示意图。
图标:
1001-模型分组模块;1002-分组合并模块;1003-模型合并模块;1004-模型渲染模块;101-处理器;102-存储器;103-总线;104-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在积木搭建类游戏中,玩家通过使用简单的积木组件构建出一个复杂的模型,进而在游戏过程中使用。例如,玩家可通过累加积木构建出一个类似梯子的模型,然后使用该模型逐渐爬到高处,可实现跨越障碍的功能。在模型搭建的过程中,需要使用最小单位的积木组件得以实现。这些最小单元的积木组件中包含多个表面,每个表面中包含渲染过程所需要的数据。在对累加后的模型进行渲染时,会调用较多数量的DrawCall,同时也会对数量较多的三角面数量进行渲染。
DrawCall是CPU调用图形编程接口来命令GPU进行渲染的操作,每次调用DrawCall之前,在这个过程中CPU需要完成各种准备工作,而后CPU需要向GPU发送很多数据。当GPU接收到了来自CPU发来的渲染数据指令后,GPU就可以开始本次的渲染。由于GPU的渲染能力很强,因此渲染速度的快慢往往取决于CPU提交命令的效率。如果DrawCall数量太多,CPU会把大量时间花费在提交DrawCall命令上,造成CPU的过载。所以,当模型中的积木组件较多时,渲染过程中会调用较多的DrawCall,导致游戏渲染帧率降低,游戏界面卡顿,降低了用户体验。
现有技术中降低DrawCall数量的办法就是采用合批的方式来渲染模型,其本质思想就是把很多小的DrawCall合并成一个大的DrawCall,然后一次性执行。合批过程通常适合静态物体,例如不会移动的大地、岩石等,对于该类静态物体只需要合批一次即可。当对动态物体进行批处理时,需要对每一帧进行合批,然后执行DrawCall完成渲染。当游戏设备为移动设备时,由于移动设备的性能有限,动态处理大量合批时容易出现性能问题。而且现有的合批方式并不能降低三角面的数量,其中重合的三角面仍然会重复渲染。
考虑到当前积木搭建类游戏中缺少一种能够有效降低DrawCall数量以及三角面数量的问题,本发明的目的在于提供一种模型渲染方法、***及电子装置,该技术可以应用于积木搭建类游戏中;该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种模型渲染方法进行详细介绍,该方法的流程图如图1所示,包括以下步骤:
步骤S101,根据模型的类型,将多个模型进行分组,得到多个分类组。
在积木搭建类游戏中,玩家使用积木组件构建出一个复杂的结构,其中所用到的积木组件即为上述步骤中提到的模型。玩家通过选取不同种类大小模型进行组合,最终形成玩家需要的结构,并结合游戏场景得以最终使用。由于是积木类游戏,这些模型的结构往往是规则的立体结构,才能供后续的模型继续搭建,因此这些模型通常为六面体,提供上下前后左右方向的积木搭建,最常见的就是长方体。在特殊场景下也有其它复杂立体结构的模型,这些模型上通常不再搭建积木,往往在模型搭建的结尾过程中才用到。
模型分组的依据通常按照模型的种类及大小进行,一般将完全相同的模型分为一类。也可跟根据实际情况,将截面不相同但高度相同的模型分为一类,这类模型依次排列时虽然不能后完全契合,但高度相同,排列完成后的顶部也处于同一平面中,也可后续继续累加积木模型。
分类组结果中可包含分类的依据,例如如果将完全相同的模型分为一类,则在该分类组对应的结果中包含该模型的形状,高度,截面大小等数据。而如果是将高度相同的模型分为一类,则该分类组对应的结果中包含模型的高度值。
模型分组的目的在于是后续将模型进行合并,因此模型分组时还需考虑模型之间是否具有可合并的属性,例如两个模型的高度相同而且截面相同,当两个模型放置在同一平面中,各自相同截面可以相互契合,形成一个整体,在分组时可优先将这类模型分到一起。
步骤S102,分别对每个分类组中的模型进行合并,得到一个或多个合并结果。
对已完成分类的分类组中包含的模型进行合并,合并的过程遵循分类过程的依据,例如在分类步骤中将完全相同的模型分为一组,那么在合并的过程中可将该模型依次进行叠加放置,保证模型之间的相互相同的两个面可以完全重合放置,在后续渲染过程中直接忽略这两个面。
如果在分类步骤的分类规则为其它规则,那么模型之间进行合并时也遵循尽可能多的增加重叠位置的合并思路,例如高度相同的模型在进行合并时,优先选取截面相同的两个模型进行合并。
步骤S103,根据合并结果生成合并模型。
每个分类组中的模型进行合并后,可最终生成一个模型,也可生成多个模型,但合并后的模型数量一定小于合并前的模型数量。在合并过程中对模型的截面进行合并,使得同组模型中在合并后的截面数量大为减少,有利于后续渲染时提升效率。
步骤S104,对合并模型进行渲染显示。
当每个合并组中的模型均已完成了合并过程后,对合并组模型进行渲染显示。本实施例中提到的渲染技术,涉及计算机动画领域。该领域中的渲染是指电脑绘图中通过采用相关三维渲染软件从模型生成图像的过程。本领域中的模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。
渲染显示过程中包含模型所处场景中的各种环境参数,例如灯光、材质、渲染相关参数。还包括模型本身参数,如顶点数据、法线数据以及纹理数据等。在积木类搭建游戏的场景中,渲染显示的过程通过CPU调用GPU进行。计算的过程通过DrawCall得以实现,DrawCall是CPU调用***图形编程接口来命令GPU进行渲染的操作。
渲染过程的实现需要结合三维渲染软件或渲染引擎得以实现,具体实施过程中,首先对三维渲染软件或渲染引擎进行可见性测试,确定主摄像机(第一人称视角)可以看到的模型。然后将所需的模型中的顶点、索引、变换、相关光源、纹理、渲染方式等数据进行初始化,初始化结束后通知***图形编程接口,图形编程接口调用GPU并根据上述参数对模型进行绘制。GPU绘制过程中是通过绘制三角面的方式最终得到所需要的三维渲染图像。
由于在步骤S103中的合并过程减少了模型的截面数量,合并后的待渲染模型数量也远小于模型合并前的数量,因此在渲染的过程中可大量减少DrawCall数量,所需渲染的三角面的数量也大幅度减少,因此有利于模型渲染的速度和效率。
本发明实施例提到的模型渲染方法中,通过实时的对多个合并组中的模型进行合并,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
为了便于理解,在此给出实际应用中的示例。在某款三维积木搭建类游戏中,通过简单的模型搭建出一个复杂的模型,并最终对该复杂模型进行渲染,模型的结构如图2所示。
由图2可知,待渲染的模型时一个由简单模型搭建而成的复杂模型,该模型渲染的过程中DrawCall的数量较多,而且涉及到的截面较多,导致渲染的效率下降,尤其是在性能有限的移动设备中,渲染过程时容易出现性能不足的情况,导致游戏卡顿。
为了解决上述问题,可采用上述实施方式中提到的模型渲染方式。如图3所示,在实际的实施过程中,步骤S101还包括:
步骤S301,获取每个模型的类型。
模型类型的获取过程通过遍历所有模型得到,就也在模型初始化过程中进行确定。在该示例中,所有模型的类型在创立时就已确定,均为立方体模型,而且纹理(UV)是可以四方连续的。
步骤S302,针对每个类型分别建立对应的分类组。
由于该示例中只包含一个分类组,因此建立的分类组中只放置完全相同的模型。如果在步骤S301中得到多个模型的类型,那么在该步骤中对于每个类型分别建立对应的分类组。
步骤S303,遍历需要合并的所有模型,根据不同的类型信息将每个模型划分到对应的分类组中,得到多个分类组。
分组的过程中根据模型的类型信息,该类型信息不仅包括模型的大小和形状,还包括模型的朝向以及摆放位置。在本示例中,如果玩家添加的积木为规则积木,而且该积木之间的朝向相同,则将积木添加到同一个合并组内。
如图4所示,在一些实施方式中,步骤S303还包括:
步骤S401,遍历需要合并的所有模型,得到所有模型的类型。
在上述示例中,如果玩家执行添加积木的操作,如果所添加的积木为规则模型,则在已经创建的分类组中进行遍历,并得到所有的模型类型,并最终判断是否有新的分类组。模型的类型由模型的名称以及模型的朝向所决定。
步骤S402,如果所有模型中有新增模型,增加新增模型对应的分类组。
如果用户进行了增加积木的操作,而且新增的积木类型属于新的合并组,那么增加模型对应的分类组;如果新增的积木类型不属于新的分类组,那么将该模型添加到已有的分类组中。
如果用户进行了删除积木的操作,如果删除后的模型上记录的分类组不为空,则从该分类组中删除当前模型;如果分类组中的模型删除后为空,则连该组也进行删除。
如图5所示,在一些实施方式中,上述步骤S102还包括:
步骤S501,初始化坐标系。
分类组完成之后,首先进行初始化坐标系的操作,如图6所示。坐标系的选取与模型的形状有关,在示例中的模型为规则的长方体,那么坐标系的原点选择在长方体中的其中一个顶点A处,坐标轴选取顶点对应的三条边坐在的直线上,对应的顶点分别是B、C、D。
步骤S502,获取同组模型的世界坐标以及法线向量。
选取完坐标系后,得到同组模型中其它模型的世界坐标以及对应的法线向量。在本实施例中,每个模型在分离组中使用AB、AC、AD这三个向量进行表示。
步骤S503,根据坐标系的方向,分别合并每个方向上的同组模型,得到多个合并结果。
如图7所示,在一些实施方式中,上述步骤S503还包括:
步骤S701,新建临时合并组;临时合并组用于保存每个方向上的合并结果。
合并的过程以此按照AB,AC,AD三个方向进行合并,为每个组新建一个对应的合并组,例如原本组为G1,G1中存放有所有的待合并的模型,对AD方向的模型进行合并后,得到的合并结果记为R1,保存在新建的临时合并组中。然后再将合并结果R1沿着AD方向进行合并,得到的合并结果记为R2,同样保存在新建的临时合并组中。类似的再将合并结果R2沿着AB方向进行合并,得到的合并结果记为R3,保存在新建的临时合并组中。
步骤S702,依次对坐标系的坐标轴中每个方向的模型进行合并,得到坐标轴中每个方向的合并结果。
以AD方向合并过程为例,遍历G1中的模型,为了表述方便,本实施例中G1的模型记为S0。将S0逐一与R1中的模型数据进行比较,如果R1中数据为空,则直接将S0放入R1中。如果R1中数据不为空,逐一遍历R1中的模型,查找R1中与模型S0进行左合并的模型S1以及右合并的模型S2。设R1中当前遍历模型为S3,如果S3的A点坐标等于S0的D点坐标并且S3的AB长度等于S0的AB长度,S3的AC长度等于S0的AC长度,则S3设为S0的右邻接模型S2。同理,如果S3的D点坐标等于S0的A点坐标,并且S3的AB长度等于S0的AB长度,S3的AC长度等于S0的AC长度,则S3为S0的左邻接模型S1。
查找之后,如果S1、S2都不存在,则将S0拷贝一份放入到G2中,如果S1、S2都存在,则将S1的D点修改为S2的D点,并删除S3,即S1表示S0、S1、S2三个立方体的合并。如果只有S1存在,则将S1的D点修改为S0的D点,即S1表示S0、S1两个立方体的合并。如果只有S2存在,则S2的A点坐标修改为S0的A点坐标,即S2表示S0、S2两个立方体的合并。
步骤S703,将合并结果依次保存在临时合并组中,得到多个合并结果。
该步骤中使用合并组G1的数据,沿着AD方向进行合并,得到合并结果R1。然后使用保存的R1数据,沿着AB方向进行合并,得到合并结果R2。再使用保存的R2数据,沿着AC方向进行合并,得到合并结果R3。
上述过程中,当获取到合并结果R3时,合并结果R1和R2可进行清空。清空的过程也可随着合并的过程进行,例如在得到合并结果R2后,可将合并结果R1进行清空。
合并完成后,需要对合并组中的模型进行渲染,如图8所示,上述渲染步骤S103还包括:
步骤S801,获取合并结果中的待渲染模型的顶点坐标以及法线向量。
合并完毕后,根据每个R3中合并的数据构建立方体。法线和切线使用步骤S502中的法线以及对应的切线数据。
步骤S802,根据待渲染模型的顶点坐标,计算待渲染模型的纹理坐标。
由于纹理方向是四方连续的,所以可以根据新创建的立方体模型的边长来计算UV值。例如原始模型中A点UV值是(0,0),D点UV值是(1,0),合并后的设为A1、D1点,计算A、D之间长度L,A1、D1之间长度L1,计算L1除以L的数组为N,则A1点UV值为(0,0),D1点UV值为(N,0)。使用同样的方法计算出其他顶点的UV值。
步骤S803,根据顶点坐标、法线向量以及纹理坐标生成所述待渲染模型,通过三维渲染引擎完成模型的渲染。
对应图2中的模型样式,对该模型进行渲染,如图9A所示。首先在模型中建立坐标系,以A为原点,相互垂直的AB、AC、AD作为三个坐标轴。首先对AD方向的模型进行合并后,得到的结果如图9B所示;再对AB方向进行合并,由于模型在AB方向只有一个子模型,此时合并后的模型并不会发生变化。AB方向合并完毕后对AC方向进行合并,得到最终的合并结果如图9C所示。
图9C与图9A对比可见,图9C中重合面数量远小于9A中的重合面数量,因此对9C进行模型渲染时所需要渲染的三角面的数量要远远小于9A中的数量。
上述实施例中可知,该模型渲染方法通过采用合并多个规则模型的方式,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
对应于上述用于模型渲染方法的实施例,参见图10所述的一种模型渲染***,该***包括以下模块:
模型分组模块1001,用于根据模型的类型,将多个模型进行分组,得到一个或多个分类组;
分组合并模块1002,用于分别对每个分类组中的模型进行合并,得到多个合并组结果;
模型合并模块1003,用于根据合并结果生成合并模型;
模型渲染模块1004,用于对每个合并模型进行渲染显示。
本发明实施例所提供的模型渲染***,其实现原理及产生的技术效果和前述用于模型渲染方法的实施例相同,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
本实施例还提供一种电子装置,为该电子装置的结构示意图如图11所示,该装置包括处理器101和存储器102;其中,存储器102用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述用于模型渲染方法。
图11所示的服务器还包括总线103和通信接口104,处理器101、通信接口104和存储器102通过总线103连接。
其中,存储器102可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线103可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
通信接口104用于通过网络接口与至少一个用户终端及其它网络单元连接,将封装好的IPv4报文或IPv4报文通过网络接口发送至用户终端。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成前述实施例的方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、设备和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以用软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种模型渲染方法,其特征在于,所述方法包括:
根据所述模型的类型,将多个所述模型进行分组,得到多个分类组;
分别对每个所述分类组中的模型进行合并,得到一个或多个合并结果;
根据所述合并结果生成合并模型;
对所述合并模型进行渲染显示;
所述模型的类型由所述模型的名称以及所述模型的朝向所决定;
所述分别对每个所述分类组中的模型进行合并,得到一个或多个合并结果的步骤,包括:
初始化坐标系;
获取同组所述模型的世界坐标以及法线向量;
根据所述坐标系的方向,分别合并每个方向上的同组所述模型,得到多个合并结果;
根据所述坐标系的方向,分别合并每个方向上的同组所述模型,得到多个合并结果的步骤,包括:
新建临时合并组;所述临时合并组用于保存所述每个方向上的合并结果;
依次对所述坐标系的坐标轴中每个方向的所述模型进行合并,得到所述坐标轴中每个方向的合并结果;
将所述合并结果依次保存在所述临时合并组中,得到多个所述合并结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述模型的类型,将多个所述模型进行分组,得到多个分类组的步骤,包括:
获取每个模型的类型;
针对每个所述类型分别建立对应的分类组;
遍历需要合并的所有所述模型,根据不同的类型信息将每个所述模型划分到对应的所述分类组中,得到多个分类组。
3.根据权利要求2所述的方法,其特征在于,所述遍历需要合并的所有所述模型,根据不同的类型信息将每个所述模型划分到对应的所述分类组中,得到多个分类组的步骤,包括:
遍历需要合并的所有所述模型,得到所有所述模型的类型;
如果所有所述模型中有新增模型,增加所述新增模型对应的分类组。
4.根据权利要求1所述的方法,其特征在于,根据所述坐标系的方向,合并每个方向上的同组所述模型的步骤,包括:
获取同组所述模型的表面信息;
同组所述模型中如果有两个模型的表面相同且位于对向一侧,将所述两个模型合并成一个模型。
5.根据权利要求1所述的方法,其特征在于,所述根据所述合并结果生成合并模型的步骤,包括:
获取所述合并结果中的待渲染模型的顶点坐标以及法线向量;
根据所述待渲染模型的顶点坐标,计算所述待渲染模型的纹理坐标;
根据所顶点坐标、法线向量以及纹理坐标生成所述待渲染模型。
6.一种模型渲染***,其特征在于,所述***包括:
模型分组模块,用于根据所述模型的类型,将多个所述模型进行分组,得到多个分类组;
分组合并模块,用于分别对每个所述分类组中的模型进行合并,得到一个或多个合并结果;
模型合并模块,用于根据所述合并结果生成合并模型;
模型渲染模块,用于对所述合并模型进行渲染显示;
所述模型的类型由所述模型的名称以及所述模型的朝向所决定;
所述分组合并模块,还用于:初始化坐标系;获取同组所述模型的世界坐标以及法线向量;根据所述坐标系的方向,分别合并每个方向上的同组所述模型,得到多个合并结果;
所述分组合并模块,在根据所述坐标系的方向,分别合并每个方向上的同组所述模型,得到多个合并结果的过程中,还用于:新建临时合并组;所述临时合并组用于保存所述每个方向上的合并结果;依次对所述坐标系的坐标轴中每个方向的所述模型进行合并,得到所述坐标轴中每个方向的合并结果;将所述合并结果依次保存在所述临时合并组中,得到多个所述合并结果。
7.一种电子装置,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911373358.8A CN111063032B (zh) | 2019-12-26 | 2019-12-26 | 模型渲染方法、***及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911373358.8A CN111063032B (zh) | 2019-12-26 | 2019-12-26 | 模型渲染方法、***及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111063032A CN111063032A (zh) | 2020-04-24 |
CN111063032B true CN111063032B (zh) | 2024-02-23 |
Family
ID=70303894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911373358.8A Active CN111063032B (zh) | 2019-12-26 | 2019-12-26 | 模型渲染方法、***及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111063032B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111710020B (zh) * | 2020-06-18 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 动画渲染方法和装置及存储介质 |
CN112473127A (zh) * | 2020-11-24 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 大规模相同物件渲染的方法、***、电子装置和存储介质 |
CN114042311A (zh) * | 2021-11-15 | 2022-02-15 | 中国联合网络通信集团有限公司 | 信息处理方法、边缘服务器、电子设备、计算机介质 |
CN116977537A (zh) * | 2022-04-22 | 2023-10-31 | 北京字跳网络技术有限公司 | 一种合批渲染方法、装置、设备及存储介质 |
CN114818097B (zh) * | 2022-07-01 | 2022-09-09 | 中国建筑西南设计研究院有限公司 | 一种基于运算规则的建筑工程设计三维模型动态描述方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015188749A1 (en) * | 2014-06-10 | 2015-12-17 | Tencent Technology (Shenzhen) Company Limited | 3d model rendering method and apparatus and terminal device |
CN106780686A (zh) * | 2015-11-20 | 2017-05-31 | 网易(杭州)网络有限公司 | 一种3d模型的合并渲染***及方法、终端 |
WO2019052371A1 (zh) * | 2017-09-12 | 2019-03-21 | 阿里巴巴集团控股有限公司 | 3d模型数据处理方法、装置及*** |
CN109816762A (zh) * | 2019-01-30 | 2019-05-28 | 网易(杭州)网络有限公司 | 一种图像渲染方法、装置、电子设备和存储介质 |
CN109816763A (zh) * | 2018-12-24 | 2019-05-28 | 苏州蜗牛数字科技股份有限公司 | 一种图形渲染方法 |
CN109949413A (zh) * | 2019-03-27 | 2019-06-28 | 武汉数文科技有限公司 | 模型展示方法、***及电子设备 |
-
2019
- 2019-12-26 CN CN201911373358.8A patent/CN111063032B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015188749A1 (en) * | 2014-06-10 | 2015-12-17 | Tencent Technology (Shenzhen) Company Limited | 3d model rendering method and apparatus and terminal device |
CN106780686A (zh) * | 2015-11-20 | 2017-05-31 | 网易(杭州)网络有限公司 | 一种3d模型的合并渲染***及方法、终端 |
WO2019052371A1 (zh) * | 2017-09-12 | 2019-03-21 | 阿里巴巴集团控股有限公司 | 3d模型数据处理方法、装置及*** |
CN109816763A (zh) * | 2018-12-24 | 2019-05-28 | 苏州蜗牛数字科技股份有限公司 | 一种图形渲染方法 |
CN109816762A (zh) * | 2019-01-30 | 2019-05-28 | 网易(杭州)网络有限公司 | 一种图像渲染方法、装置、电子设备和存储介质 |
CN109949413A (zh) * | 2019-03-27 | 2019-06-28 | 武汉数文科技有限公司 | 模型展示方法、***及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111063032A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111063032B (zh) | 模型渲染方法、***及电子装置 | |
US9842425B2 (en) | System and method for rendering three-dimensional scenes by a computer graphics processor using orthogonal projection | |
US7561156B2 (en) | Adaptive quadtree-based scalable surface rendering | |
CN111145329B (zh) | 模型渲染方法、***及电子装置 | |
US8217962B2 (en) | Single-pass bounding box calculation | |
US8725466B2 (en) | System and method for hybrid solid and surface modeling for computer-aided design environments | |
JP4230456B2 (ja) | 3次元画像処理 | |
CN107578467B (zh) | 一种医疗器械三维建模方法及装置 | |
US20230410433A1 (en) | Navigation mesh update | |
US9959685B2 (en) | Method and system for selectively blending buildings to improve route visibility in a 3D navigation system | |
US20240212236A1 (en) | Polygon Processing Methods and Systems | |
JP6700480B2 (ja) | ポリゴンモデル生成装置、ポリゴンモデル生成方法及びプログラム | |
CN107808388B (zh) | 包含运动目标的图像处理方法、装置及电子设备 | |
CN117152237A (zh) | 一种距离场生成方法、装置、电子设备及存储介质 | |
KR20180088876A (ko) | 이미지 처리 방법 및 장치 | |
KR100693134B1 (ko) | 3차원 이미지 처리 | |
CN116109767A (zh) | 三维场景的渲染方法、图像处理器、电子设备及存储介质 | |
JP2011203785A (ja) | ポリゴン分割装置およびポリゴン分割方法 | |
CN113797531A (zh) | 遮挡剔除实现方法、装置、计算机设备及存储介质 | |
EP3937135B1 (en) | Instanced rendering of voxel octree | |
CN117808949B (zh) | 一种场景渲染方法 | |
CN115496818B (zh) | 一种基于动态物体分割的语义图压缩方法和装置 | |
CN110384926A (zh) | 位置确定方法及装置 | |
US20240104847A1 (en) | Techniques for parallel edge decimation of a mesh | |
JP7368950B2 (ja) | 効率的な建物フットプリント特定のための方法及び装置 |
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 |