CN115984506A - 建立模型的方法和相关装置 - Google Patents

建立模型的方法和相关装置 Download PDF

Info

Publication number
CN115984506A
CN115984506A CN202111205441.1A CN202111205441A CN115984506A CN 115984506 A CN115984506 A CN 115984506A CN 202111205441 A CN202111205441 A CN 202111205441A CN 115984506 A CN115984506 A CN 115984506A
Authority
CN
China
Prior art keywords
vertices
vertexes
coordinates
vertex
model
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
Application number
CN202111205441.1A
Other languages
English (en)
Inventor
李振鹏
周臻
罗备
陈朋薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111205441.1A priority Critical patent/CN115984506A/zh
Priority to PCT/CN2022/124626 priority patent/WO2023061364A1/zh
Publication of CN115984506A publication Critical patent/CN115984506A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Abstract

本申请实施例提供一种建立模型的方法和相关装置,该方法包括:获取原始模型的N个顶点投影在目标平面上的投影坐标;从该N个顶点中确定M个顶点,其中M为大于或等于3且小于或等于N的正整数;根据该M个顶点的投影坐标和该原始模型的高度信息,建立对应于该原始模型的代理模型。利用上述技术方案可以建立原始模型的代理模型。与该原始模型相比,该代理模型保留了原始模型的细节信息,但是包括的顶点数目更少,从而结构更加简单。这样,在一些不需要利用模型渲染出图像的场景中(例如碰撞检测、遮挡剔除、阴影绘制),可以使用结构更加简单的代理模型来替代原始模型。这样可以减少运算量,提高应用运行效率,提升用户体验。

Description

