曲面模型处理方法、装置、计算机设备和存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本申请涉及通信技术领域,具体涉及一种曲面模型处理方法、装置、计算机设备和存储介质,其中,存储介质为计算机可读存储介质。
背景技术
对于平面模型,可以通过视差映射使平面模型呈现深度感,可以根据平面模型的高度和高度图,将空间划分为多个高度层次,通过对视线进行步进,可以确定视线的实际采样点,将实际采样点的UV坐标作为视线对于平面模型采样点的UV坐标,从而实现平面模型看起来比实际平面高,或者比实际平面低,在视觉效果中具有深度感。
而对于曲面模型,由于无法确定视线的步进距离,所以视差映射无法应用在曲面模型上,导致若要呈现深度感,则构建面片数较高的模型,模型的面片数高,模型数据量大,且计算机设备渲染该模型所需要的时间和资源较多。
发明内容
本申请实施例提供一种曲面模型处理方法、装置、计算机设备和存储介质,本申请使面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度和减少对内存和带宽的占用。
本申请实施例提供的一种曲面模型处理方法,包括:
获取曲面模型、所述曲面模型对应的深度效果模型和包围模型,所述深度效果模型与所述曲面模型具有深度差,所述曲面模型、所述深度效果模型和所述包围模型的模型中心位置相同;
将所述包围模型划分为多个区域块,并计算每个区域块到所述深度效果模型表面的距离信息;
根据目标视线在所述曲面模型上的当前视点的位置,在所述多个区域块中确定目标区域块;
根据所述目标区域块对应的距离信息,控制所述当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;
将所述目标视点与所述目标视线对于所述曲面模型的采样点进行关联,以便基于目标视点对所述曲面模型进行纹理映射处理,使得所述曲面模型与所述深度效果模型的视觉效果相同。
相应的,本申请实施例还提供的一种曲面模型处理装置,包括:
获取单元,用于获取曲面模型、所述曲面模型对应的深度效果模型和包围模型,所述深度效果模型与所述曲面模型具有深度差,所述曲面模型、所述深度效果模型和所述包围模型的模型中心位置相同;
划分单元,用于将所述包围模型划分为多个区域块,并计算每个区域块到所述深度效果模型表面的距离信息;
确定单元,用于根据目标视线在所述曲面模型上的当前视点的位置,在所述多个区域块中确定目标区域块;
步进单元,用于根据所述目标区域块对应的距离信息,控制所述当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;
关联单元,用于将所述目标视点与所述目标视线对于所述曲面模型的采样点进行关联,以便基于目标视点对所述曲面模型进行纹理映射处理,使得所述曲面模型与所述深度效果模型的视觉效果相同。
相应的,本申请实施例还提供的一种计算机设备,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本申请实施例提供的任一种曲面模型处理方法。
相应的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本申请实施例提供的任一种曲面模型处理方法。
本申请实施例通过获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
本申请实施例包围模型中区域块的距离信息可以指示当前视点到达至深度效果模型的步进距离,根据区域块对应的步进距离,可以控制当前视点步进至深度效果模型表面的附近区域,得到目标视点,目标视点是目标视线对于曲面模型的实际采样点,根据目标视点对应的纹理坐标作为目标视线对于曲面模型的采样点的纹理坐标,可以使曲面模型呈现出深度效果模型的视觉效果,因此本申请实施例可以通过面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型数据对内存和带宽的占用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的曲面模型处理方法的流程图;
图2是本申请实施例提供的曲线模型和视觉深度效果的示意图;
图3是本申请实施例提供的平面模型的视差映射示意图;
图4是本申请实施例提供的视点步进示意图;
图5是本申请实施例提供的另一视点步进示意图;
图6是本申请实施例提供的两个视点位于相同区域块的示意图;
图7是本申请实施例提供在同一区域块内步进的示意图;
图8是本申请实施例提供的曲面模型处理装置示意图;
图9是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种曲面模型处理方法、装置、计算机设备和计算机可读存储介质。该曲面模型处理装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
其中,该终端可以包括手机、穿戴式智能设备、平板电脑、笔记本电脑、个人计算(PC,Personal Computer)、以及车载计算机等。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从曲面模型处理装置的角度进行描述,该曲面模型处理装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
本申请实施例提供的一种曲面模型处理方法,如图1所示,该曲面模型处理方法的具体流程可以如下:
101、获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同。
其中,曲面模型可以是包含至少一个曲面的模型,每个曲面可以是光滑曲面或者是较为光滑的曲面;深度效果模型是具有深度感的模型,比如,可以是铺设了砖块、或者鹅卵石等,由于砖块和鹅卵石呈现凹凸不平的效果,使深度效果模型具有深度感。
通过本申请实施例提供的曲面模型处理方法可以使曲面模型呈现的视角效果,与深度效果模型相同,区别在于深度效果模型的表面是真实的凹凸不平,而基于本申请实施例提供的曲面模型处理方法,可以在不改变曲面模型表面形状的情况下,即模型表面与未处理前一致,然而处理后的曲面模型的模型表面所呈现的视觉效果与深度效果模型相同,曲面模型和对应的视觉效果可以如图2所示,图2所示为曲面模型的一个横截面,其中,实线为曲面模型的实际高度,虚线表示曲面模型在视觉上的高度。
对于平面模型,通过视差映射可以使平面模型呈现深度感,具体可以如图3所示,黑色曲线表示平面模型视觉上,所要呈现的高度或者深度,视线在平面模型上的采样点为T0,由于平面的高度发生偏移,所以视线的实际采样点视线与黑色曲线的交点,可以通过对视点进行步进,直到视点低于黑色曲线,得到与交点相近的点T3,可以将点T3进行纹理坐标采样,观察者看到T0点和看到T3一样,从而实现平面模型看起来比实际平面高,或者比实际平面低,在视觉效果中具有深度感,通过视差映射可以在使平坦墙面上视觉上呈现铺砖效果、或者是大楼的平坦墙面上呈现商店的橱窗效果。
而对于曲面模型,由于无法确定视线的步进距离,所以视差贴图无法应用在曲面模型上,本申请实施例提供的曲面模型处理方法,可以确定要实现深度效果模型对应的视觉效果,观察曲面模型的视线的实际采样点,从而可以在曲面模型上呈现出与深度效果模型相同的视觉效果。
由此可以通过一个面片数量少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型对内存和带宽的占用。
其中,包围模型可以是能够包含曲面模型的物体,比如,一个立方体或者其他形状等,包围模型可以根据曲面模型的尺寸生成,即在一实施例中,步骤“获取曲面模型、曲面模型对应的深度效果模型和包围模型”,具体可以包括:
获取曲面模型、曲面模型对应的深度效果模型;
根据曲面模型的模型顶点的坐标确定至少两个边界坐标;
根据至少两个边界坐标生成包围模型。
其中,边界坐标可以是在曲面模型外的坐标,也可以是在曲面模型上的坐标,以使得包围模型可以包围曲面模型。
比如,获取曲面模型和深度效果模型,根据曲面模型上网格面的模型顶点的坐标,分别确定模型顶点的坐标,在x轴、y轴和z轴上的坐标分量的最大值和最小值,然后根据在x轴、y轴和z轴上的坐标分量的最大值和最小值进行坐标组合,得到两个边界坐标,比如,可以将在x轴、y轴和z轴上的坐标分量的最大值组合得到一个边界坐标,将在x轴、y轴和z轴上的坐标分量的最小值组合,得到另一个边界坐标,这个两个边界坐标的连线可以认为是包围模型的对角线,所以根据边界坐标可以确定一个立方体模型。还可以对组合得到的坐标进行偏移,使得到包围模型的长度、宽度和高度均大于曲面模型。
可选的,还可以根据在x轴、y轴和z轴上的坐标分量的最大值和最小值,确定曲面模型的长度、宽度和高度,然后构建一个长度、宽度、高度以及模型中心位置与曲面模型相同的包围模型。还可以根据曲面模型的长度、宽度和高度构建一个长度、宽度和高度大于曲面模型,而模型中心位置与曲面模型相同的包围模型。
包围模型的模型中心的位置与曲面模型相同,也和深度效果模型相同,如果将曲面模型、深度效果模型和包围模型放置在同一三维空间中,三个模型之间相互嵌套,深度效果模型嵌套与曲面模型中,曲面模型嵌套与包围模型中,可见,深度效果模型和曲面模型具有深度差,当视线到达曲面模型表面,还需继续移动才能到达深度效果模型表面。
102、将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息。
其中,距离信息可以表示区域块到深度效果模型表面的最近距离,该距离信息可以包含是有向距离,即距离信息中包含有方向信息,距离信息大于0,表示区域块的中心在深度效果模型外;距离信息小于0,表示区域块的中心在深度效果模型内;距离信息等于0,表示区域块的中心在深度效果模型的表面上。
可选地,还可以是距离信息大于0,表示区域块的中心在深度效果模型外;距离信息等于0,表示区域块的中心在深度效果模型的表面上;距离信息为空,表示区域块的中心在深度效果模型内。
比如,可以将包围模型划分为多个区域块,区域块的形状可以是立方体,并根据每个区域块的中心深度效果模型表面的最近距离,得到每个区域块到深度效果模型表面的距离信息。
可以基于每个区域块对应的距离信息得到关于深度效果模型的有向距离场图,也可以认为是曲面模型对深度效果模型的有向距离场图,用于确定目标视线的步进距离。
103、根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块。
其中,目标视线可以是认为是从虚拟相机所在位置出发的一条射线,目标视线可以是一指定角度的射线,当前视点是目标视线与曲面模型的交点,可以认为是目标视线在曲面模型上的观察点,当前视点可以是曲面模型表面上的一个点,比如可以是模型顶点。
根据观察点的位置和区域块的中心位置之间的距离,选择与观察点距离最近的区域块,得到目标区域块。
104、根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点。
如果距离信息小于0,表示区域块的中心位于深度效果模型内,预设条件可以包括区域块对应的距离信息小于0;而如果距离信息为空,表示区域块的中心位于深度效果模型的内,预设条件可以包括区域块对应的距离信息为空。
比如,可以将目标区域块对应的距离信息,确定当前视点的步进距离,然后控制当前视点在目标视线上移动步进距离,得到一个新的视点,判断新的视点是否满足条件,如果满足,则将该新的视点作为目标视点;如果不满足,则继续步进,直到找到满足条件的目标视点,判断新的视点是否满足条件可以通过判断新的视点对应的区域块是否满足预设条件,即在一实施例中,步骤“根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到当前视点对应的区域块的距离信息满足预设条件,得到目标视点”,具体可以包括:
根据目标区域块的距离信息,确定当前视点的步进距离;
基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点;
根据候选视点的位置确定对应的第一区域块;
若第一区域块的距离信息小于零,则根据候选视点确定目标视点。
比如,可以将目标区域块的距离信息指示的长度,作为当前视点的步进距离,基于步进距离将当前视点沿着目标视线的方向上移动,得到候选视点。
由于区域块的形状和中心位置是确定的,根据候选视点的位置,可以确定与候选视点距离最近的第一区域块。如果第一区域块的距离信息小于零或者为空,则将候选视点确定为目标视点。
根据目标视点的位置,确定在位置关系上,目标视点是否位于深度效果模型的表面上,如果目标视点位于深度效果模型的表面上,则可以根据深度效果模型的模型顶点的UV坐标确定目标视点的UV坐标,如果目标视点不位于深度效果模型的表面上,则确定目标视点对应的UV坐标为空,目标视点在曲面模型上的采样点显示的纹理为透明的。
可选的,还可以根据候选视点的位置,确定在位置关系上,候选视点是否位于深度效果模型的表面上,如果是,则将候选视点作为目标视点,如果不是确定深度效果模型中与候选视点距离最近的模型顶点,将该模型顶点作为目标视点。
可选的,如果候选视点不在深度效果模型的表面上,在确定深度效果模型与候选视点距离最近的模型顶点后,可以确定包含深度效果模型中包含该模型顶点的网格面,计算候选视点到每个网格面的距离,并从中筛选距离最短的网格面作为目标网格面,并确定候选视点在目标网格面上的映射点,并将该映射点作为目标视点。
候选视点与映射点对应的向量的长度已知,该向量垂直于目标网格面,即与目标网格面的法线同向,且映射点位于目标网格面上,基于上述条件可以求解映射点的坐标。
如果第一区域块的目标距离大于零,表示在位置关系上,候选视点位于深度效果模型外,可以控制候选视点继续进行步进,直到候选视点到达深度效果模型上,得到目标视点,即在一实施例中,步骤“根据候选视点的位置确定对应的第一区域块”之后,本申请实施例提供的曲面模型处理方法具体还可以包括:
若第一区域块的距离信息大于零,则根据第一区域块的距离信息对步进距离进行更新;
将候选视点更新为当前视点,返回执行基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点,直到当前视点与候选视点位于同一区域块中;
根据候选视点确定目标视点。
比如,如果第一区域块的距离信息大于零,则将第一区域块的距离信息作为步进距离;将候选视点更新为当前视点,返回执行步骤“基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点”。
曲面模型局部对应的区域块和曲面模型在视觉上的高度效果可以如图4所示,虚线圆的半径长度为对应的区域块的距离信息,实线圆的半径为步进距离,实线圆的圆心为当前视点,根据步进距离控制当前视点步进,即将当前视点移动至图4所示的候选视点所在的位置,候选视点为目标视线和实线圆的交点,如图5所示,根据候选视点可以确定第一区域块,第一区域块为小的虚线圆的圆心所在的区域块,可以是根据第一区域块的距离信息确定的步进距离,并控制第一次步进后的候选视点在目标视线的视线方向上步进,得到第二次步进后的候选视点,如图5中标示的候选视点,确定与第二次步进得到的候选视点距离最近的区域块(记为第二区域块),判断第一区域块和第二区域块是否为同一区域块,如果不是同一区域块,获取第二区域块的距离信息。
如果第二区域块的距离信息大于零,则根据第二区域块的距离信息确定步进距离,然后控制第二次步进得到的候选视点继续步进,得到第三次步进后的候选视点,确定第三次步进后的候选视点对应的区域块,以此类推,直到步进后的候选视点对应的区域块,与上一次步进后的候选视点对应的区域块为同一区域块,可以如图6所示。
若当前视点和候选视点对应的区域块为相同的区域块,则可以根据候选视点确定目标视点,具体可以是根据候选视点的位置信息计算候选视点到深度效果模型中每个网格面的距离,并选取其中距离最短的目标网格面,如果最短的距离为0,则将候选视点作为目标视点,否则确定候选视点在目标网格面上的映射点,并将该映射点作为目标视点。
由于候选视点与映射点对应的向量的长度已知,该向量垂直于目标网格面,即与目标网格面的法线同向,且映射点位于目标网格面上,所以基于上述条件可以求解映射点的坐标。
可选地,还可以根据候选视点的位置信息计算候选视点与深度效果模型的距离,如果距离大于预设距离阈值,则根据该相同的区域块对应的距离信息继续控制候选视点步进,直到候选视点与深度效果模型的距离小于预设距离阈值,得到目标视点,即在一实施例中,步骤“根据候选视点确定目标视点”,具体可以包括:
根据包含候选视点与目标视点所对应区域块对应的步进距离,不断控制候选视点在目标视线的方向上步进,直到候选视点与曲面模型表面的距离小于预设距离阈值,得到目标视点。
其中,预设距离阈值可以是预先设置的距离,比如,1cm、5mm等。
比如,当候选视点和当前视点对应的区域块为相同的区域块时,如图7所示,根据该区域块的距离信息确定步进距离,然后基于该步进距离控制候选视点步进,并计算步进后,候选视点与深度效果模型的距离,如果距离大于预设距离阈值,则继续控制候选视点步进,若距离小于预设距离阈值,根据步进后的候选视点确定目标视点,具体可以是根据候选视点的位置信息计算候选视点到深度效果模型中每个网格面的距离,并选取其中距离最短的目标网格面,如果最短的距离为0,则将候选视点作为目标视点,否则确定候选视点在目标网格面上的映射点,并将该映射点作为目标视点,确定候选视点在目标网格面上的映射点可以参考上述相关内容的说明,在此不做赘述。
105、将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
比如,确定目标视线对于曲面模型的采样点,并将目标视点作为目标视线对于曲面模型的实际采样点,以便将实际采样点的纹理坐标作为目标视线在曲面模型上的采样点的纹理坐标,然后对曲面模型进行纹理映射处理,可以使曲面模型在采样点,呈现出实际采样点对应的纹理,从而实现视觉效果与深度效果模型相同。
深度效果模型上模型的纹理坐标可以是预先进行映射处理得到的,也可以是将目标可以将目标视点映射至纹理空间中确定的,所以,步骤“将目标视点与目标视线对于曲面模型的采样点进行关联”之后,本申请实施例提供的曲面模型处理方法具体还可以包括:
将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标;
基于纹理坐标和目标视线对于曲面模型的采样点,对曲面模型进行纹理映射,得到视觉效果与深度效果模型相同的处理后曲面模型。
其中,纹理空间可以是深度效果模型的纹理贴图所对应的空间,将目标视点映射到纹理空间中,可以得到目标视点对应的纹理坐标。
比如,可以是确定目标视点在深度效果模型上对应的网格面,根据该网格面的模型顶点的顶点坐标和目标视点的坐标,计算目标视点在该网格面上的重心坐标,重心坐标表示目标视点在该网格面的三个顶点之间的线性组合权重,获取该网格面的模型顶点的UV坐标,根据重心坐标和网格面的模型顶点的UV坐标进行插值计算,得到目标视点的对应UV坐标。
将目标视点对应的纹理坐标,作为目标视线对于曲面模型的采样点的纹理坐标,基于同样的方式可以确定曲面模型上每个模型顶点对应的纹理坐标,然后进行纹理映射,将纹理贴图映射在目标视线在曲面模型的采样点指示的位置上,使得纹理映射后的曲面模型的视觉效果,与深度模型相同。
在一实施例中,确定目标视点对应的纹理坐标,可以根据TBN矩阵将目标视点从时间空间映射至切线空间,切线空间中坐标在X轴和Y轴上的坐标分量分别对应于纹理坐标中的U坐标和V坐标,根据目标视点在切线空间中对应的坐标,可以得到目标视点对应的纹理坐标,即步骤“将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标”,具体可以包括:
确定目标视点在深度效果模型上对应的网格面,和网格面的法向量;
根据网格面上模型顶点的顶点坐标和对应的纹理坐标,计算网格面的切向量;
根据切向量和法向量确定副切向量;
基于法向量、切向量和副切向量确定的转换矩阵,对目标视点在世界空间的坐标进行转换,得到在切线空间的坐标;
根据切线空间维坐标,得到目标视点的纹理坐标。
比如,具体可以是确定目标视点在深度效果模型上对应的网格面,以及根据深度效果模型的模型数据确定网格面的法向量,和网格面上模型顶点的顶点坐标和纹理坐标。
根据网格面上模型顶点的顶点坐标和纹理坐标计算网格面的切向量;由于切向量、法向量和副切向量是相互垂直的,所以可以根据切向量和法向量确定副切向量,切向量、副切向量和法向量为切线空间中的坐标轴上的单位向量。
切线空间中的切向量、副切向量和法向量分别和世界坐标中的X轴、Y轴和Z轴对应,切线空间可以认为是世界空间偏转得到的空间,所以基于法向量、切向量和副切向量确定将世界坐标中的点映射至切线空间的转换矩阵。
然后根据转换矩阵对目标视点在世界空间的坐标进行转换,得到目标视点在切线空间的坐标,根据切线空间的坐标,得到目标视点的纹理坐标。
由上可知,本申请实施例通过获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点;将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
本申请实施例包围模型中区域块的距离信息可以指示当前视点到达至深度效果模型的步进距离,根据区域块对应的步进距离,可以控制当前视点步进至深度效果模型表面的附近区域,得到目标视点,目标视点是目标视线对于曲面模型的实际采样点,根据目标视点对应的纹理坐标作为目标视线对于曲面模型的采样点的纹理坐标,可以使曲面模型呈现出深度效果模型的视觉效果,因此本申请实施例可以通过面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型数据对内存和带宽的占用。
为了便于更好地实施本申请实施例提供的曲面模型处理方法,在一实施例中还提供了一种曲面模型处理装置。其中名词的含义与上述曲面模型处理方法中相同,具体实现细节可以参考方法实施例中的说明。
该曲面模型处理装置具体可以集成在计算机设备中,如图8所示,该曲面模型处理装置可以包括:获取单元301、划分单元302、确定单元303、步进单元304和关联单元305,具体如下:
(1)获取单元301,用于获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同。
在一实施例中,获取单元301可以包括:
模型获取子单元,用于获取曲面模型、曲面模型对应的深度效果模型;
坐标确定子单元,用于根据曲面模型的模型顶点的坐标确定至少两个边界坐标;
模型生成子单元,用于根据至少两个边界坐标生成包围模型。
(2)划分单元302,用于将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息。
(3)确定单元303,用于根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块。
(4)步进单元304,用于根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点。
在一实施例中,步进单元304可以包括:
距离确定子单元,用于根据目标区域块的距离信息,确定当前视点的步进距离;
步进子单元,用于基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点;
区域块确定子单元,用于根据候选视点的位置确定对应的第一区域块;
第一视点确定子单元,用于若第一区域块的距离信息小于零,则根据候选视点确定目标视点。
在一实施例中,步进单元304还可以包括:
距离更新子单元,用于若第一区域块的距离信息大于零,则根据第一区域块的距离信息对步进距离进行更新;
视点更新子单元,用于将候选视点更新为当前视点,返回执行基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点,直到当前视点与候选视点位于同一区域块中;
第二视点确定子单元,用于根据候选视点确定目标视点。
在一实施例中,第二视点确定子单元,可以包括:
循环模块,用于根据包含候选视点与目标视点所对应区域块对应的步进距离,不断控制候选视点在目标视线的方向上步进,直到候选视点与曲面模型表面的距离小于预设距离阈值,得到目标视点。
(5)关联单元305,用于将所述目标视点与所述目标视线对于所述曲面模型的采样点进行关联,以便基于目标视点对所述曲面模型进行纹理映射处理,使得所述曲面模型与所述深度效果模型的视觉效果相同。
在一实施例中,本申请实施例提供的曲面模型处理装置还可以包括:
空间映射单元,用于将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标;
纹理映射单元,用于基于纹理坐标和目标视线对于曲面模型的采样点,对曲面模型进行纹理映射,得到视觉效果与深度效果模型相同的处理后曲面模型。
在一实施例中空间映射单元,可以包括:
网格面确定子单元,用于确定目标视点在深度效果模型上对应的网格面,和网格面的法向量;
向量计算子单元,用于根据网格面上模型顶点的顶点坐标和对应的纹理坐标,计算网格面的切向量;
向量确定子单元,用于根据切向量和法向量确定副切向量;
空间转化子单元,用于基于法向量、切向量和副切向量确定的转换矩阵,对目标视点在世界空间的坐标进行转换,得到在切线空间的坐标;
坐标确定子单元,用于根据切线空间维坐标,得到目标视点的纹理坐标。
由上可知,本申请实施例曲面模型处理装置通过获取单元301获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;划分单元302将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;确定单元303根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;步进单元304根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;关联单元305将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
本申请实施例包围模型中区域块的距离信息可以指示当前视点到达至深度效果模型的步进距离,根据区域块对应的步进距离,可以控制当前视点步进至深度效果模型表面的附近区域,得到目标视点,目标视点是目标视线对于曲面模型的实际采样点,根据目标视点对应的纹理坐标作为目标视线对于曲面模型的采样点的纹理坐标,可以使曲面模型呈现出深度效果模型的视觉效果,因此本申请实施例可以通过面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型数据对内存和带宽的占用。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端。如图9所示,图9为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;
将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;
根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;
根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点;
将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
在一实施例中,步骤“根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点”,具体可以包括:
根据目标区域块的距离信息,确定当前视点的步进距离;
基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点;
根据候选视点的位置确定对应的第一区域块;
若第一区域块的距离信息小于零,则根据候选视点确定目标视点。
在一实施例中,步骤“根据候选视点的位置确定对应的第一区域块”之后,本申请实施例提供的曲面模型处理方法还可以包括:
若第一区域块的距离信息大于零,则根据第一区域块的距离信息对步进距离进行更新;
将候选视点更新为当前视点,返回执行基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点,直到当前视点与候选视点位于同一区域块中;
根据候选视点确定目标视点。
在一实施例中,步骤“根据候选视点确定目标视点”,可以包括:
根据包含候选视点与目标视点所对应区域块对应的步进距离,不断控制候选视点在目标视线的方向上步进,直到候选视点与曲面模型表面的距离小于预设距离阈值,得到目标视点。
在一实施例中,步骤“将目标视点与目标视线对于曲面模型的采样点进行关联”之后,本申请实施例提供的曲面模型处理方法还包括:
将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标;
基于纹理坐标和目标视线对于曲面模型的采样点,对曲面模型进行纹理映射,得到视觉效果与深度效果模型相同的处理后曲面模型。
在一实施例中,步骤“将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标”,具体可以包括:
确定目标视点在深度效果模型上对应的网格面,和网格面的法向量;
根据网格面上模型顶点的顶点坐标和对应的纹理坐标,计算网格面的切向量;
根据切向量和法向量确定副切向量;
基于法向量、切向量和副切向量确定的转换矩阵,对目标视点在世界空间的坐标进行转换,得到在切线空间的坐标;
根据切线空间维坐标,得到目标视点的纹理坐标。
在一实施例中,步骤“获取曲面模型、曲面模型对应的深度效果模型和包围模型”,可以包括:
获取曲面模型、曲面模型对应的深度效果模型;
根据曲面模型的模型顶点的坐标确定至少两个边界坐标;
根据至少两个边界坐标生成包围模型。
由上可知,本申请实施例通过获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
本申请实施例包围模型中区域块的距离信息可以指示当前视点到达至深度效果模型的步进距离,根据区域块对应的步进距离,可以控制当前视点步进至深度效果模型表面的附近区域,得到目标视点,目标视点是目标视线对于曲面模型的实际采样点,根据目标视点对应的纹理坐标作为目标视线对于曲面模型的采样点的纹理坐标,可以使曲面模型呈现出深度效果模型的视觉效果,因此本申请实施例可以通过面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型数据对内存和带宽的占用。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图9所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图9中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种虚拟物品的标记方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;
将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;
根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;
根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点;
将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
在一实施例中,步骤“根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据步进后的当前视点确定目标视点”,具体可以包括:
根据目标区域块的距离信息,确定当前视点的步进距离;
基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点;
根据候选视点的位置确定对应的第一区域块;
若第一区域块的距离信息小于零,则根据候选视点确定目标视点。
在一实施例中,步骤“根据候选视点的位置确定对应的第一区域块”之后,本申请实施例提供的曲面模型处理方法还可以包括:
若第一区域块的距离信息大于零,则根据第一区域块的距离信息对步进距离进行更新;
将候选视点更新为当前视点,返回执行基于步进距离控制当前视点在目标视线的方向上步进,得到候选视点,直到当前视点与候选视点位于同一区域块中;
根据候选视点确定目标视点。
在一实施例中,步骤“根据候选视点确定目标视点”,可以包括:
根据包含候选视点与目标视点所对应区域块对应的步进距离,不断控制候选视点在目标视线的方向上步进,直到候选视点与曲面模型表面的距离小于预设距离阈值,得到目标视点。
在一实施例中,步骤“将目标视点与目标视线对于曲面模型的采样点进行关联”之后,本申请实施例提供的曲面模型处理方法还包括:
将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标;
基于纹理坐标和目标视线对于曲面模型的采样点,对曲面模型进行纹理映射,得到视觉效果与深度效果模型相同的处理后曲面模型。
在一实施例中,步骤“将目标视点映射至纹理空间中,得到目标视点对应的纹理坐标”,具体可以包括:
确定目标视点在深度效果模型上对应的网格面,和网格面的法向量;
根据网格面上模型顶点的顶点坐标和对应的纹理坐标,计算网格面的切向量;
根据切向量和法向量确定副切向量;
基于法向量、切向量和副切向量确定的转换矩阵,对目标视点在世界空间的坐标进行转换,得到在切线空间的坐标;
根据切线空间维坐标,得到目标视点的纹理坐标。
在一实施例中,步骤“获取曲面模型、曲面模型对应的深度效果模型和包围模型”,可以包括:
获取曲面模型、曲面模型对应的深度效果模型;
根据曲面模型的模型顶点的坐标确定至少两个边界坐标;
根据至少两个边界坐标生成包围模型。
由上可知,本申请实施例通过获取曲面模型、曲面模型对应的深度效果模型和包围模型,深度效果模型与曲面模型具有深度差,曲面模型、深度效果模型和包围模型的模型中心位置相同;将包围模型划分为多个区域块,并计算每个区域块到深度效果模型表面的距离信息;根据目标视线在曲面模型上的当前视点的位置,在多个区域块中确定目标区域块;根据目标区域块对应的距离信息,控制当前视点在目标视线的方向上步进,直到步进后的当前视点对应的区域块满足预设条件,根据所述步进后的当前视点确定目标视点;将目标视点与目标视线对于曲面模型的采样点进行关联,以便基于目标视点对曲面模型进行纹理映射处理,使得曲面模型与深度效果模型的视觉效果相同。
本申请实施例包围模型中区域块的距离信息可以指示当前视点到达至深度效果模型的步进距离,根据区域块对应的步进距离,可以控制当前视点步进至深度效果模型表面的附近区域,得到目标视点,目标视点是目标视线对于曲面模型的实际采样点,根据目标视点对应的纹理坐标作为目标视线对于曲面模型的采样点的纹理坐标,可以使曲面模型呈现出深度效果模型的视觉效果,因此本申请实施例可以通过面片数量较少的模型,呈现出面片数量高的模型的视觉效果,提高计算机设备的渲染速度以及减少模型数据对内存和带宽的占用。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本申请实施例所提供的一种曲面模型处理方法、装置、计算机设备和计算机存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 文本处理方法、装置、计算机可读存储介质和计算机设备
- 数据处理方法、装置、计算机设备及计算机可读存储介质
- 文本处理方法、装置、设备、计算机设备和存储介质
- 财报数据处理方法、装置、计算机设备和存储介质
- 测试数据表的处理方法、装置、计算机设备和存储介质
- 地质曲面模型的构建方法、装置、电子设备及存储介质
- 地质曲面模型的构建方法、装置、电子设备及存储介质