CN111145329B - 模型渲染方法、系统及电子装置 - Google Patents
模型渲染方法、系统及电子装置 Download PDFInfo
- Publication number
- CN111145329B CN111145329B CN201911363238.XA CN201911363238A CN111145329B CN 111145329 B CN111145329 B CN 111145329B CN 201911363238 A CN201911363238 A CN 201911363238A CN 111145329 B CN111145329 B CN 111145329B
- Authority
- CN
- China
- Prior art keywords
- model
- sub
- models
- data
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000008569 process Effects 0.000 claims description 30
- 238000010276 construction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000001788 irregular Effects 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
- 230000009467 reduction Effects 0.000 description 1
- 239000011435 rock Substances 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种模型渲染方法、系统及电子装置,涉及模型渲染技术领域,该方法将模型拆分成多个子模型,对子模型设置类型值;根据子模型中的顶点索引信息与相对应的类型值生成子模型的索引缓存数据;将子模型进行合并得到合并模型,子模型的索引缓存数据保存在合并模型中;根据索引缓存数据,对合并模型进行渲染。本方法通过对多个合并组中的模型进行合并,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
Description
技术领域
本发明涉及模型渲染技术领域,尤其是涉及一种模型渲染方法、系统及电子装置。
背景技术
在现有的积木搭建类三维游戏中,玩家将多个规则的积木最小单元通过手动搭建,最终形成一个复杂模型,用于后续游戏使用。由于该复杂模型中包含所有积木元件的表面信息,因此在模型渲染的过程中需要调用较多数量的DrawCall,渲染较多数量的三角面。当复杂模型中包含较多的积木元件时,渲染过程会占用游戏设备较多的资源,严重时影响游戏运行的效率,导致游戏渲染帧率降低,用户体验度下降。
现有技术中将复杂模型进行拆分,根据积木元件的重合关系进行合批渲染,但该类方式虽然减少了渲染三角面的数量,但模型拆分之后会增加渲染DrawCall数量,导致渲染效率下降。尤其是当在移动设备中运行该类游戏时,由于移动设备的性能有限,应对复杂模型时容易出现性能问题。
综上所述,对于积木搭建类游戏中,现有技术中缺少一种能够有效降低DrawCall数量以及三角面数量的方式方法。
发明内容
有鉴于此,本发明的目的在于提供一种模型渲染方法、系统及电子装置。通过对模型进行实时分组合并的方式,减少渲染所需的DrawCall以及三角面的数量,提高模型渲染的效率。
第一方面,本发明实施例提供了一种模型渲染方法,该方法包括:
将模型拆分成多个子模型,对子模型设置类型值;
根据类型值,生成子模型的顶点数据和索引数据;
根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据;
根据合并模型的顶点数据和索引数据,对合并模型进行渲染显示。
在一些实施方式中,上述将模型拆分成多个子模型,对子模型设置类型值的步骤,包括:
获取模型的表面信息,表面信息中包含各个表面对应的唯一索引信息;
根据表面信息将模型拆分成多个子模型,子模型的数量与模型的表面数量相同;
将表面对应的唯一索引信息,设置为对应的子模型的类型值。
在一些实施方式中,上述根据类型值,生成子模型的顶点数据和索引数据的步骤,包括:
获取模型的表面信息;
根据模型的表面信息中包含的顶点数据,确定子模型的顶点数据;
根据模型的表面信息中包含的表面数量,确定子模型的索引数据。
在一些实施方式中,上述根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据的步骤,包括:
根据子模型的顶点数据和索引数据的数量,确定合并模型的顶点数据;
根据子模型的索引数据和顶点数据的数量,确定子模型位于合并模型中的索引数据。
在一些实施方式中,上述索引数据的数量,采用以下算式进行计算:
N=2M-1
其中,N为索引数据的数量,M为子模型的数量。
在一些实施方式中,上述根据合并模型的顶点数据和索引数据,对合并模型进行渲染显示的步骤,包括:
遍历子模型对应的索引数据,得到所有子模型的可见状态;
如果子模型为可见状态,获取子模型的顶点索引信息与子模型对应的类型值进行合并,得到合并结果;
如果子模型为不可见状态,忽略子模型的合并过程。
在一些实施方式中,上述子模型的可见状态通过二进制数进行描述;
如果渲染过程中要隐藏子模型的表面,将该子模型的表面设置为不可见状态,用0进行描述;
如果渲染过程中要显示子模型的表面,将该子模型的表面设置为可见状态,用1进行描述。
在一些实施方式中,上述模型为正方体。
第二方面,本发明实施例提供了一种模型渲染系统,该系统包括:
模型拆分模块,用于将模型拆分成多个子模型,对子模型设置类型值;
子模型数据生成模块,用于根据类型值,生成子模型的顶点数据和索引数据;
合并模型数据生成模块,用于根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据;
模型渲染模块,用于根据合并模型的顶点数据和索引数据索,对合并模型进行渲染显示。
第三方面,本发明实施例提供了一种电子装置,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面中任一可能的实施方式的方法的步骤。
本发明实施例带来了以下有益效果:本发明实施例提供了一种模型渲染方法、系统及电子装置,该方法首先将模型拆分成多个子模型,对子模型设置类型值,然后根据类型值,生成子模型的顶点数据和索引数据。再根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据,最后根据合并模型的顶点数据和索引数据,对合并模型进行渲染显示。本方法通过实时的对多个合并组中的模型进行合并,减少了模型的重合面,进而减少需要渲染的模型三角面以及DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的模型渲染方法的流程图;
图2为本发明实施例提供的某款三维积木搭建类游戏示意图;
图3为本发明实施例提供的模型渲染方法中步骤S101的流程图;
图4为本发明实施例提供的模型渲染方法中模型索引信息对照图;
图5为本发明实施例提供的模型渲染方法中步骤S102的流程图;
图6为本发明实施例提供的模型渲染方法中步骤S103的流程图;
图7为本发明实施例提供的模型渲染方法中步骤S104的流程图;
图8为本发明实施例提供的模型渲染系统的结构示意图;
图9为本发明实施例提供的一种电子装置结构示意图。
图标:
801-模型拆分模块;802-子模型数据生成模块;803-合并模型数据生成模块;804-模型渲染模块;101-处理器;102-存储器;103-总线;104-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在积木搭建类游戏中,玩家通过使用简单的积木组件构建出一个复杂的模型,进而在游戏过程中使用。例如,玩家通过最小单元的积木组件搭建出一个建筑,这个过程与真实的建筑搭建相类似,都是通过对积木组件进行布局而形成最终的建筑。在对已完成搭建的复杂模型进行渲染时,现有技术中会将该模型拆分成多个子模型,根据重合关系获取子模型的可见性,对不可见的子模型不进行渲染,从而减少最终的渲染数量。例如对于积木搭建类游戏的复杂模型,中间位置的积木组件由于包含在模型内部,对于用户而言是不可见的,因此对此类积木组件并不采取渲染过程,从而减少了三角面的渲染数量。但模型经历了拆分,因此会调用较多数量的DrawCall,导致渲染效率降低,从而影响游戏帧率。
DrawCall是CPU(Central Processing Unit,中央处理器)调用操作系统中内置的图形编程接口来命令GPU(Graphics Processing Unit,图像处理器)进行渲染的操作。渲染时在调用DrawCall之前,CPU会完成各种准备工作,然后向GPU发送渲染指令数据。GPU接收到了来自CPU发来的渲染数据指令后,便开始本次的图形渲染。现有的GPU渲染能力很强,单纯的渲染过程很少能够达到GPU的性能瓶颈,因此渲染速度往往取决于CPU提交渲染指令的效率。如果DrawCall数量太多,CPU会把大量时间花费在提交DrawCall的过程上,容易造成CPU的过载。所以,当模型渲染过程中调用较多的DrawCall时,导致游戏渲染帧率降低,造成游戏界面卡顿,从而降低了用户体验。
现有技术中将复杂模型拆分成多个子模型进行渲染,根据模型的重合关系确定模型的可见性,对于不可见的模型忽略渲染过程,以此达到减少渲染的目的。虽然这种方式能够减少渲染三角面的数量,但模型拆分以后需要调用DrawCall的数量就会增多,同样会降低渲染效率。拆分的过程通常适合静态物体,例如不会移动的大地、岩石等,对于该类静态物体只需要拆分一次即可。当对动态物体进行批处理时,需要对每一帧进行拆分,然后执行DrawCall完成渲染。当游戏设备是移动设备时,由于移动设备的性能有限,动态处理大量合批时容易出现性能问题。
考虑到当前积木搭建类游戏中缺少一种能够有效降低DrawCall数量以及三角面数量的问题,本发明的目的在于提供一种模型渲染方法、系统及电子装置,该技术可以应用于积木搭建类游戏中;该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种模型渲染方法进行详细介绍,该方法的流程图如图1所示,包括以下步骤:
步骤S101,将模型拆分成多个子模型,对子模型设置类型值。
在一些积木搭建类游戏中内置建造场景,玩家通过建造场景中的建造模块实现自由创建建筑的功能。在建造的过程中,玩家通过选取不同的建筑元件进行累加,最终形成所需的效果。对于建造完毕的建筑而言,其中很多建筑元件的表面是重合的,这部分重合的表面是不需要进行绘制的。
该步骤中首先将模型拆分成多个子模型,拆分的思路通常按照模型的形状来确定。例如,如果模型是规则的多面体,则将模型拆分成多面体的表面数量的子模型;而如果模型是不规则的,则优先将模型拆分成多个规则形状的多面体,然后再根据这些多面体的表面数量来拆分。
拆分的数量不宜过多,过多的子模型虽然能提高渲染精度,但会增加渲染的压力,影响渲染效率;拆分的数量同样也宜过少,过少的子模型不能够完整描线模型的细节。通常模型拆分的子模型数量设置为规则模型的表面数量,例如模型为立方体,立方体共有6个面,因此将该立方体拆分成6个子模型。
对子模型设置的类型值,类似子模型的索引,每一个类型值对应一个子模型,所设置的类型值具有唯一性。该类型值的设置目的是为了后续步骤中方便调用对应的子模型。
步骤S102,根据类型值,生成子模型的顶点数据和索引数据。
在计算机图形学中顶点与其它领域中的顶点并不相同,在计算机图形中,对象通常被表示为三角多面体,其中对象的顶点不仅与三个空间坐标相关联,还与正确渲染对象所必需的其他图形信息(例如颜色,反射属性,纹理和表面法线)相关联,这些属性用于由顶点着色器(顶点管线的一部分)进行渲染。可见,在本领域中的顶点是模型的参数之一。由于每个子模型中包含一个或多个最小单元的模型元件,因此子模型在拆分后需要对包含的顶点索引信息进行获取。
获取子模型的顶点索引信息后,与对应的类型值进行合并,生成该子模型的索引缓存数据。具体实施过程中,合并时可根据顶点类型值对所有的子模型进行遍历,并记录下当前已经统计的顶点数量,每个子模型的索引缓存中的数值更改为当前数值加上已经统计的顶点数值。
对于子模型而言,同样存在着可见或不可见的状态,需要针对玩家的视角对子模型的可见状态进行判断。判断结果为是或否,对于可见性判断结果,可采用二进制方式进行保存,实施过程中可设置1为可见,0为不可见。如果子模型是不可见的,则索引缓存数据中不包含该子模型的索引信息;如果子模型是可见的,则索引缓存数据中包含该子模型的索引信息。
步骤S103,根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据。
合并的过程是将所有子模型中的顶点数据合并在一起,合并时保留其中的索引数据。索引数据的数量与所有子模型的顶点数据存在关联。如果索引数据的数量多于所有子模型的顶点数量,则多出的索引数据包含部分顶点数据。
模型合并后,步骤S102中生成的索引缓存数据保存在合并模型中,该索引缓存数据作为渲染的参数用于后续的渲染操作。
步骤S104,根据合并模型的顶点数据和索引数据,对合并模型进行渲染显示。
索引缓存数据中包含各个子模型的可见性数据,通过这些可见性数据确定子模型是否需要渲染,如果需要渲染,则使用对应的索引缓存数据实现合并模型的渲染过程。
本实施例中提到的渲染是计算机动画领域中的技术,具体是指电脑绘图中通过采用相关三维渲染软件从模型生成图像的过程。而且计算机动画领域中的模型,是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。渲染计算的过程通过CPU调用GPU得以实现,计算的过程通过DrawCall,完成了CPU调用系统图形编程接口来命令GPU进行渲染的操作。
渲染过程还需要结合渲染引擎得以实现,具体实施过程中,首先对三维渲染引擎的可见性进行测试,确定主摄像机(第一人称视角)可以看到的子模型。然后将所需渲染的模型中的顶点、索引、变换、相关光源、纹理、渲染方式等数据进行初始化,进而通知系统图形编程接口调用GPU,并根据上述参数完成对合并模型的绘制。
本发明实施例提到的模型渲染方法中,对模型进行拆分,根据隐藏面的不同选择不同的索引,最终根据索引完成模型的渲染,从而在不增加渲染DrawCall的前提下减少了渲染三角面的数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
为了便于理解,在此给出实际应用中的示例。在某款三维积木搭建类游戏中,通过基本的模型元件最终搭建出一个模型,并最终对该模型进行渲染,模型的结构如图2所示。
由图2可知,待渲染的模型时一个由多个模型单元搭建而成的立方体模型,由于该模型中包含多个模型元件,需要对这些模型元件进行遍历,通过确定每个元件界面的可见性,确定该截面是否进行渲染,从而减少了渲染三角面的数量。但模型在拆分的过程中会增加渲染DrawCall数量,会造成渲染帧率的降低,尤其是在性能有限的移动设备中,渲染过程时容易出现性能不足的情况,导致游戏卡顿。
为了解决上述问题,可采用上述实施方式中提到的模型渲染方式。如图3所示,在实际的实施过程中,步骤S101还包括:
步骤S301,获取模型的表面信息,表面信息中包含各个表面对应的唯一索引信息。
本示例中的模型为立方体,因此该模型共有6个表面。根据玩家的视角而言,该模型中的6个表面可具体分为上、下、左、右、前、后共6个表面。根据这6个表面设定对应的唯一的索引信息,该索引信息可采用数字或字母,也可以数字与字母的组合,但保证是唯一的。示例中的索引信息采用0、1、2、3、4、5来分别对应上、下、左、右、前、后共6个表面,如图4所示。该索引信息还可采用A、B、C、D、E、F来表示。
步骤S302,根据表面信息将模型拆分成多个子模型,子模型的数量与模型的表面数量相同。
该步骤中将正方体模型拆分成6个子模型,分别为上、下、左、右、前、后共6个子模型。模型拆分后的子模型数量与模型表面数量相同,均为6个。
步骤S303,将表面对应的唯一索引信息,设置为对应的子模型的类型值。
该模型表面对应的唯一索引信息,保存在对应的子模型中,并设置为该对应的子模型的类型值。
如图5所示,在一些实施方式中,步骤S102还包括:
步骤S501,获取模型的表面信息。
模型的表面信息包括模型的面的数量、面的形状、边长的数量、以及边长的长度。获取的表面信息作为数据源用于后续步骤。为了更好的描述,下面对立方体模型进行描述。
步骤S502,根据模型的表面信息中包含的顶点数据,确定子模型的顶点数据。
立方体每个面是正方形,正方形有4个顶点,因此每个子模型的顶点数据可保存在特定数组中,该数组命名为subVertexBuff,内容为(v0,v1,v2,v3)。
步骤S503,根据模型的表面信息中包含的表面数量,确定子模型的索引数据。
由于立方体共有6个面,因此每个子模型的索引数据可保存在特定数组中,该数组命名为subIndexBuff,内容为(0,1,2,0,2,3)。
如图6所示,在一些实施方式中,上述S103的步骤,包括:
步骤S601,根据子模型的顶点数据和索引数据的数量,确定合并模型的顶点数据。
由于该立方体模型子模型顶点数量为4个,立方体有6个面,因此合并模型有4×6共24个顶点。按照每个子模型的索引将这24个顶点存储到合并模型中,合并模型的顶点数据保存在VertexBuff数组中,内容为(v1,v2,……,22,v23)。
步骤S602,根据子模型的索引数据和顶点数据的数量,确定子模型位于合并模型中的索引数据。
假设子模型索引为n,则子模型邻位在合并模型中的索引数据记为tempIndexBuff,内容为(0+n*4,1+n*4,2+n*4,0+n*4,2+n*4,3+n*4)。
由于子模型均为可见或不可见两种状态,因此根据索引缓存数据的数量,采用以下算式进行计算:
N=2M-1
其中,N为索引缓存数据的数量,M为子模型的数量。示例中的模型拆分为6个子模型,该状态值的设定可设置为一个6位的二进制数,每一位数为0或1,6子模型共有2的6次方种不同组合。而由于6个面全部不可见的情况不用生成索引缓存,也就是说000000这种情况不需要考虑,因此共需要生成26-1=63种不同的缓存数据。可见,合并模型共生成了63个索引数据,即63个IndexBuff。获取该缓存数据后对这些数据进行索引值设置,可将缓存数据的最小索引值设置为1,最大索引值设置为63。
如图7所示,在一些实施方式中,上述步骤S104,包括:
步骤S701,遍历子模型对应的索引数据,得到所有子模型的可见状态。
上述子模型的可见状态通过二进制数进行描述:如果渲染过程中要隐藏子模型的表面,将该子模型表面设置为不可见状态,用0进行描述;如果渲染过程中要显示子模型的表面,将该子模型表面设置为可见状态,用1进行描述。
例如,该步骤对应的索引数据为索引值数值是1至63的63个整数,表示每个索引数对应的索引数据。其中,63表示6个二进制全部为1的数据,即111111,表明该合并模型包含6个子模型的索引数据;62表示111110,表明该合并模型不包含第一个子模型的索引数据,只包含第2至第6个子模型的索引数据。
步骤S702,如果子模型为可见状态,获取子模型的顶点索引信息与子模型对应的类型值进行合并,得到合并结果;如果子模型为不可见状态,忽略子模型的合并过程。
经过上述步骤后,合并模型生成63种索引数据,即63种IndexBuff。根据六位二进制的表示形式,这63种索引数据分别包含了不同的子模型索引数据,即分别包含了不同的tempIndexBuff。
在一些实施方式中,上述子模型的可见状态通过二进制数进行描述;如果渲染过程中要隐藏子模型的表面,将该子模型的表面设置为不可见状态,用0进行描述;如果渲染过程中要显示子模型的表面,将该子模型的表面设置为可见状态,用1进行描述。最终生成合并模型的顶点数据VertexBuff和63种IndexBuff。渲染显示的时候如果要隐藏某个面,即六位二进制中对应的位置为0,根据该二进制数据对应的IndexBuff,即可实现隐藏该面。
上述实施例中可知,该模型渲染方法根据隐藏面的不同,选择使用不同的索引的渲染方式减少了渲染三角面数量,而且并没有增加渲染DrawCall数量,提高了渲染效率,有利于提升移动设备中的积木搭建类游戏的流畅度。
对应于上述用于模型渲染方法的实施例,参见图8所述的一种模型渲染系统,该系统包括以下模块:
模型拆分模块801,用于将模型拆分成多个子模型,对子模型设置类型值。
子模型数据生成模块802,用于根据类型值,生成子模型的顶点数据和索引数据。
合并模型数据生成模块803,用于根据子模型的顶点数据和索引数据,对子模型进行合并,生成合并模型的顶点数据和索引数据。
模型渲染模块804,用于根据合并模型的顶点数据和索引数据索,对合并模型进行渲染显示。
本发明实施例所提供的模型渲染系统,其实现原理及产生的技术效果和前述用于模型渲染方法的实施例相同,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
本实施例还提供一种电子装置,为该电子装置的结构示意图如图9所示,该电子装置包括处理器101和存储器102;其中,存储器102用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述用于模型渲染方法。
图9所示的服务器还包括总线103和通信接口104,处理器101、通信接口104和存储器102通过总线103连接。
其中,存储器102可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线103可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
通信接口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.根据权利要求1所述的方法,其特征在于,所述索引数据的数量,采用以下算式进行计算:
N=2M-1
其中,N为所述索引数据的数量,M为所述子模型的数量。
4.根据权利要求1所述的方法,其特征在于,所述子模型的可见状态通过二进制数进行描述;
如果渲染过程中要隐藏所述子模型的表面,将该所述子模型的表面设置为不可见状态,用0进行描述;
如果渲染过程中要显示所述子模型的表面,将该所述子模型的表面设置为可见状态,用1进行描述。
5.根据权利要求1所述的方法,其特征在于,所述模型为正方体。
6.一种模型渲染系统,其特征在于,所述系统包括:
模型拆分模块,用于将所述模型拆分成多个子模型,对所述子模型设置类型值;
子模型数据生成模块,用于根据所述类型值,生成所述子模型的顶点数据和索引数据;
合并模型数据生成模块,用于根据所述子模型的顶点数据和索引数据,对所述子模型进行合并,生成合并模型的顶点数据和索引数据;
模型渲染模块,用于根据所述合并模型的顶点数据和索引数据,对所述合并模型进行渲染显示;
所述模型拆分模块,还用于:获取所述模型的表面信息,所述表面信息中包含各个所述表面对应的唯一索引信息;根据所述表面信息将所述模型拆分成多个所述子模型,所述子模型的数量与所述模型的表面数量相同;将所述表面对应的唯一索引信息,设置为对应的所述子模型的类型值;
所述合并模型数据生成模块,还用于:根据所述子模型的顶点数据和索引数据的数量,确定所述合并模型的顶点数据;根据所述子模型的索引数据和所述顶点数据的数量,确定所述子模型位于所述合并模型中的索引数据;
所述模型渲染模块,还用于:遍历所述子模型对应的索引数据,得到所有所述子模型的可见状态;如果所述子模型为可见状态,获取所述子模型的顶点索引信息与所述子模型对应的类型值进行合并,得到合并结果;如果所述子模型为不可见状态,忽略所述子模型的合并过程。
7.一种电子装置,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911363238.XA CN111145329B (zh) | 2019-12-25 | 2019-12-25 | 模型渲染方法、系统及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911363238.XA CN111145329B (zh) | 2019-12-25 | 2019-12-25 | 模型渲染方法、系统及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111145329A CN111145329A (zh) | 2020-05-12 |
CN111145329B true CN111145329B (zh) | 2024-03-22 |
Family
ID=70520165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911363238.XA Active CN111145329B (zh) | 2019-12-25 | 2019-12-25 | 模型渲染方法、系统及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111145329B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968210A (zh) * | 2020-08-17 | 2020-11-20 | 北京像素软件科技股份有限公司 | 物体简化模型创建、显示方法、装置、设备及存储介质 |
CN112057868A (zh) * | 2020-09-17 | 2020-12-11 | 网易(杭州)网络有限公司 | 游戏模型的合批处理方法、装置及电子设备 |
CN112562065A (zh) * | 2020-12-17 | 2021-03-26 | 深圳市大富网络技术有限公司 | 一种虚拟世界中虚拟对象的渲染方法、系统以及装置 |
CN113426130B (zh) * | 2021-07-01 | 2024-05-28 | 网易(杭州)网络有限公司 | 一种模型的合批处理方法和装置 |
CN114332323A (zh) * | 2021-12-24 | 2022-04-12 | 北京字跳网络技术有限公司 | 一种粒子效果渲染方法、装置、设备及介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324299B1 (en) * | 1998-04-03 | 2001-11-27 | Cognex Corporation | Object image search using sub-models |
CN102693250A (zh) * | 2011-08-29 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种3d模型文件导入方法及系统 |
WO2012140361A1 (fr) * | 2011-04-12 | 2012-10-18 | Real Fusio France | Procédé et système de rendu d'une scène virtuelle en trois dimensions |
CN105701854A (zh) * | 2016-01-06 | 2016-06-22 | 网易(杭州)网络有限公司 | 一种3d渲染方法、装置及引擎 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN106683189A (zh) * | 2016-11-29 | 2017-05-17 | 浙江科澜信息技术有限公司 | 一种在三维场景中渲染文字的方法 |
CN106780686A (zh) * | 2015-11-20 | 2017-05-31 | 网易(杭州)网络有限公司 | 一种3d模型的合并渲染系统及方法、终端 |
CN107038745A (zh) * | 2017-03-21 | 2017-08-11 | 中国农业大学 | 一种3d旅游景观漫游交互方法及装置 |
CN107622524A (zh) * | 2017-09-29 | 2018-01-23 | 百度在线网络技术(北京)有限公司 | 用于移动终端的显示方法和显示装置 |
CN108074285A (zh) * | 2017-12-06 | 2018-05-25 | 北京像素软件科技股份有限公司 | 体积云模拟方法和体积云模拟装置 |
CN108196835A (zh) * | 2018-01-29 | 2018-06-22 | 东北大学 | 一种游戏引擎中图元存储和渲染的方法 |
CN108339270A (zh) * | 2018-02-09 | 2018-07-31 | 网易(杭州)网络有限公司 | 游戏场景中静态组件的处理方法、渲染方法及装置 |
CN108648254A (zh) * | 2018-04-27 | 2018-10-12 | 中科创达软件股份有限公司 | 一种图像渲染方法及装置 |
CN109237999A (zh) * | 2018-09-19 | 2019-01-18 | 中国电子科技集团公司第二十八研究所 | 一种批量三维态势目标尾迹实时绘制方法和系统 |
CN109410332A (zh) * | 2018-09-17 | 2019-03-01 | 广西大学 | 基于点线面的三维空间几何虚拟模型细节层次裁剪方法 |
CN110363845A (zh) * | 2019-07-22 | 2019-10-22 | 南京聚润工程科技有限公司 | 一种bim三维模型分减面存储并重构的方法及系统 |
CN110533755A (zh) * | 2019-08-30 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110570507A (zh) * | 2019-09-11 | 2019-12-13 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
-
2019
- 2019-12-25 CN CN201911363238.XA patent/CN111145329B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324299B1 (en) * | 1998-04-03 | 2001-11-27 | Cognex Corporation | Object image search using sub-models |
WO2012140361A1 (fr) * | 2011-04-12 | 2012-10-18 | Real Fusio France | Procédé et système de rendu d'une scène virtuelle en trois dimensions |
CN102693250A (zh) * | 2011-08-29 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种3d模型文件导入方法及系统 |
CN106780686A (zh) * | 2015-11-20 | 2017-05-31 | 网易(杭州)网络有限公司 | 一种3d模型的合并渲染系统及方法、终端 |
CN105701854A (zh) * | 2016-01-06 | 2016-06-22 | 网易(杭州)网络有限公司 | 一种3d渲染方法、装置及引擎 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN106683189A (zh) * | 2016-11-29 | 2017-05-17 | 浙江科澜信息技术有限公司 | 一种在三维场景中渲染文字的方法 |
CN107038745A (zh) * | 2017-03-21 | 2017-08-11 | 中国农业大学 | 一种3d旅游景观漫游交互方法及装置 |
CN107622524A (zh) * | 2017-09-29 | 2018-01-23 | 百度在线网络技术(北京)有限公司 | 用于移动终端的显示方法和显示装置 |
CN108074285A (zh) * | 2017-12-06 | 2018-05-25 | 北京像素软件科技股份有限公司 | 体积云模拟方法和体积云模拟装置 |
CN108196835A (zh) * | 2018-01-29 | 2018-06-22 | 东北大学 | 一种游戏引擎中图元存储和渲染的方法 |
CN108339270A (zh) * | 2018-02-09 | 2018-07-31 | 网易(杭州)网络有限公司 | 游戏场景中静态组件的处理方法、渲染方法及装置 |
CN108648254A (zh) * | 2018-04-27 | 2018-10-12 | 中科创达软件股份有限公司 | 一种图像渲染方法及装置 |
CN109410332A (zh) * | 2018-09-17 | 2019-03-01 | 广西大学 | 基于点线面的三维空间几何虚拟模型细节层次裁剪方法 |
CN109237999A (zh) * | 2018-09-19 | 2019-01-18 | 中国电子科技集团公司第二十八研究所 | 一种批量三维态势目标尾迹实时绘制方法和系统 |
CN110363845A (zh) * | 2019-07-22 | 2019-10-22 | 南京聚润工程科技有限公司 | 一种bim三维模型分减面存储并重构的方法及系统 |
CN110533755A (zh) * | 2019-08-30 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110570507A (zh) * | 2019-09-11 | 2019-12-13 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
Non-Patent Citations (2)
Title |
---|
J. El-Sana等.Optimized view-dependent rendering for large polygonal datasets.IEEE.2008,全文. * |
张孝勇 ; 沈蕊 ; 温丹琪 ; .建筑信息模型与3D WebGIS平台集成方法研究.测绘.2019,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111145329A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111145329B (zh) | 模型渲染方法、系统及电子装置 | |
EP3008701B1 (en) | Using compute shaders as front end for vertex shaders | |
US9842425B2 (en) | System and method for rendering three-dimensional scenes by a computer graphics processor using orthogonal projection | |
CN111063032B (zh) | 模型渲染方法、系统及电子装置 | |
JP4230456B2 (ja) | 3次元画像処理 | |
US8471851B2 (en) | Method and device for rending three-dimensional graphics | |
KR20060052042A (ko) | 3d에서의 하드웨어 가속화된 안티-엘리어싱 방법 및시스템 | |
US8698799B2 (en) | Method and apparatus for rendering graphics using soft occlusion | |
JP2006503355A5 (zh) | ||
CN109985384B (zh) | 贴图动态调整方法及装置 | |
CN111279384B (zh) | 图形流水线中的索引的压缩和解压缩 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
KR20150093689A (ko) | 쉘 메쉬에 기초한 최적화된 다각형을 형성하기 위한 방법 | |
CN114529647A (zh) | 对象渲染方法、设备、装置、电子设备及存储介质 | |
CN114494646A (zh) | 场景渲染方法、装置和电子设备 | |
EP2034446A1 (en) | Image processing program and image processor | |
KR102108244B1 (ko) | 이미지 처리 방법 및 장치 | |
CN116109767A (zh) | 三维场景的渲染方法、图像处理器、电子设备及存储介质 | |
KR100693134B1 (ko) | 3차원 이미지 처리 | |
US10388060B2 (en) | System and method for multi-view rendering | |
WO2019204064A1 (en) | Compact visibility state for gpus compatible with hardware instancing | |
CN114529648A (zh) | 模型展示方法、设备、装置、电子设备及存储介质 | |
JP2023539808A (ja) | 深度カリングを呼び出すためのシェーダコア命令 | |
US11756258B2 (en) | Techniques for ray cone tracing and texture filtering | |
US11443475B2 (en) | Techniques for ray cone tracing and texture filtering |
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 |