建立模型的方法和相关装置
技术领域
本申请实施例涉及计算机图形学领域,更具体地,涉及建立模型的方法和相关装置。
背景技术
渲染(render)是指以软件由模型生成图像的过程。模型是用语言或者数据结构进行严格定义的三维物体的描述,它包括几何、视点、纹理、照明和阴影等信息。图像是数字图像或者位图图像。渲染的过程就是在模型的基础上添加位图纹理或者程序纹理、照明、凸凹纹理映射以及相对于其它物体的位置的过程,得到的结果就是消费者或者观察者所能看到的完整图像。
如果想要渲染出比较逼真的三维物体,那么模型需要大量的顶点和三角面。以图1为例,如果想要渲染出如图1所示的建筑物,那么需要18709个顶点以及11748个三角面。
然而,在一些场景中,三维物体的模型并不完全用于渲染出供消费者或者观察者观看的图像。在这些场景中如果还应用用于生成图像的模型,那么会加大硬件的负担。因此,如何简化三维物体的模型,以适应于不同的应用场景,是一个亟待解决的问题。
发明内容
本申请实施例提供一种建立模型的方法和相关装置,可以建立一个用于替代原始模型的代理模型,便于后续应用。
第一方面,本申请实施例提供一种建立模型方法,包括:获取N个坐标,该N个坐标分别为原始模型的N个顶点投影在目标平面上的投影坐标,N为大于或等于3的正整数;根据该N个坐标,从该N个顶点中确定M个顶点,其中M为大于或等于3且小于或等于N的正整数;根据该M个顶点的投影坐标和该原始模型的高度信息,建立对应于该原始模型的代理模型。
利用上述技术方案可以建立原始模型的代理模型。与该原始模型相比,该代理模型保留了原始模型的细节信息,但是包括的顶点数目更少,从而结构更加简单。这样,在一些不需要利用模型渲染出图像的场景中(例如碰撞检测、遮挡剔除、阴影绘制),可以使用结构更加简单的代理模型来替代原始模型。这样可以减少运算量,提高应用运行效率,提升用户体验。
结合第一方面,在第一方面的一种可能的实现方式中,该获取N个坐标,包括:根据该原始模型包括的顶点投影在该目标平面中的投影坐标,确定多个候选顶点,其中,该多个候选顶点中的每个候选顶点投影在该目标平面中的投影坐标位于参考区域内,该参考区域为该原始模型中预设比例的顶点投影在该目标平面中的区域;从该多个候选顶点中确定该N个顶点;确定该N个顶点投影在该目标平面上的投影坐标。
位于参考区域外的顶点通常是物体中凸出的部分,将这些顶点删除对代理模型的功能影响较小,但是可以获得结构更加简单的代理模型。
另外,上述技术方案还可以提升一些应用的效果。例如,建筑物A的凸出部遮挡住了建筑物B。这样,在利用建筑物A的原始模型进行遮挡剔除的时候,建筑物B就会被判断为被建筑物A遮挡。在此情况下,为了减少运算量,建筑物B的模型就不会被渲染。但是,当视角变化后,建筑物B全部或部分会显露出来,但此时建筑物B的模型没有被渲染,这样画面中就不会出现建筑物B,从而对用户体验造成很大的影响。上述技术方案中的代理模型删除了原始模型的凸出部的顶点。这样,在利用代理模型进行遮挡剔除时,建筑物B会被判断为没有被遮挡。因此,建筑部B的模型会被渲染,从而可以避免上述问题。
结合第一方面,在第一方面的一种可能的实现方式中,该从该多个候选顶点中确定该N个顶点,包括:根据该多个候选顶点中每个候选顶点投影在该目标平面中的投影坐标,确定N组候选顶点,其中该N组候选顶点中的每组候选顶点包括至少一个顶点,且任意两个属于同一组的候选顶点投影在该目标平面中的投影坐标相同,任意两个属于不同组的候选顶点投影在该目标平面中的投影坐标不同;确定该N个顶点,该N个顶点分别属于该N组候选顶点。
对于投影坐标相同的多个顶点,上述技术方案只保留其中一个顶点,这样可以更进一步减少代理模型包括的顶点数目。
结合第一方面,在第一方面的一种可能的实现方式中,该N个顶点分别为该N组候选顶点中参考方向的坐标值最大的顶点,该参考方向为与该目标平面垂直的方向;该原始模型的高度信息为该M个顶点在该参考方向的坐标值。
结合第一方面,在第一方面的一种可能的实现方式中,该原始模型的高度信息为包围盒的高度信息,该原始模型的全部顶点位于该包围盒中。
结合第一方面,在第一方面的一种可能的实现方式中,根据该N个坐标,从该N个顶点中确定M个顶点,包括:根据该N个坐标,遍历该N个顶点,将该N个顶点中的异常顶点删除,得到该M个顶点,其中,第一参考线与第二参考线之间的夹角的角度大于预设角度,该第一参考线为该异常顶点与第一相邻点之间的连线,该第二参考线为该异常顶点与第二相邻点之间的连线,该第一相邻点和该第二相邻点为该N个顶点中位于该异常顶点两侧且与该异常顶点相邻的两个顶点。
利用上述技术方案可以更进一步减少代理模型包括的顶点数目。此外,通过选择合适的预设角度,可以控制需要删除的异常顶点数目以及代理模型和原始模型的相似度。例如,预设角度越小,需要删除的异常顶点数目越多,代理模型包括的顶点数目相应减少,但是代理模型与原始模型的相似度越小;预设角度越大,需要删除的顶点数目越少,代理模型包括的顶点数目较多,但是代理模型与原始模型的相似度越大。代理模型与原始模型的相似度越高,代理模型的结构就越接近原始模型;代理模型与原始模型的相似度越低,代理模型与原始模型的差别就更大。生成代理模型的目的就是为了替换掉结构复杂的原始模型,而代理模型的结构越接近原始模型,那么对于硬件资源的节约效果越差;反之,如果代理模型与原始模型相比结构更加简单,那么对于硬件资源的解压效果越好。但是如果代理模型与原始模型的结构差距过大就无法保留原始模型的细节,反而不利于后续的应用。因此,通过选择一个合适的预设角度,可以即能保留原始模型的细节,也能起到节约硬件资源的功效。
结合第一方面,在一种可能的实现方式中,该根据该M个顶点的投影坐标和该原始模型的高度信息,建立对应于该原始模型的代理模型,包括:根据该M个顶点的投影坐标和该原始模型的高度信息,确定位于该代理模型顶面的M个顶面顶点的坐标和位于该代理模型底面的M个底面顶点的坐标;根据该M个顶面顶点的坐标和该M个底面顶点的坐标,确定顶点索引,该顶点索引用于记录该代理模型中的各个顶点的连接顺序,该代理模型包括该M个顶面顶点的坐标、该M个底面顶点的坐标和该顶点索引。
该顶点索引可以包括顶面索引、底面索引和侧面索引。顶面索引用于记录位于顶面的顶点的连接顺序,底面索引用于记录位于底面的顶点的连接顺序,侧面索引用于记录顶点在侧面的连接顺序。
该顶面索引可以根据该M个顶面顶点的坐标确定;该底面索引可以根据该M个底面顶点的坐标确定,该侧面索引可以根据该M个顶面顶点的坐标和该M个底面顶点的坐标确定。
第二方面,本申请实施例提供一种计算机设备,该计算机设备包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。
第三方面,本申请实施例提供一种计算机设备,该计算机设备包括处理器,该处理器用于与存储器耦合,读取并执行该存储器中的指令和/或程序代码,以执行第一方面或第一方面的任一种可能的实现方式。
第四方面,本申请实施例提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行第一方面或第一方面任一种可能的实现方式。
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如第一方面或第一方面的任一种可能的实现方式。
第六方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如第一方面或第一方面的任一种可能的实现方式。
附图说明
图1所示的建筑
图2是一个遮挡剔除的示意图。
图3是根据本申请实施例提供的一种建立模型的方法的示意性流程图。
图4是原始模型的顶点投影在目标平面的示意图。
图5删除异常顶点的过程的示意图。
图6是代理模型的示意图。
图7是应用本申请实施例提供的建立模型的方法的应用场景的示意性流程图。
图8是根据图3所示的方法生成的对应于图1所示的原始模型的代理模型。
图9是根据本申请实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
为了帮助本领域技术人员更好地理解本申请的技术方案,首先对本申请涉及的一些概念进行介绍。
1,包围盒(bounds)
包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。常见的包围盒算法有轴对称包围盒包围盒(Axis Aligned Bounding Box,AABB)、包围球(Bounding Sphere)、方向包围盒包围盒(Oriented Bounding Box,OBB)等。
2,网格(mesh)
网格是一系列三角面片的拼接,包括顶点坐标数据、索引坐标数据、法线数据以及纹理坐标(也可以称为UV坐标)等组成。顶点坐标数据中存储了模型所需的所有空间点的坐标,一般是三维的;之后为每个空间点生成索引,每3个索引为一组构成索引坐标,相当于选定某3个空间点构成一个三角形,索引坐标数据中描述了模型中所有的三角面片的构成;法线数据规定了每个顶点的法线方向,UV坐标指定了贴图“贴”到网格的哪个位置。
3,模型(model)
除非特殊说明本文中所称的模型是指三维模型。该三维模型可以应用于动画、游戏等场景。模型可以分为网格和贴图两部分,网格由一系列三角面片拼接而成,相当于模型的“骨骼”,贴图包括模型自带的纹理图片以及光照贴图,相当于模型的“皮肤”。
此外,除非特殊说明,本申请实施例中所称的场景、物体、建筑物等都是三维的。
4,着色器(shader)
着色器是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。在渲染管线的不同处理部分会使用不同的着色器。
5,遮挡剔除
遮挡剔除是指去掉场景中被遮挡物遮挡住的物体的模型。这样,在对该场景渲染时,可以只渲染可以被观察者看到的物体的模型。这样可以减少中央处理器(centralprocessing unit,CPU)到图形处理器(graphics processing unit,GPU)的数据传输量,也可以减少顶点着色器和片段着色器阶段的计算量,最终减少任意给定时刻的可见对象数量,从而达到优化性能,降低GPU负载的目的。
图2是一个遮挡剔除的示意图。如图2所示摄像机201的视锥体范围内包括五个建筑物,分别为建筑物211、建筑物212、建筑物213、建筑物214和建筑物215。如果观察者位于摄像机201所在的位置,那么观察者无法看到被遮挡的建筑物215和建筑物213。因此,在渲染如图2所示的场景时,可以仅渲染可以被观察者看到的建筑物,即建筑物211、建筑物212和建筑物214。
6,碰撞检测
碰撞检测是指判断物体之间是否相交(或者包含、重合)、计算焦点、预测相交时刻等。
以三维游戏为例,利用碰撞检测,可以实现人物在场景中的平滑移动,遇到一定高度内的台阶可以自动上去,而过高的台阶则把人挡住;遇到斜率较小的斜坡可以上去,斜率过大则把人挡住。
7,碰撞体(collider)
碰撞体可以用于定义碰撞对象的形状,便于实现碰撞检测。常见的碰撞体包括盒型碰撞体、球形碰撞体、胶囊碰撞体、符合碰撞体、网格碰撞体、静态碰撞体等。
8,阴影
为了更好地模拟现实的场景,在对场景进行渲染时,会绘制物体的阴影。物体的阴影可以利用体积阴影(shadow volumes)技术实现。体积阴影是一种基于几何形体的技术,它需要物体在一定方向的灯光下的轮廓去产生一个封闭的容积,然后通过光线的投射就可以决定场景中物体的阴影部分。
在遮挡剔除、碰撞检测或阴影生成等应用中,物体的模型只是起辅助作用,而非用于渲染。因此,在这些应用中,可以不需要使用用于生成供观察者观看的图像的模型。为了便于区分,以下将用于生成共观察者观看的图像的模型称为原始模型,将在遮挡剔除、碰撞检测或阴影生成等应用中起辅助作用的模型称为代理模型。
本申请提供一种建立模型的方法,该方法可以根据物体的原始模型,生成对应的代理模型。与该原始模型相比,该代理模型的结构更加简单,但是仍然可以保留原始模型的细节信息。下面,结合图1和图3对本申请实施例进行介绍。
图3是根据本申请实施例提供的一种建立模型的方法的示意性流程图。图3所示的方法可以由计算机设备或者计算机设备中的部件(例如芯片、电路等)实现。本申请实施例中所称计算机设备可以是台式计算机、笔记本电脑、平板电脑、服务器、手机、游戏机(例如游戏站(play station,PS)、任天堂主机(Nintendo switch,NS)等)等设备。为了便于描述,以下假设图3中的原始模型是如图1所示的建筑物的模型。
301,确定原始模型中的顶点投影在目标平面的投影坐标。
目标平面可以是任一个平面。但是为了便于计算,通常可以将该目标平面设置为物体的底面或者顶面。
顶点在目标平面的投影坐标有以下三种获取方案:
方案1,确定每个顶点在目标平面的投影坐标。
在此情况下,步骤301中确定的投影坐标可以是原始模型中所有顶点在目标平面的投影坐标。假设原始模型是用于渲染出如图1所示的建筑物的模型,那么在此情况下,需要获取18709个顶点投影在目标平面的投影坐标。
方案2,每组顶点中只保留一个顶点在目标平面的投影坐标
原始模型中的一些顶点在目标平面上的坐标是相同的,但是在与目标平面垂直的方向上的坐标不同。如图1所示,假设目标平面是建筑物的底面,那么一些顶点在xy平面上的坐标是相同的,但是在z轴方向的坐标是不同的。在此情况下,可以根据顶点的坐标将顶点分组,每组顶点包括一个或多个顶点。如果一组顶点包括多个顶点,那么该组顶点中的任意两个顶点在xy平面上的坐标是相同的,但是在z轴方向的坐标是不同的。属于不同组的任意两个顶点在xy平面上的坐标是不同的。这样,只确定每组顶点中的一个顶点在目标平面的投影坐标即可。还以图1为例,18709个顶点可以分为2655组顶点。在方案2的情况下,只需要确定2655个投影坐标。这样,可以大大简化后续步骤所需的计算资源。
方案3,确定参考区域内的顶点的投影坐标
根据原始模型所有顶点在目标平面的投影坐标确定一个参考区域,原始模型的95%的顶点在目标平面中的投影坐标都在这个参考区域内。在此情况下,可以只获取投影坐标在参考区域内的顶点的投影坐标。参考区域内的顶点的投影坐标的获取方式可以像上述方案1一样获取每个顶点的投影坐标;也可以像上述方案2一样,相同投影坐标的一组顶点只保留一个顶点的投影坐标。
可以理解的是,上述95%仅是一个预设比例的示意。该预设比例也可以是其他值,例如,通常可以设置为大于等于90%,小于等于98%。
位于参考区域外的顶点通常是物体中凸出的部分,将这些顶点删除对代理模型的功能影响较小。
为了便于描述,以下假设步骤301中共得到了N个顶点的投影坐标,N是大于或等于3的正整数。
302,根据该N个顶点的投影坐标,从N个顶点中确定M个顶点,M是大于或等于3且小于或等于N的正整数。
在一些实施例中,该M个顶点可以通过以下步骤实现:
步骤1,确定目标顶点以及与目标顶点相邻的两个顶点(可以分别称为第一相邻点和第二相邻点),该目标顶点可以是该N个顶点中的任一个顶点;
步骤2,确定第一参考线和第二参考线,其中第一参考线是第一相邻点和该目标顶点之间的连线,该第二参考线是该目标顶点和第二相邻点之间的连线;
步骤3,确定第一参考线和第二参考线之间的夹角的角度是否大于预设角度,若该夹角的角度大于该预设角度,那么可以认为该目标顶点是一个异常顶点,可以将该异常顶点删除;若该夹角的角度小于或等于该预设角度,那么可以保留该目标顶点;
步骤4,确定该目标顶点的一个相邻点(例如第一相邻点)为一个新的目标顶点,然后重复步骤1至3,直到遍历完所有N个顶点。最终保留下的目标顶点就是该M个顶点。
该预设角度可以设置为大于90度,通常可以设置为大于或等于140度且小于或等于150度。
图4是原始模型的顶点投影在目标平面的示意图。以左上角的六个顶点为例对如何删除异常顶点进行介绍。图5删除如图4所示的左上角的六个顶点中的异常顶点的过程的示意图。假设预设角度为145度。
为了便于描述,可以将六个顶点分别称为D1,D2,D3,D4,D5和D6。用L12表示D1与D2之间的连线,用L61表示D6与D1之间的连线,用L23表示D2与D3之间的连线,以此类推。
首先假设D1为目标顶点,那么与D1相邻的两个顶点分别为D2和D6。确定L61与L12之间的夹角的角度,并将该角度与预设角度比较。显然,L61与L12之间的夹角角度小于145度。在此情况下,可以保留D1。
顶点的顺序可以通过礼物包装算法或者其他用于解决凸包问题的算法来确定。例如,在一些实施例中,假设以D1为起点的一条射线从12点方向逆时针扫描,扫描过程中第一个与该射线重叠的顶点就是D1相邻的顶点D2;继续扫描,第二个与该射线重叠的点就是与D2相邻的顶点D3,以此类推,直到确定了所有顶点的顺序。
继续以D2为目标顶点,与D2相邻的两个顶点分别为D1和D3。确定L12与L23之间的夹角的角度,并将该夹角的角度与预设角度比较。显然,L12与L23之间的夹角角度大于145度,那么可以认为D2是一个异常顶点,删除D2。
继续以D3为目标顶点,与D3相邻的两个顶点分别为D1和D4。确定L13与L34之间的夹角的角度,并将该角度与预设角度比较。显然,L13与L34之间的夹角角度小于145度。在此情况下,可以保留D3。
继续以D4为目标顶点,与D4相邻的两个顶点分别为D3和D5。确定L34与L45之间的夹角的角度,并将该夹角的角度与预设角度比较。显然,L34与L45之间的夹角角度小于145度。在此情况下,可以保留D4。
继续以D5为目标顶点,与D5相邻的两个顶点分别为D4和D6。确定L45与L56之间的夹角的角度,并将该夹角的角度与预设角度比较。显然,L45与L56之间的夹角角度大于145度,那么可以认为D5是一个异常顶点,删除D5。
继续以D6为目标顶点,与D6相邻的两个顶点分别为D4和D1。确定L46与L61之间的夹角的角度,并将该夹角的角度与预设角度比较。显然,L46与L61之间的夹角角度小于145度。在此情况下,可以保留D6。
通过上述步骤,将D1到D6之中包括两个异常顶点D2和D5删除,得到四个顶点,D1,D3,D4和D6。
303,根据该M个顶点的投影坐标和原始模型的高度信息,建立对应于该原始模型的代理模型。
该原始模型的高度信息是垂直于该目标平面的高度信息。高度信息可以包括最大高度和最小高度。
在一些实施例中,该原始模型的高度信息可以是该原始模型的包围盒的高度值。在确定该原始模型的顶点投影在目标平面的投影坐标之前,可以先创建一个包围盒,遍历该原始模型的所有顶点,并对该包围盒进行适当的缩放,使得该包围盒包含该原始模型的所有顶点。此时,可以记录该包围盒的高度信息。该包围盒的高度信息可以作为该原始模型的高度信息。该包围盒的最大高度是该原始模型的最大高度,该包围盒的最小高度是该原始模型的最小高度。
在另一些实施例中,该原始模型的高度信息的最大高度可以是该M个顶点的高度值。如上所述,在步骤301中,方案2和方案3中,每组顶点只保留一个顶点在目标平面的投影坐标。在此情况下,还可以确定并保存每组顶点中高度值最高的顶点的高度值。这样,通过步骤301得到的N个顶点中的每个顶点还有一个对应的高度值。由于步骤302中的M个顶点是从该N个顶点中挑选的,因此该M个顶点中的每个顶点也有一个对应的高度值。该原始模型的高度信息中的最小高度可以认为是0。
根据该M个顶点的投影坐标和原始模型的高度信息,可以确定出该M个顶点中的每个顶点的三维坐标数据。根据M个顶点的投影坐标和原始模型的高度信息中的最大高度,可以确定出位于该代理模型顶面的M个顶点的三维坐标。位于该代理模型顶面的M个顶点的三维坐标的投影坐标分别是该M个顶点的投影坐标,该M个顶点的三维坐标的高度值为高度信息中最大高度。类似的,根据M个顶点的投影坐标和原始模型的高度信息中的最小高度,可以确定出位于该代理模型底面的M个顶点的三维坐标。位于该代理模型底面的M个顶点的三维坐标的投影坐标分别是该M个顶点的投影坐标,该M个顶点的三维坐标的高度值为高度信息中的最小高度。
根据高度信息得到的各个顶点的三维坐标需要按照正确的连接顺序才能形成正确平面。因此,还需要确定顶点索引。顶点索引用于记录各个顶点的连接顺序。顶点索引可以包括顶面索引、底面索引和侧面索引。顶面索引用于记录位于顶面的顶点的连接顺序,底面索引用于记录位于底面的顶点的连接顺序,侧面索引用于记录顶点在侧面的连接顺序。根据顶点的坐标、顶面索引、底面索引和侧面索引可以构建与该原始模型对应的代理模型。
以图6为例,图6中的(a)中的D1、D2、D3和D4是根据投影坐标和高度信息确定的位于顶面的四个顶点,D5、D6、D7和D8是根据投影坐标和高度信息确定的位于底面的四个顶点。图6中的(b)八个顶点的正确的连接顺序。图6中的(c)是侧面的错误连接示意。
顶面索引可以通过礼物包装算法或者其他用于解决凸包问题的算法来确定。以顶面的四个顶点为例,假设以D1为起点的一条射线从12点方向逆时针扫描,扫描过程中第一个与该射线重叠的顶点就是D1相邻的顶点D2;继续扫描,第二个与该射线重叠的点就是与D2相邻的顶点D3,继续扫描,得到下一个顶点D4。这样就确定了D1到D4的连接顺序,即顶面索引。底面索引的确定方式与顶面索引的确定方式相同,为了简洁,在此就不再赘述。
下面介绍一些侧面索引的确定方式。位于顶面和底面的两个投影坐标相同的顶点的三维坐标中只有高度坐标不同。因此,这两个顶点是相关联的。在确定了两个相关联的顶点后,可以沿着其中一个顶点的简化的方向找下一个顶点(例如可以是该顶点向下的方向)。先构造第一个三角面。第二个三角面用上下关联的顶点(其中一个顶点是上一步简化方向上找到的顶点)和第一个三角面的斜边构造。这样用两个三角面形成了一个侧面。这样就可以得到正确的平面。三角面顶点索引(顶点顺序)就构成了最后侧面索引(侧面顶点的顺序)。
如图6中的(d)所示,顶点D1和顶点D5的投影坐标相同,因此,顶点D1和顶点D5是一对相关联的顶点。顶点D5的简化方向是D5到D6的方向。因此,可以确定下一个顶点为顶点D6。这样,可以确定由顶点D1、D5和D6组成的一个三角面(以下简称三角面1)。顶点D6与顶点D2是一对相关联的顶点(即顶点D6和顶点D2的投影坐标相同)。利用顶点D6和顶点D2以及三角面1中的斜边(即D1到D6的边),可以构成另一个三角面(以下称为三角面2)。这样,顶点D1、D2、D5和D6的顺序就确定了。类似的,可以确定其余顶点在侧面的顺序,得到侧面索引。
在确定了该代理模型后,还可以根据具体应用对该代理模型进行缩放。例如,为了便于碰撞检测,减少碰撞检测出现错误判断的情况出现,可以适当放大该代理模型。又如,在遮挡剔除中,可以适当缩小该代理模型,这样可以减少将需要渲染的模型判断为不需要渲染的模型的情况发生。
在一些实施例中,还可以将该代理模型与对应的原始模型叠加。这样,可以根据叠加结果对代理模型的缩放比例、高度等进行调整。
图7是应用本申请实施例提供的建立模型的方法的应用场景的示意性流程图。
701,获取场景中的需要确定代理模型的物体(例如遮挡物)的原始模型的数据。
702,根据物体的原始模型的数据,利用如图3所示的方法,建立对应于该原始模型的代理模型。
703,在该场景中生成该代理模型的预览。
704,判断该代理模型的预览结果是否满足预期。
如果没有满足预期,则可以执行步骤705;如果满足预期,则可以执行步骤706。
705,调整该代理模型的大小或者高度等数据。在调整了该代理模型的大小或高度后,可以继续判断该代理模型的预览结果是否满足预期,如果仍然不满足预期,可以继续调整该代理模型,直到满足预期。
在一些实施例中,在步骤705中除了调整该代理模型的大小或者高度以外,还可以调整生成代理模型过程中使用到的一些阈值,重新生成代理模型。例如,可以调整步骤301中用于确定获取哪些顶点的预设比例。又如,可以调整步骤302中用于判断异常顶点的预设角度。
706,烘焙生成该代理模型的持久化数据,便于后续运行时调用。
图8是根据图3所示的方法生成的对应于图1所示的原始模型的代理模型。如图8所示的代理模型只有96个顶点和60个三角面。与原始模型的顶点和三角面数目相比,该代理模型减少了约99.5%的顶点数目和三角面数目。由此可见,利用本申请提供的技术方案得到的代理模型极大地减少了顶点和三角面的数目,但是该代理模型与原始模型的契合度却相当高。这样,利用本申请技术方案提供的代理模型可以减少遮挡剔除、碰撞检测等应用的运算量,提高应用运行效率,提升用户体验。
以遮挡剔除为例,对照真实游戏案例的场景中进行测试,得到的测试结果如表1所示。
表1
Figure BDA0003306693990000091
根据表1可以看到,随着剔除率的上升,在保证保守剔除的前提下,本方案可以有效提升游戏运行时的帧率,提升游戏体验。
图9是根据本申请实施例提供的一种计算机设备的示意图。如图9所示的计算机设备900包括获取单元901、处理单元902和建模单元903。
获取单元901,用于获取N个坐标,所述N个坐标分别为原始模型的N个顶点投影在目标平面上的投影坐标,N为大于或等于3的正整数;
处理单元902,用于根据所述N个坐标,从所述N个顶点中确定M个顶点,其中M为大于或等于3且小于或等于N的正整数;
建模单元903,用于根据所述M个顶点的投影坐标和所述原始模型的高度信息,建立对应于所述原始模型的替代模型。
获取单元901、处理单元902和建模单元903的具体功能和有益效果可以参考上述方法部分实施例的描述,为了简洁,在此就不再赘述。
应理解,图9仅为示例而非限定,上述包括获取单元、处理单元和建模单元的计算机设备可以不依赖于图9所示的结构。
当该计算机设备900为芯片时,该芯片包括发送单元和处理单元。其中,发送单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路。
本申请实施例还提供了一种计算机设备,包括处理器和存储器。处理器用于与存储器耦合,读取并执行存储器中的指令和/或程序代码,以执行上述方法实施例中的步骤。
应理解,上述处理器可以是一个芯片。例如,该处理器可以是现场可编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(application specificintegrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(microcontroller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)、其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种建立模型方法,其特征在于,包括:
获取N个坐标,所述N个坐标分别为原始模型的N个顶点投影在目标平面上的投影坐标,N为大于或等于3的正整数;
根据所述N个坐标,从所述N个顶点中确定M个顶点,其中M为大于或等于3且小于或等于N的正整数;
根据所述M个顶点的投影坐标和所述原始模型的高度信息,建立对应于所述原始模型的代理模型。
2.根据权利要求1所述的方法,其特征在于,所述获取N个坐标,包括:
根据所述原始模型包括的顶点投影在所述目标平面中的投影坐标,确定多个候选顶点,其中,所述多个候选顶点中的每个候选顶点投影在所述目标平面中的投影坐标位于参考区域内,所述参考区域为所述原始模型中预设比例的顶点投影在所述目标平面中的区域;
从所述多个候选顶点中确定所述N个顶点;
确定所述N个顶点投影在所述目标平面上的投影坐标。
3.根据权利要求1所述的方法,其特征在于,所述从所述多个候选顶点中确定所述N个顶点,包括:
根据所述多个候选顶点中每个候选顶点投影在所述目标平面中的投影坐标,确定N组候选顶点,其中所述N组候选顶点中的每组候选顶点包括至少一个顶点,且任意两个属于同一组的候选顶点投影在所述目标平面中的投影坐标相同,任意两个属于不同组的候选顶点投影在所述目标平面中的投影坐标不同;
确定所述N个顶点,所述N个顶点分别属于所述N组候选顶点。
4.根据权利要求3所述的方法,其特征在于,所述N个顶点分别为所述N组候选顶点中参考方向的坐标值最大的顶点,所述参考方向为与所述目标平面垂直的方向;
所述原始模型的高度信息为所述M个顶点在所述参考方向的坐标值。
5.根据权利要求1或2所述的方法,其特征在于,所述原始模型的高度信息为包围盒的高度信息,所述原始模型的全部顶点位于所述包围盒中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,根据所述N个坐标,从所述N个顶点中确定M个顶点,包括:
根据所述N个坐标,遍历所述N个顶点,将所述N个顶点中的异常顶点删除,得到所述M个顶点,其中,第一参考线与第二参考线之间的夹角的角度大于预设角度,所述第一参考线为所述异常顶点与第一相邻点之间的连线,所述第二参考线为所述异常顶点与第二相邻点之间的连线,所述第一相邻点和所述第二相邻点为所述N个顶点中位于所述异常顶点两侧且与所述异常顶点相邻的两个顶点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述M个顶点的投影坐标和所述原始模型的高度信息,建立对应于所述原始模型的代理模型,包括:
根据所述M个顶点的投影坐标和所述原始模型的高度信息,确定位于所述代理模型顶面的M个顶面顶点的坐标和位于所述代理模型底面的M个底面顶点的坐标;
根据所述M个顶面顶点的坐标和所述M个底面顶点的坐标,确定顶点索引,所述顶点索引用于记录所述代理模型中的各个顶点的连接顺序,所述代理模型包括所述M个顶面顶点的坐标、所述M个底面顶点的坐标和所述顶点索引。
8.一种计算机设备,其特征在于,包括:
获取单元,用于获取N个坐标,所述N个坐标分别为原始模型的N个顶点投影在目标平面上的投影坐标,N为大于或等于3的正整数;
处理单元,用于根据所述N个坐标,从所述N个顶点中确定M个顶点,其中M为大于或等于3且小于或等于N的正整数;
建模单元,用于根据所述M个顶点的投影坐标和所述原始模型的高度信息,建立对应于所述原始模型的替代模型。
9.根据权利要求8所述的计算机设备,其特征在于,所述获取单元,具体用于根据所述原始模型包括的顶点投影在所述目标平面中的投影坐标,确定多个候选顶点,从所述多个候选顶点中确定所述N个顶点,确定所述N个顶点投影在所述目标平面上的投影坐标,其中,所述多个候选顶点中的每个候选顶点投影在所述目标平面中的投影坐标位于参考区域内,所述参考区域为所述原始模型中预设比例的顶点投影在所述目标平面中的区域。
10.根据权利要求8所述的计算机设备,其特征在于,所述获取单元,具体用于根据所述多个候选顶点中每个候选顶点投影在所述目标平面中的投影坐标,确定N组候选顶点,其中所述N组候选顶点中的每组候选顶点包括至少一个顶点,且任意两个属于同一组的候选顶点投影在所述目标平面中的投影坐标相同,任意两个属于不同组的候选顶点投影在所述目标平面中的投影坐标不同;
确定所述N个顶点,所述N个顶点分别属于所述N组候选顶点。
11.根据权利要求10所述的计算机设备,其特征在于,所述N个顶点分别为所述N组候选顶点中参考方向的坐标值最大的顶点,所述参考方向为与所述目标平面垂直的方向;
所述原始模型的高度信息为所述M个顶点在所述参考方向的坐标值。
12.根据权利要求8或9所述的计算机设备,其特征在于,所述原始模型的高度信息为包围盒的高度信息,所述原始模型的全部顶点位于所述包围盒中。
13.根据权利要求8至12中任一项所述的计算机设备,其特征在于,所述处理单元,具体用于根据所述N个坐标,遍历所述N个顶点,将所述N个顶点中的异常顶点删除,得到所述M个顶点,其中,第一参考线与第二参考线之间的夹角的角度大于预设角度,所述第一参考线为所述异常顶点与第一相邻点之间的连线,所述第二参考线为所述异常顶点与第二相邻点之间的连线,所述第一相邻点和所述第二相邻点为所述N个顶点中位于所述异常顶点两侧且与所述异常顶点相邻的两个顶点。
14.根据权利要求8至13中任一项所述的计算机设备,其特征在于,所述处理单元,具体用于根据所述M个顶点的投影坐标和所述原始模型的高度信息,确定位于所述代理模型顶面的M个顶面顶点的坐标和位于所述代理模型底面的M个底面顶点的坐标;
根据所述M个顶面顶点的坐标和所述M个底面顶点的坐标,确定顶点索引,所述顶点索引用于记录所述代理模型中的各个顶点的连接顺序,所述代理模型包括所述M个顶面顶点的坐标、所述M个底面顶点的坐标和所述顶点索引。
15.一种计算机设备,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-7中任一项所述的方法。
16.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-7中任一项所述的方法。
17.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的方法。
CN202111205441.1A 2021-10-15 2021-10-15 建立模型的方法和相关装置 Pending CN115984506A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111205441.1A CN115984506A (zh) 2021-10-15 2021-10-15 建立模型的方法和相关装置
PCT/CN2022/124626 WO2023061364A1 (zh) 2021-10-15 2022-10-11 建立模型的方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111205441.1A CN115984506A (zh) 2021-10-15 2021-10-15 建立模型的方法和相关装置

Publications (1)

Publication Number Publication Date
CN115984506A true CN115984506A (zh) 2023-04-18

Family

ID=85962814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111205441.1A Pending CN115984506A (zh) 2021-10-15 2021-10-15 建立模型的方法和相关装置

Country Status (2)

Country Link
CN (1) CN115984506A (zh)
WO (1) WO2023061364A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116152389B (zh) * 2023-04-24 2023-07-18 深圳大学 一种用于纹理贴图的视角选择和纹理对齐方法及相关设备
CN116543105A (zh) * 2023-05-04 2023-08-04 阿里巴巴达摩院(杭州)科技有限公司 三维物体的处理方法、系统、电子设备及存储介质
CN117313221B (zh) * 2023-11-28 2024-02-13 北京理工大学 一种用于目标易损性的建筑目标建模方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074782A (zh) * 2013-03-12 2015-11-18 三菱电机株式会社 三维信息处理装置
CN108460826B (zh) * 2017-12-28 2022-04-15 深圳市创梦天地科技有限公司 一种3d模型的处理方法及终端
CN110349267B (zh) * 2019-06-06 2023-03-14 创新先进技术有限公司 三维热度模型的构建方法以及装置
CN111223177B (zh) * 2019-12-18 2020-12-04 北京城市网邻信息技术有限公司 三维空间的三维模型的构建方法和装置、存储介质
CN111768488B (zh) * 2020-07-07 2023-12-29 网易(杭州)网络有限公司 一种虚拟角色脸部模型的处理方法和装置
CN112785690A (zh) * 2021-01-28 2021-05-11 北京爱奇艺科技有限公司 一种三维模型构建方法、装置、系统及存储介质

Also Published As

Publication number Publication date
WO2023061364A1 (zh) 2023-04-20

Similar Documents

Publication Publication Date Title
CN115984506A (zh) 建立模型的方法和相关装置
US9508191B2 (en) Optimal point density using camera proximity for point-based global illumination
EP2951784A1 (en) Output ordering of domain coordinates for tessellation
US9224233B2 (en) Blending 3D model textures by image projection
US20230230311A1 (en) Rendering Method and Apparatus, and Device
CN109979013B (zh) 三维人脸贴图方法及终端设备
CN111583381B (zh) 游戏资源图的渲染方法、装置及电子设备
CN111063032B (zh) 模型渲染方法、系统及电子装置
CN113658316B (zh) 三维模型的渲染方法和装置、存储介质及计算机设备
KR20150117662A (ko) 깊이 맵의 컨텐츠를 강화하기 위한 방법 및 디바이스
US10825231B2 (en) Methods of and apparatus for rendering frames for display using ray tracing
CN113112581A (zh) 三维模型的纹理贴图生成方法、装置、设备及存储介质
CN112734892A (zh) 一种虚拟电缆隧道场景模型实时全局光照渲染方法
US10909752B2 (en) All-around spherical light field rendering method
JP3629243B2 (ja) モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法
US11100707B2 (en) Computer graphics method for terrain rendering
JP2022520525A (ja) 光強度画像を生成するための装置及び方法
KR100693134B1 (ko) 3차원 이미지 처리
US10062191B2 (en) System and method for rendering points without gaps
KR20230013099A (ko) 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과
CN116824082B (zh) 虚拟地形的绘制方法、装置、设备、存储介质及程序产品
CN111729303B (zh) 一种大地图烘焙切割方法及恢复方法
JP3711273B2 (ja) オクルージョンカリングを行う3次元グラフィックス描画装置
CN116474363A (zh) 场景模型的渲染方法、装置和电子设备
CN116934938A (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