CN111968210A - 物体简化模型创建、显示方法、装置、设备及存储介质 - Google Patents
物体简化模型创建、显示方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111968210A CN111968210A CN202010828741.4A CN202010828741A CN111968210A CN 111968210 A CN111968210 A CN 111968210A CN 202010828741 A CN202010828741 A CN 202010828741A CN 111968210 A CN111968210 A CN 111968210A
- Authority
- CN
- China
- Prior art keywords
- vertex
- model
- sub
- simplified model
- index data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000008569 process Effects 0.000 claims abstract description 19
- 239000003086 colorant Substances 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 12
- 238000009877 rendering Methods 0.000 abstract description 24
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 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
- 238000012545 processing Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种物体简化模型创建、显示方法、装置、设备及存储介质,该物体简化模型创建方法包括:创建虚拟场景中物体的简化模型,简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表。进而在创建所述物体的过程中,获取添加到物体中的子模型对应的顶点数据以及索引数据;子模型对应的顶点数据中的颜色为子模型预先设置的颜色;将子模型对应的顶点数据和索引数据分别加入到顶点数据表和索引数据表中。最后依据顶点数据表和索引数据表更新简化模型。这样,在显示简化模型时,只需要一次DrawCall即可完成简化模型的渲染,减少了渲染时的DrawCall数量,提高了渲染帧率。
Description
技术领域
本申请涉及模型处理技术领域,具体而言,涉及一种物体简化模型创建、显示方法、装置、设备及存储介质。
背景技术
在虚拟场景(比如三维游戏)的物体建造功能中,一个物体可能由几百块甚至几千块小的模型(即子模型)搭建构成。通常,距离虚拟摄像机距离较近的物体,需要显示高精度模型,但是离虚拟摄像机距离较远的物体,则只需要显示物体的整体轮廓即可,从而提高渲染帧率,提高渲染速度。
目前,通常是通过为每个子模型设计相应的简化模型,从而在物体远离摄像机时,显示由简化模型构成的物体。这一方式可以降低三角面数量,从而达到提高渲染帧率的目的。但是,在实际应用过程中,除了三角面数量会影响渲染帧率外,DrawCall的数量也是影响渲染帧率的重要因素之一。
DrawCall是CPU(Central Processing Unit/Processor,中央处理器)对底层图形绘制接口的调用命令,可以命令GPU(Graphics Processing Unit,图形处理器),执行渲染操作。DrawCall的调用会产生一定的开销,而Drawcall调用的开销将影响CPU或GPU的性能。因此所需调用的DrawCall的数量越多,那么对于渲染帧率的影响也就会越大。而目前的方案中,由于所需渲染的简化模型的数量仍旧很多,因此渲染时的DrawCall数量依然很多。
发明内容
本申请实施例的目的在于提供一种物体简化模型创建、显示方法、装置、设备及存储介质,用以解决目前的物体简化显示方式中DrawCall数量依然过多,影响渲染帧率的问题。
本申请实施例提供了一种虚拟场景中物体简化模型创建方法,包括:建虚拟场景中物体的简化模型;所述简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表;所述顶点数据中包含有顶点的坐标以及颜色;所述索引数据为记录构成三角面的三个顶点序号的数据;所述顶点序号为顶点在所述顶点数据表中的序号;在创建所述物体的过程中,获取添加到所述物体中的子模型对应的顶点数据以及索引数据;所述子模型对应的顶点数据中的颜色为所述子模型预先设置的颜色;将所述子模型对应的顶点数据加入到所述顶点数据表中,并将所述子模型对应的索引数据加入到所述索引数据表中;依据所述顶点数据表和索引数据表更新所述简化模型。
在上述实现过程中,可以为所需创建的物体创建一个简化模型,并对应设置用于记录该简化模型中顶点数据的顶点数据表,以及用于记录索引数据的索引数据表。其中,顶点数据中包含有顶点的坐标以及颜色,索引数据为记录构成三角面的三个顶点序号的数据。在创建物体的过程中,针对每一次添加的子模型,即获取该子模型对应的顶点数据以及索引数据添加到物体的简化模型对应的顶点数据表和索引数据表中,从而更新物体的简化模型。这样,在不需要显示物体的高精度模型时,即只需要调用该物体的简化模型进行显示即可,而本申请中,只需要一次DrawCall即可完成简化模型的渲染,不需要再像相关技术中一样,针对每一个子模型的子简化模型都需要相应的DrawCall以进行渲染,减少了渲染时的DrawCall数量,提高了渲染帧率。
进一步地,所述获取添加到所述物体中的子模型对应的顶点数据,包括:获取添加到所述物体中的子模型在物体内部的坐标朝向缩放信息;获取所述子模型中各顶点在所述子模型中的第一顶点坐标;使用所述坐标朝向缩放信息将所述第一顶点坐标转化为物体空间下的第二顶点坐标;将所述子模型对应的顶点数据加入到所述顶点数据表中,包括:将所述子模型中各顶点的第二顶点坐标以及所述子模型的颜色加入到所述顶点数据表中;获取添加到所述物体中的子模型对应的索引数据,包括:确定所述子模型中构成各三角面的顶点在所述顶点数据表中的序号,根据构成各三角面的顶点序号生成索引数据。
在实际应用中,子模型中各顶点的坐标通常是相对于子模型本身而言的。因此为了在更新物体的简化模型时,能够进行有效、统一的更新。在本申请实施例中可以获取添加到物体中的子模型在物体内部的坐标朝向缩放信息,进而使用该坐标朝向缩放信息将相对于子模型的第一顶点坐标转化为物体空间下的第二顶点坐标。进而,在实现了顶点坐标的转换后,即可有效构建索引数据并加入到索引数据表中,确保了本申请实施例方案的可靠性。
进一步地,所述方法还包括:在将所述子模型对应的顶点数据加入到所述顶点数据表中时,记录所述子模型对应的顶点数量modelVertexCnt以及所述子模型对应的顶点在所述简化模型中的起始序号curLodVertexCnt;在将所述子模型对应的索引数据加入到所述索引数据表中时,记录所述子模型对应的索引数量modelIndexCnt以及所述子模型对应的索引数据在所述简化模型中的起始序号curLodIndexCnt。
在上述实现过程中,通过记录子模型对应的顶点数量modelVertexCnt以及子模型对应的顶点在简化模型中的起始序号curLodVertexCnt,可以便于对各子模型对应的顶点数据进行管理。类似的,通过记录子模型对应的索引数量modelIndexCnt以及子模型对应的索引数据在简化模型中的起始序号curLodIndexCnt,可以便于对各子模型对应的索引数据进行管理。比如在需要删除或更换某个子模块时,即可以依据该子模型的modelVertexCnt、curLodVertexCnt、modelIndexCnt和curLodIndexCnt实现对于相应子模块的顶点数据和索引数据的删除或更新。
进一步地,所述方法还包括:在从所述物体中删除子模型时,获取所述子模型所对应的顶点数量modelVertexCnt、顶点在所述简化模型中的起始序号curLodVertexCnt、索引数量modelIndexCnt以及索引数据在所述简化模型中的起始序号curLodIndexCnt;从所述顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据;从所述索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据。
在实际创建虚拟场景中物体的过程中,往往会遇到需要删除掉某一个子模块的情况。此时即可以依据该子模型的modelVertexCnt、curLodVertexCnt、modelIndexCnt和curLodIndexCnt实现对于该子模块的顶点数据和索引数据的删除,实现对于简化模型的快速更新。
进一步地,在从所述顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据之后,所述方法还包括:更新目标子模块的顶点在所述顶点数据表中的顶点序号;所述目标子模块为在被删除的子模块之后添加到所述物体中的各子模块;在从所述索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据之后,所述方法还包括:更新所述目标子模块的索引数据中的各顶点序号。
进一步地,所述获取添加到所述物体中的子模型对应的顶点数据以及索引数据,包括:获取添加到所述物体中的子模型的子简化模型的顶点数据以及索引数据。
在上述实现过程中,子模型对应的顶点数据以及索引数据为子模型的子简化模型的顶点数据以及索引数据,因此该物体的简化模型对应的顶点数据和索引数据中,加入的就是各子模型的子简化模型的顶点数据和索引数据,从而可以有效减少简化模型中三角面的数量,从而进一步提高渲染帧率。
本申请实施例还提供了一种虚拟场景中物体显示方法,包括:获取摄像机与虚拟场景中物体的距离;在所述距离大于预设距离阈值时,显示所述物体的简化模型;所述简化模型按照前述任一种虚拟场景中物体简化模型创建方法创建得到。
在上述实现过程中,在显示简化模型时,只需要一次DrawCall即可完成简化模型的渲染,不需要再像相关技术中一样,针对每一个子模型的子简化模型都需要相应的DrawCall,减少了渲染时的DrawCall数量,提高了渲染帧率。
本申请实施例还提供了一种虚拟场景中物体简化模型创建装置,包括:创建模块、第一获取模块和控制模块;所述创建模块,用于创建虚拟场景中物体的简化模型;所述简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表;所述顶点数据中包含有顶点的坐标以及颜色;所述索引数据为记录构成三角面的三个顶点序号的数据;所述顶点序号为顶点在所述顶点数据表中的序号;所述第一获取模块,用于在创建所述物体的过程中,获取添加到所述物体中的子模型对应的顶点数据以及索引数据;所述子模型对应的顶点数据中的颜色为所述子模型预先设置的颜色;所述控制模块,用于将所述子模型对应的顶点数据加入到所述顶点数据表中,并将所述子模型对应的索引数据加入到所述索引数据表中;所述创建模块,还用于依据所述顶点数据表和索引数据表更新所述简化模型。
本申请实施例还提供了一种虚拟场景中物体显示装置,包括:第二获取模块和显示控制模块;所述第二获取模块,用于获取摄像机与虚拟场景中物体的距离;所述显示控制模块,用于在所述距离大于预设距离阈值时,显示所述物体的简化模型;所述简化模型按照前述任一种的虚拟场景中物体简化模型创建方法创建得到。
本申请实施例还提供了一种电子设备,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的虚拟场景中物体简化模型创建方法,或实现上述虚拟场景中物体显示方法。
本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的虚拟场景中物体简化模型创建方法,或实现上述虚拟场景中物体显示方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种虚拟场景中物体简化模型创建方法的流程示意图;
图2为本申请实施例提供的一种三角面示意图;
图3为本申请实施例提供的一种虚拟场景中物体显示方法的流程示意图;
图4为本申请实施例提供的一种建筑的原始模型示意图;
图5为本申请实施例提供的一种建筑的简化模型示意图;
图6为本申请实施例提供的一种物体简化模型创建装置的结构示意图;
图7为本申请实施例提供的一种物体显示装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
本申请实施例中提供了一种虚拟场景中物体简化模型创建方法和虚拟场景中物体显示方法。可以参见图1所示,图1为本申请实施例中提供的一种虚拟场景中物体简化模型创建方法流程示意图,包括:
S101:创建虚拟场景中物体的简化模型。
在本申请实施例中,需要理解的是,在虚拟场景(如三维游戏)中,对于模型的建立主要涉及到模型的顶点数据(包括顶点的坐标、顶点的颜色等)以及构成三角面的各顶点间的关系(即索引数据)。
物体模型可以看作是由一个一个三角面构成的三维立体图形,每一个三角面的颜色则由构该三角面的顶点的颜色决定。比如参见图2所示,(x1,y1)、(x2,y2)、(x3,y3)三个顶点对应的颜色均为黑色,其构成的三角面即为黑色。需要说明的是,对于构成的三角面的三个顶点颜色不同的情况,三角面可以以渐变色的形式进行显示,比如在顶点(x1,y1)为白色而(x2,y2)、(x3,y3)为黑色时,三角面中从顶点(x1,y1)到顶点(x2,y2)、(x3,y3)逐渐由白变黑的方式进行显示。
在本申请实施例中,为了便于创建物体的简化模型,可以对应为物体的简化模型设置相应的顶点数据表和索引数据表。从而将简化模型的顶点数据记录在顶点数据表中,而将索引数据则记录在索引数据表中。
需要注意的是,在顶点数据表中,各顶点对应的顶点数据会分配有相应的顶点序号。而索引数据为记录构成三角面的三个顶点的顶点序号的数据。而在实际应用过程中,可能存在同一个顶点对应有两个三角面,且这两个三角面的颜色还不一样的情况。此时,一个顶点即对应有多种颜色。在本申请实施例中,可以设定索引数据以三角面为单位进行数据记录,可以将构成一个三角面的三个顶点的顶点序号关联在一起构成一条索引数据。
S102:在创建物体的过程中,获取添加到物体中的子模型对应的顶点数据以及索引数据。
S103:将子模型对应的顶点数据加入到顶点数据表中,并将子模型对应的索引数据加入到索引数据表中。
应当理解的是,所谓创建物体,是指通过将一个个子模型放置到物体的相应位置,从而组建得到虚拟场景中的物体高精度模型。在本申请实施例中,可以在将子模型添加到物体中的同时或之后,获取该子模型所对应的顶点数据以及索引数据,并分别加入到简化模型所对应的顶点数据表和索引数据表中。
需要理解的是,从子模型中获取到的各顶点的坐标,通常是相对于子模型的坐标,而非是相对于物体空间的坐标。那么为了能够在将子模型对应的顶点数据以及索引数据,并分别加入到简化模型所对应的顶点数据表和索引数据表中后,能够用于更新物体的简化模型,这就需要简化模型所对应的顶点数据表和索引数据表中的顶点坐标是基于统一的坐标系下的坐标。
为此,在本申请实施例中,可以获取添加到物体中的子模型在物体内部的坐标朝向缩放信息,进而根据子模型中各顶点在子模型中的第一顶点坐标,使用坐标朝向缩放信息将第一顶点坐标转化为物体空间下的第二顶点坐标。
需要注意的是,在将子模型中各顶点的第一顶点坐标转化为物体空间下的第二顶点坐标后,即可将各顶点的第二顶点坐标以及对应的颜色作为顶点数据加入到顶点数据表中。此后,即可根据子模型中各三角面的顶点的第一顶点坐标,确定出在顶点数据表中构成各三角面的顶点的顶点序号,进而生成索引数据,加入到索引数据表中。
值得注意的是,在实际创建虚拟场景中物体的过程中,往往会遇到需要删除掉某一个子模块的情况。为了确保子模块删除后,所生产的简化模型能够对应去除掉与该子模型相关的内容,确保简化模型与实际创建的物体具有良好的一致性,在本申请实施例中,可以通过对各子模块的顶点数据和索引数据进行有效记录和管理来实现。
示例性的,可以在将子模型对应的顶点数据加入到顶点数据表中时,记录子模型对应的顶点数量modelVertexCnt以及子模型对应的顶点在简化模型中的起始序号curLodVertexCnt;在将子模型对应的索引数据加入到索引数据表中时,记录子模型对应的索引数量modelIndexCnt以及子模型对应的索引数据在简化模型中的起始序号curLodIndexCnt。
进而,在从物体中删除子模型时,可以获取子模型所对应的顶点数量modelVertexCnt、顶点在简化模型中的起始序号curLodVertexCnt、索引数量modelIndexCnt以及索引数据在简化模型中的起始序号curLodIndexCnt;然后从顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据;从索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据。
而为了确保简化模型与实际创建的物体具有良好的一致性,在本申请实施例中,在从顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据之后,还可以更新在被删除的子模块之后添加到所述物体中的各子模块的顶点在顶点数据表中的顶点序号,同时更新各子模块的顶点的起始序号;并更新在被删除的子模块之后添加到所述物体中的各子模块的索引数据中的各顶点序号,同时更新各子模块的索引数据在所述简化模型中的起始序号。
S104:依据顶点数据表和索引数据表更新简化模型。
在本申请实施例中,初始时创建的简化模型可以为空,即顶点数据表和索引数据表为空,从而在创建物体的过程中,不断将各子模型对应的顶点数据加入到顶点数据表中,将索引数据加入到索引数据表中,从而不断实现对于简化模型的更新,在物体创建好时,对应的简化模型即也更新完毕。
此外,初始时创建的简化模型也可以包括整个简化模型外围轮廓的基础顶点数据和索引数据,并在创建物体的过程中,不断将各子模型对应的顶点数据加入到顶点数据表中,将索引数据加入到索引数据表中,从而不断完善该简化模型,并在物体创建好时,最终得到完整的简化模型。
值得注意的是,在本申请实施例中为了进一步提高显示简化模型时的渲染帧率,可以为每一个子模块设置相应的子简化模块,以子简化模块中的顶点数据和索引数据,作为子模块对应的顶点数据以及索引数据,添加到物体的简化模型的顶点数据表和索引数据表中。这样,由于子简化模块中的顶点数据和索引数据会少于子模块的顶点数据和索引数据,从而能够有效降低得到的物体的简化模型中三角面的数量。
在本申请实施例中,在构建好虚拟场景中物体的简化模型后,即可将其用于进行虚拟场景中的物体的显示。为此,本申请实施例中还提供了一种虚拟场景中物体显示方法,参见图3所示,包括:
S301:获取摄像机与虚拟场景中物体的距离。
需要理解的是,在进行虚拟场景中画面的显示时,通常会设定一个或多个虚拟的摄像机,通过摄像机的角度摄取需提供给用户进行显示的画面。
通常,摄像机会随着某个特定物进行移动,比如在三维游戏中,摄像机通常会随着游戏人物的运动而运动,并可以调整拍摄方向。
因此,在实际的虚拟场景中,摄像机与虚拟场景中某一物体的距离是可以发生变化的。
S302:在该距离大于预设距离阈值时,显示该物体的简化模型。
应当理解的是,所显示的简化模型为通过前文所述创建方法所创建的简化模型。
还应当理解的是,人类通常关注的重点都是在于画面中距离摄像机近的物体,而对于远离摄像机的物体,并不会过于进行关注物体的细节。因此,在本申请实施例中,在虚拟场景中物体与摄像机的距离大于预设距离阈值时,即可以显示该物体的简化模型,从而提高对于物体的渲染帧率。而在虚拟场景中物体与摄像机的距离小于等于预设距离阈值时,即可以显示通过子模型搭建的物体的高精度模型,从而实现对于物体的高精度显示,满足用户的视觉需求。
通过本申请实施例所提供的方案,可以为所需创建的物体创建一个简化模型,并对应设置用于记录该简化模型中顶点数据的顶点数据表,以及用于记录索引数据的索引数据表。其中,顶点数据中包含有顶点的坐标以及颜色,索引数据为记录构成三角面的三个顶点的数据。在创建物体的过程中,针对每一次添加的子模型,即获取该子模型对应的顶点数据以及索引数据添加到物体的简化模型对应的顶点数据表和索引数据表中,从而更新物体的简化模型。这样,在不需要显示物体的高精度模型时,即只需要调用该物体的简化模型进行显示即可,只需要一次DrawCall即可完成简化模型的渲染,不需要再像相关技术中一样,针对每一个子模型的子简化模型都调用相应的DrawCall,减少了渲染时的DrawCall数量,提高了渲染帧率。
此外,在本申请实施例所提供的方案中可以采用各子模型对应的子简化模型的顶点数据和索引数据来加入到简化模型对应的顶点数据表和索引数据表中,从而更新物体的简化模型。这样可以有效减少简化模型中三角面的数量,从而进一步提高渲染帧率。
实施例二:
本实施例在实施例一的基础上,以三维游戏中的一种建筑的简化模型创建以及显示过程为例,对本申请实施例的方案进行示例说明。
1、创建建筑的子模型时,为每个子模型设置一个颜色值,记为lodColor。
2、创建建筑的原始模型时,同时创建一个该建筑的简化模型。
该简化模型中会包括多个顶点,顶点包含有坐标信号和颜色信息。
简化模型中的顶点数据记录到lodVertexBuff顶点数据表中、索引数据记录到lodIndexBuff索引数据表中。索引数据为记录构成每一个三角面的三个顶点序号的数据。顶点序号为顶点在顶点数据表中的序号。
简化模型中还记录当前顶点数量lodVertexCnt,当前的索引数量lodIndexCnt。
3、给建筑的原始模型添加一个子模型的时候,每一个子模型有一个建筑内部的坐标朝向缩放信息,该信息是相对于建筑整体而言的,是子模型在建筑局部空间下的坐标朝向缩放信息,该信息记为矩阵M。
取出该子模型对应的子简化模型的顶点数据modelVertex和索引数据modelIndex。顶点数量记为modelVertexCnt,索引数量记为modelIndexCnt。
记录下添加到简化模型中时,该子模型对应的顶点数据的起始序号curLodVertexCnt以及索引数据的起始序号curLodIndexCnt。
4、遍历子模型对应的子简化模型的所有顶点数据,取出顶点中的坐标modelPos,该坐标是子模型空间下的坐标。使用矩阵M和modelPos计算出各顶点在建筑局部空间下的顶点坐标localPos。
创建新的顶点localVertex,该顶点包含顶点坐标localPos以及顶点颜色lodColor(lodColor为该子模型的颜色)。遍历所有的索引数据,根据简化模型中的顶点数量更新模型的索引数据,例如原本索引为index,则新的索引为index+lodVertexCnt,新的索引数据记为localIndex。
5、将上一步计算到的localVertex添加到简化模型的lodVertexBuff中,将localIndex添加到简化模型的lodIndexBuff中。并更新简化模型的顶点数量lodVertexCnt为lodVertexCnt+modelVertexCnt,索引数量lodIndexCnt为lodIndexCnt+modelIndexCnt;
6、删除一个子模型的时候,根据该子模型对应的curLodVertexCnt、curLodIndexCnt,从简化模型中删除该子模型的信息。
删除方法为:从简化模型的lodVertexBuff中的第curLodVertexCnt个顶点开始,删除modelVertexCnt个顶点数据,从简化模型的lodIndexBuff中的第curLodIndexCnt个索引开始,删除modelIndexCnt个索引。并更新简化模型的lodVertexCnt、lodIndexCnt。
此外,需要将lodVertexBuff中排在该子模型之后的所有子模型对应的顶点序号减去modelVertexCnt,以及lodIndexBuff中排在该子模型之后的所有子模型对应的索引序号减去modelIndexCnt。同时,还需要更新lodIndexBuff中排在该子模型之后的所有子模型对应的索引数据中,构成三角面的索引序号。
7、更新简化模型:更新完简化模型的lodVertexBuff和lodIndexBuff后,使用lodVertexBuff和lodIndexBuff创建一个新的简化模型,该简化模型的顶点中包含顶点色(即各顶点对应的子模型的颜色)。在简化模型的shader中使用顶点色,来显示简化模型的颜色。
8、当摄像机距离建筑较近的时候,隐藏简化模型,显示原始模型。当摄像机距离建筑较远的时候,隐藏原始模型,显示简化模型。该简化模型既保持了原始模型的形状也保持了原始模型的基本颜色,极大的降低了三角面数量和DrawCall数量。
可以参见图4和图5所示,图4为建筑的原始模型,而图5为建筑的简化模型。显然,简化模型在达到降低渲染DrawCall、降低渲染三角面数量的目标的同时,还能够既保持建筑的形状,也保持建筑的基本颜色,确保建筑的整体显示效果。
实施例三:
基于同一发明构思,本申请实施例中还提供虚拟场景中物体简化模型创建装置100和虚拟场景中物体显示装置200。请参阅图6和图7所示,图6示出了采用图1所示的方法的虚拟场景中物体简化模型创建装置,图7示出了采用图3所示的方法的虚拟场景中物体显示装置。应理解,装置100和装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置100和装置200包括至少一个能以软件或固件的形式存储于存储器中或固化在装置100、装置200的操作系统中的软件功能模块。具体地:
参见图6所示,装置100包括:创建模块101、第一获取模块102和控制模块103。其中:
创建模块101,用于创建虚拟场景中物体的简化模型;简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表;顶点数据中包含有顶点的坐标以及颜色;索引数据为记录构成三角面的三个顶点序号的数据;顶点序号为顶点在顶点数据表中的序号。
第一获取模块102,用于在创建物体的过程中,获取添加到物体中的子模型对应的顶点数据以及索引数据;子模型对应的顶点数据中的颜色为子模型预先设置的颜色。
控制模块103,用于将子模型对应的顶点数据加入到顶点数据表中,并将子模型对应的索引数据加入到索引数据表中。
创建模块101,还用于依据顶点数据表和索引数据表更新简化模型。
在本申请实施例中,第一获取模块102具体用于获取添加到物体中的子模型在物体内部的坐标朝向缩放信息;获取子模型中各顶点在子模型中的第一顶点坐标;使用坐标朝向缩放信息将第一顶点坐标转化为物体空间下的第二顶点坐标。控制模块103具体用于将子模型中各顶点的第二顶点坐标以及子模型的颜色加入到顶点数据表中。第一获取模块102具体用于确定所述子模型中构成各三角面的顶点在所述顶点数据表中的序号,根据构成各三角面的顶点序号生成索引数据。
在本申请实施例中,控制模块103还用于在将子模型对应的顶点数据加入到顶点数据表中时,记录子模型对应的顶点数量modelVertexCnt以及子模型对应的顶点在简化模型中的起始序号curLodVertexCnt;在将子模型对应的索引数据加入到索引数据表中时,记录子模型对应的索引数量modelIndexCnt以及子模型对应的索引数据在简化模型中的起始序号curLodIndexCnt。
在本申请实施例中,控制模块103还用于在从物体中删除子模型时,获取子模型所对应的顶点数量modelVertexCnt、顶点在简化模型中的起始序号curLodVertexCnt、索引数量modelIndexCnt以及索引数据在简化模型中的起始序号curLodIndexCnt;从顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据;从索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据。
在本申请实施例中,控制模块103还用于在从顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据之后,更新目标子模块的顶点在顶点数据表中的顶点序号;目标子模块为在被删除的子模块之后添加到物体中的各子模块;在从索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据之后,更新目标子模块的索引数据中的各顶点序号。
在本申请实施例中,第一获取模块102具体用于获取添加到物体中的子模型的子简化模型的顶点数据以及索引数据。
参见图7所示,装置200包括:第二获取模块201和显示控制模块202;
第二获取模块201,用于获取摄像机与虚拟场景中物体的距离;
显示控制模块202,用于在距离大于预设距离阈值时,显示物体的简化模型;简化模型按照实施例一的虚拟场景中物体简化模型创建方法创建得到。
需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
实施例四:
本实施例提供了一种电子设备,参见图8所示,其包括处理器801、存储器802以及通信总线803。其中:
通信总线803用于实现处理器801和存储器802之间的连接通信。
处理器801用于执行存储器802中存储的一个或多个程序,以实现上述实施例一和/或实施例二中虚拟场景中物体简化模型创建方法,或实现上述实施例一和/或实施例二中的虚拟场景中物体显示方法。
可以理解,图8所示的结构仅为示意,电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。例如,电子设备可以为服务器。
本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(SecureDigital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中的物体简化模型创建方法,或实现上述实施例一和/或实施例二中的虚拟场景中物体显示方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种虚拟场景中物体简化模型创建方法,其特征在于,包括:
创建虚拟场景中物体的简化模型;所述简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表;所述顶点数据中包含有顶点的坐标以及颜色;所述索引数据为记录构成三角面的三个顶点序号的数据;所述顶点序号为顶点在所述顶点数据表中的序号;
在创建所述物体的过程中,获取添加到所述物体中的子模型对应的顶点数据以及索引数据;所述子模型对应的顶点数据中的颜色为所述子模型预先设置的颜色;
将所述子模型对应的顶点数据加入到所述顶点数据表中,并将所述子模型对应的索引数据加入到所述索引数据表中;
依据所述顶点数据表和索引数据表更新所述简化模型。
2.如权利要求1所述的虚拟场景中物体简化模型创建方法,其特征在于,所述获取添加到所述物体中的子模型对应的顶点数据,包括:
获取添加到所述物体中的子模型在物体内部的坐标朝向缩放信息;
获取所述子模型中各顶点在所述子模型中的第一顶点坐标;
使用所述坐标朝向缩放信息将所述第一顶点坐标转化为物体空间下的第二顶点坐标;
将所述子模型对应的顶点数据加入到所述顶点数据表中,包括:
将所述子模型中各顶点的第二顶点坐标以及所述子模型的颜色加入到所述顶点数据表中;
获取添加到所述物体中的子模型对应的索引数据,包括:
确定所述子模型中构成各三角面的顶点在所述顶点数据表中的序号,根据构成各三角面的顶点序号生成索引数据。
3.如权利要求1所述的虚拟场景中物体简化模型创建方法,其特征在于,所述方法还包括:
在将所述子模型对应的顶点数据加入到所述顶点数据表中时,记录所述子模型对应的顶点数量modelVertexCnt以及所述子模型对应的顶点在所述简化模型中的起始序号curLodVertexCnt;
在将所述子模型对应的索引数据加入到所述索引数据表中时,记录所述子模型对应的索引数量modelIndexCnt以及所述子模型对应的索引数据在所述简化模型中的起始序号curLodIndexCnt。
4.如权利要求3所述的虚拟场景中物体简化模型创建方法,其特征在于,所述方法还包括:
在从所述物体中删除子模型时,获取所述子模型所对应的顶点数量modelVertexCnt、顶点在所述简化模型中的起始序号curLodVertexCnt、索引数量modelIndexCnt以及索引数据在所述简化模型中的起始序号curLodIndexCnt;
从所述顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据;
从所述索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据。
5.如权利要求4所述的虚拟场景中物体简化模型创建方法,其特征在于,
在从所述顶点数据表中的第curLodVertexCnt个顶点数据开始,删除modelVertexCnt个顶点数据之后,所述方法还包括:
更新目标子模块的顶点在所述顶点数据表中的顶点序号;所述目标子模块为在被删除的子模块之后添加到所述物体中的各子模块;
在从所述索引数据表中的第curLodIndexCnt个索引数据开始,删除modelIndexCnt个索引数据之后,所述方法还包括:
更新所述目标子模块的索引数据中的各顶点序号。
6.如权利要求1-5任一项所述的虚拟场景中物体简化模型创建方法,其特征在于,所述获取添加到所述物体中的子模型对应的顶点数据以及索引数据,包括:
获取添加到所述物体中的子模型的子简化模型的顶点数据以及索引数据。
7.一种虚拟场景中物体显示方法,其特征在于,包括:
获取摄像机与虚拟场景中物体的距离;
在所述距离大于预设距离阈值时,显示所述物体的简化模型;所述简化模型按照权利要求1-6任一项所述的虚拟场景中物体简化模型创建方法创建得到。
8.一种虚拟场景中物体简化模型创建装置,其特征在于,包括:创建模块、第一获取模块和控制模块;
所述创建模块,用于创建虚拟场景中物体的简化模型;所述简化模型对应有用于记录顶点数据的顶点数据表,以及用于记录索引数据的索引数据表;所述顶点数据中包含有顶点的坐标以及颜色;所述索引数据为记录构成三角面的三个顶点序号的数据;所述顶点序号为顶点在所述顶点数据表中的序号;
所述第一获取模块,用于在创建所述物体的过程中,获取添加到所述物体中的子模型对应的顶点数据以及索引数据;所述子模型对应的顶点数据中的颜色为所述子模型预先设置的颜色;
所述控制模块,用于将所述子模型对应的顶点数据加入到所述顶点数据表中,并将所述子模型对应的索引数据加入到所述索引数据表中;
所述创建模块,还用于依据所述顶点数据表和索引数据表更新所述简化模型。
9.一种电子设备,其特征在于,包括处理器、存储器及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1至6任一项所述的虚拟场景中物体简化模型创建方法,或实现如权利要求7所述的虚拟场景中物体显示方法。
10.一种可读存储介质,其特征在于,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6任一项所述的虚拟场景中物体简化模型创建方法,或实现如权利要求7所述的虚拟场景中物体显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828741.4A CN111968210A (zh) | 2020-08-17 | 2020-08-17 | 物体简化模型创建、显示方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828741.4A CN111968210A (zh) | 2020-08-17 | 2020-08-17 | 物体简化模型创建、显示方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111968210A true CN111968210A (zh) | 2020-11-20 |
Family
ID=73388261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010828741.4A Pending CN111968210A (zh) | 2020-08-17 | 2020-08-17 | 物体简化模型创建、显示方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111968210A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112435330A (zh) * | 2020-12-04 | 2021-03-02 | 北京爱奇艺科技有限公司 | 一种3d模型简化方法、装置、电子设备及存储介质 |
WO2023116801A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京字跳网络技术有限公司 | 一种粒子效果渲染方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196835A (zh) * | 2018-01-29 | 2018-06-22 | 东北大学 | 一种游戏引擎中图元存储和渲染的方法 |
CN109840931A (zh) * | 2019-01-21 | 2019-06-04 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、系统及存储介质 |
CN109919827A (zh) * | 2019-02-22 | 2019-06-21 | 搜游网络科技(北京)有限公司 | 一种图形绘制方法、装置及计算机可读介质、设备 |
CN110458931A (zh) * | 2019-08-16 | 2019-11-15 | 北京天马时空网络技术有限公司 | 一种基于lod等级的三维模型数据处理方法及相关设备 |
CN110544291A (zh) * | 2019-09-11 | 2019-12-06 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
CN110570507A (zh) * | 2019-09-11 | 2019-12-13 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
CN111127611A (zh) * | 2019-12-24 | 2020-05-08 | 北京像素软件科技股份有限公司 | 三维场景渲染方法、装置及电子设备 |
CN111145329A (zh) * | 2019-12-25 | 2020-05-12 | 北京像素软件科技股份有限公司 | 模型渲染方法、系统及电子装置 |
-
2020
- 2020-08-17 CN CN202010828741.4A patent/CN111968210A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196835A (zh) * | 2018-01-29 | 2018-06-22 | 东北大学 | 一种游戏引擎中图元存储和渲染的方法 |
CN109840931A (zh) * | 2019-01-21 | 2019-06-04 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、系统及存储介质 |
CN109919827A (zh) * | 2019-02-22 | 2019-06-21 | 搜游网络科技(北京)有限公司 | 一种图形绘制方法、装置及计算机可读介质、设备 |
CN110458931A (zh) * | 2019-08-16 | 2019-11-15 | 北京天马时空网络技术有限公司 | 一种基于lod等级的三维模型数据处理方法及相关设备 |
CN110544291A (zh) * | 2019-09-11 | 2019-12-06 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
CN110570507A (zh) * | 2019-09-11 | 2019-12-13 | 珠海金山网络游戏科技有限公司 | 一种图像渲染方法及装置 |
CN111127611A (zh) * | 2019-12-24 | 2020-05-08 | 北京像素软件科技股份有限公司 | 三维场景渲染方法、装置及电子设备 |
CN111145329A (zh) * | 2019-12-25 | 2020-05-12 | 北京像素软件科技股份有限公司 | 模型渲染方法、系统及电子装置 |
Non-Patent Citations (8)
Title |
---|
"Unity API,Mesh.CombineMeshes", Retrieved from the Internet <URL:https://docs.unity.cn/2020.3/Documentation/ScriptReference/Mesh.CombineMeshes.html> * |
"Unity Manual,Transforms", Retrieved from the Internet <URL:https://docs.unity3d.com/2019.3/Documentation/Manual/Transforms.html> * |
ADAUYSELF: "Merge Mesh-合并网格", Retrieved from the Internet <URL:https://www.jianshu.com/p/656b6bb20ca4> * |
ADAUYSELF: "Mesh合并,个人小结", Retrieved from the Internet <URL:https://www.jianshu.com/p/656b6bb20ca4> * |
BING TANG等: "Real-Time Rendering for 3D Game Terrain with GPU Optimization", 2010 SECOND INTERNATIONAL CONFERENCE ON COMPUTER MODELING AND SIMULATION, 25 February 2010 (2010-02-25), pages 198 - 201 * |
冯洁等: "大型三维网格模型的简化及基于视点的LOD控制", 计算机辅助设计与图形学学报, vol. 18, no. 2, 28 February 2006 (2006-02-28), pages 186 - 193 * |
李少卿: "三维建筑模型快速简化关键技术研究", 中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑, no. 08, 15 August 2020 (2020-08-15), pages 038 - 146 * |
范文娟: "移动终端交互系统中的三维雕塑动画展示技术研究", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 03, 15 March 2017 (2017-03-15), pages 138 - 5430 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112435330A (zh) * | 2020-12-04 | 2021-03-02 | 北京爱奇艺科技有限公司 | 一种3d模型简化方法、装置、电子设备及存储介质 |
CN112435330B (zh) * | 2020-12-04 | 2024-04-23 | 北京爱奇艺科技有限公司 | 一种3d模型简化方法、装置、电子设备及存储介质 |
WO2023116801A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京字跳网络技术有限公司 | 一种粒子效果渲染方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257286B2 (en) | Method for rendering of simulating illumination and terminal | |
JP2021193599A (ja) | 仮想オブジェクトのフィギュア合成方法、装置、電子機器、記憶媒体 | |
CN109840881B (zh) | 一种3d特效图像生成方法、装置及设备 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
CN113112581A (zh) | 三维模型的纹理贴图生成方法、装置、设备及存储介质 | |
CN111968210A (zh) | 物体简化模型创建、显示方法、装置、设备及存储介质 | |
CN113900797B (zh) | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 | |
CN112714357B (zh) | 视频播放方法、视频播放装置、电子设备和存储介质 | |
CN112652046A (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
CN110248165B (zh) | 标签显示方法、装置、设备及存储介质 | |
CN109377552B (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
CN114429513A (zh) | 可见元素的确定方法和装置、存储介质及电子设备 | |
CN113178017A (zh) | Ar数据展示方法、装置、电子设备及存储介质 | |
US11620965B2 (en) | Video display method, video display system, electronic device, and storage medium | |
TW202312100A (zh) | 網格生成方法、電子設備及電腦可讀儲存介質 | |
CN114281773B (zh) | 动画显示方法、装置、电子设备及计算机可读存储介质 | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
CN114119831A (zh) | 积雪模型的渲染方法、装置、电子设备及可读介质 | |
CN114742970A (zh) | 虚拟三维模型的处理方法、非易失性存储介质及电子装置 | |
KR20180053494A (ko) | 모바일 환경에서의 증강현실 게임공간 구축방법 | |
CN111729322A (zh) | 模型的描边处理方法、装置、计算机设备及可读存储介质 | |
CN114494623A (zh) | 基于lod的地形渲染方法及装置 | |
CN109872280A (zh) | 一种三维植物叶片点云的去噪与简化方法、装置及系统 | |
US20240111496A1 (en) | Method for running instance, computer device, and storage medium | |
WO2023184357A1 (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 |