CN109697748A - 模型压缩处理方法、模型贴图处理方法装置、存储介质 - Google Patents

模型压缩处理方法、模型贴图处理方法装置、存储介质 Download PDF

Info

Publication number
CN109697748A
CN109697748A CN201811567198.6A CN201811567198A CN109697748A CN 109697748 A CN109697748 A CN 109697748A CN 201811567198 A CN201811567198 A CN 201811567198A CN 109697748 A CN109697748 A CN 109697748A
Authority
CN
China
Prior art keywords
textures
initial
model
area
initial 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.)
Granted
Application number
CN201811567198.6A
Other languages
English (en)
Other versions
CN109697748B (zh
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201811567198.6A priority Critical patent/CN109697748B/zh
Publication of CN109697748A publication Critical patent/CN109697748A/zh
Application granted granted Critical
Publication of CN109697748B publication Critical patent/CN109697748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开提供了一种模型压缩处理方法及装置、电子设备、计算机可读存储介质,属于计算机技术领域。该方法包括:获取初始模型,通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积;获取目标模型的预设像素数与预设像素密度,并根据所述预设像素数与预设像素密度确定所述目标模型的预设展开面积;根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数;根据所述缩放系数对所述初始模型进行缩放,并根据所述预设像素数调整所述初始模型的像素数,得到所述目标模型。本公开可以提高模型压缩处理的精确度,对不同模型具有较强的适用性,且能够简化开发人员的操作流程。

Description

模型压缩处理方法、模型贴图处理方法装置、存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种模型压缩处理方法、模型贴图处理方法、模型压缩处理装置、模型贴图处理装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,出现了越来越多的应用平台,例如以window为代表的PC(个人电脑)平台,以ios与android为代表的移动平台,以ps与xbox为代表游戏主机平台等,因此开发人员经常需要将应用程序从一个平台移植到其他平台。
在移植应用程序,特别是移植游戏程序时,需要根据不同平台的特点,将人物模型、动画模型等进行调整,例如PC平台的显示精细度较高,通常模型的分辨率较高,将PC平台的应用程序移植到移动平台时,可能需要对模型进行压缩,以减小其数据包的大小。
现有的模型压缩处理方法通常依赖于人为确定压缩程度的参数,根据该参数调整原始模型的尺寸或分辨率,得到目标模型。然而人为经验难以保证最优的压缩程度,导致难以得到理想的目标模型。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种模型压缩处理方法、模型贴图处理方法、模型压缩处理装置、模型贴图处理装置、电子设备及计算机可读存储介质,进而至少在一定程度上克服现有的模型压缩处理方法流程较为复杂,人为调整压缩处理不准确的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种模型压缩处理方法,包括:获取初始模型,通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积;获取目标模型的预设像素数与预设像素密度,并根据所述预设像素数与预设像素密度确定所述目标模型的预设展开面积;根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数;根据所述缩放系数对所述初始模型进行缩放,并根据所述预设像素数调整所述初始模型的像素数,得到所述目标模型。
在本公开的一种示例性实施例中,所述根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数包括:通过以下公式计算所述目标模型相对于所述初始模型的缩放系数:其中,R为所述缩放系数,S1为所述预设展开面积,S2为所述展开贴图的面积。
在本公开的一种示例性实施例中,所述根据所述缩放系数对所述初始模型进行缩放包括:根据所述缩放系数得到缩放矩阵;基于初始模型的基准点,通过以下公式对所述初始模型的各像素点的坐标进行调整,以对所述初始模型进行缩放:UVnew=(UVold-UVrefer)·Scale+UVrefer其中,UVold为初始模型的各像素点在调整前的坐标,UVnew为所述初始模型的各像素点在调整后的坐标,UVRefer为所述初始模型的基准点的坐标,Scale为所述缩放矩阵。
在本公开的一种示例性实施例中,所述基准点包括所述初始模型的中心点。
在本公开的一种示例性实施例中,所述通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积包括:将所述初始模型的展开贴图分割为多个三角形;利用海伦公式计算所述多个三角形的面积,并将所述多个三角形的面积相加得到所述展开贴图的面积。
在本公开的一种示例性实施例中,所述根据所述预设像素数调整所述初始模型的像素数包括:如果所述初始模型的像素数大于所述预设像素数,则通过图像下采样算法将所述初始模型的像素数调整为所述预设像素数。
在本公开的一种示例性实施例中,所述方法还包括:如果所述初始模型的像素数小于所述预设像素数,则通过图像插值算法将所述初始模型的像素数调整为所述预设像素数。
在本公开的一种示例性实施例中,所述展开贴图为UV贴图(纹理贴图)。
根据本公开的一个方面,提供一种模型贴图处理方法,包括:获取初始贴图,计算所述初始贴图的初始面积;获取目标贴图的目标像素数与目标像素密度,根据所述目标像素数与目标像素密度确定所述目标贴图的目标面积;根据所述初始面积及所述目标面积,确定所述目标贴图相对于所述初始贴图的缩放比例;根据所述缩放比例对所述初始贴图进行缩放,得到所述目标贴图。
根据本公开的一个方面,提供一种模型压缩处理装置,包括:初始模型获取模块,用于获取初始模型,通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积;预设参数获取模块,用于获取目标模型的预设像素数与预设像素密度,并根据所述预设像素数与预设像素密度确定所述目标模型的预设展开面积;缩放系数确定模块,用于根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数;压缩处理执行模块,用于根据所述缩放系数对所述初始模型进行缩放,并根据所述预设像素数调整所述初始模型的像素数,得到所述目标模型。
根据本公开的一个方面,提供一种模型贴图处理装置,包括:初始贴图获取模块,用于获取初始贴图,计算所述初始贴图的初始面积;目标参数获取模块,用于获取目标贴图的目标像素数与目标像素密度,根据所述目标像素数与目标像素密度确定所述目标贴图的目标面积;缩放比例确定模块,用于根据所述初始面积及所述目标面积,确定所述目标贴图相对于所述初始贴图的缩放比例;贴图处理执行模块,用于根据所述缩放比例对所述初始贴图进行缩放,得到所述目标贴图。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开的示例性实施例具有以下有益效果:
通过计算初始模型的展开贴图面积以及目标模型的预设展开面积,确定目标模型相对于初始模型的缩放系数,并根据缩放系数对初始模型进行缩放,并且基于预设像素数调整初始模型的像素数,从而得到压缩处理后的目标模型。一方面,根据展开贴图面积与预设展开面积确定缩放系数,以及根据预设像素数确定像素调整的程度,为模型的压缩处理确定了统一的标准,无需依赖于人为的判断,提高了压缩处理的精确度,且对不同的模型具有较强的适用性;另一方面,本示例性实施例的压缩处理过程可以实现自动化处理以及批量处理,简化了开发人员的操作流程,降低了人力成本。再一方面,在进行压缩处理时,同时考虑尺寸调整与像素调整两个方面的需求,可以实现对模型的精细化处理,满足更加多样的应用需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出相关方案中一种模型压缩处理方法的示意图;
图2示出本示例性实施例中一种模型压缩处理方法的流程图;
图3示出本示例性实施例中一种设置预设像素密度的示意图;
图4示出本示例性实施例中一种模型贴图处理方法的示意图;
图5示出本示例性实施例中一种模型压缩处理装置的结构框图;
图6示出本示例性实施例中一种模型贴图处理装置的示意图;
图7示出本示例性实施例中一种用于实现上述方法的电子设备;
图8示出本示例性实施例中一种用于实现上述方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
在相关技术的一种方案中,是通过对原始模型的贴图不断进行经验性的调整以进行模型的压缩处理的。举例说明,如图1所示,图1(a)中展示的是初始贴图模型,贴图质量较为清晰,通过对模型进行第一次压缩处理得到图1(b),与图1(a)中的贴图相比,清晰度有一定损失,但损失的程度较小,在视觉可以接受的范围内,对模型进行第二次压缩处理得到图1(c),其边缘出现了视觉上较为明显的模糊效果,不能较为清晰完整的展示模型细节,因此,不能继续进行压缩。根据上述压缩过程中的分辨率数据得到了压缩参数,以最终完成模型的压缩处理。但是,该方法实质上是多次尝试压缩的过程,依赖于视觉的直观判断,过程较为繁琐,且效率较低。
鉴于上述问题,本公开的示例性实施例首先提供了一种模型压缩处理方法,其中,模型可以是各种3D的美术模型,例如游戏中的角色模型,动画视频中的人物模型或建筑模型等等。本实施例可以应用于以下场景中:在不同平台之间移植游戏程序时,根据目标平台的显示特性对游戏中的角色模型进行压缩处理;在动画视频的后期处理中,对人物模型或建筑模型等进行压缩处理,以实现资源优化以及多版本视频等。以上只是对本实施例的应用场景进行示例性说明,本公开对此不做特别限定。
下面结合附图2对本示例性实施例做进一步说明,如图2所示,模型压缩处理方法可以包括以下步骤S210~S240:
步骤S210,获取初始模型,通过对初始模型的展开贴图进行多边形分割,计算展开贴图的面积。
其中,初始模型是指需要进行压缩处理的模型,初始模型为3D模型,其形状具有多样性,例如可以是立方体、球体、人形或其他不规则形体等等。初始模型的展开贴图为形成其外表面的蒙皮,展开后为一定形状的平面贴图,一个模型的展开贴图可以是一个,也可以是多个。考虑到展开贴图的形状不规则性,在进行展开贴图的面积计算时,可以先将展开贴图进行多边形分割,多边形可以是三角形、平行四边形、正五边形或其他易于直接计算面积的规则多边形,然后分别计算每个多边形的面积,求和得到展开贴图的总面积。
在一示例性实施例中,可以基于OpenGL(开放图形库,用于渲染矢量图形的的应用程序编程接口)以及OpenMesh(一种表示和管理多边形网格的数据结构)对初始模型及其展开贴图进行管理,利用3DS MAX(一种三维动画渲染和制作软件)进行处理,可以采用以下代码构造虚拟多边形:
TheTMesh=snapshotAsMesh obj;
TheNewMesh=Editable_mesh();//创建一个空的多边形
TheNewMesh.mesh=theTMesh;//映射
convertTo theNewMesh Editable_Poly;//转化
并使虚拟多边形与原展开贴图的部分区域形成映射,以便于计算面积,同时不改变原展开贴图的Mesh数据。
在一示例性实施例中,在获取初始模型后,可以构建与初始模型等价的虚拟模型,并对虚拟模型进行贴图展开以及后续的压缩处理,得到目标模型,从而可以将初始模型完整的存储在数据库中,以便于其他情况下(例如改变参数进行不同的压缩处理、模型复原等)直接调用。
步骤S220,获取目标模型的预设像素数与预设像素密度,并根据预设像素数与预设像素密度确定目标模型的预设展开面积。
其中,目标模型是指对初始模型进行压缩处理,最终需要得到的模型,预设像素数为关于目标模型展开的贴图中期望的像素数量,通常可以用横向像素数与纵向像素数的乘积来表示,例如可以用px·py来表示预设像素数,预设像素密度是指目标模型所展开的贴图中单位面积内拥有的像素个数,可以用ρ表示预设像素密度,例如图3中所示的64pix/m,可以转换为像素密度64*64pix/m2。本实施例中,预设像素数与预设像素密度为应用场景的美术项目中预先确定的参数,使得每个项目中的模型可以遵循统一的标准。预设展开面积即目标模型所展开的的贴图的总面积,可以通过对预设像素数与预设像素密度的计算得到,例如可以通过以下公式(1)计算预设展开面积:
S1=(px·py)/ρ。 (1)
步骤S230,根据展开贴图的面积及预设展开面积,确定目标模型相对于初始模型的缩放系数。
其中,缩放系数用于表示目标模型相对于初始模型的尺寸调整系数,通常为目标模型的预设展开面积与初始模型的展开贴图的面积之间特定的比例关系。
在一示例性实施例中,步骤S230可以包括以下步骤:
通过以下公式(2)计算目标模型相对于初始模型的缩放系数:
其中,R为缩放系数,S1为预设展开面积,S2为展开贴图的面积。S1/S2为目标模型与初始模型的贴图面积比,由于缩放系数通常表示一维尺度的参数,而面积比为二维尺度的参数,因此可以对面积比进行降幂计算,得到缩放系数。
在一示例性实施例中,考虑到在利用多边形分割计算展开贴图的面积时,通常会采取一定的近似处理,可能会导致展开贴图面积的微小误差,因此可以在公式(2)中对展开贴图的面积S2进行一定的修正,如以下公式(3):
其中,a为修正因数,通常在(0.9,1.1)之间,可以根据各分割点处的切线斜率与分割点最相近的直线边界的斜率的差别程度计算得到。引入修正因数后可以提高缩放系数计算的准确性。
步骤S240,根据缩放系数对初始模型进行缩放,并根据预设像素数调整初始模型的像素数,得到目标模型。
本实施例中,压缩处理实际上包含了两个方面的处理:尺寸调整与分辨率调整;步骤S240中的缩放即调整模型尺寸的过程,调整像素数即调整模型分辨率的过程。尺寸调整包括放大或缩小初始模型的尺寸,分辨率调整包括增加或减少初始模型的像素数。在缩放时,以初始模型中的某个点为基准点,根据缩放系数R对初始模型进行等比例调整,R大于1时为放大,R小于1时为缩小;在调整像素数时,将初始模型的像素数调整到预设像素数,如果预设像素数小于初始模型的像素数,则适应性的减少初始模型的像素数,如果预设像素数大于初始模型的像素数,则适应性的增加初始模型的像素数。综合两方面的处理,最终得到目标模型。
以下对于缩放的过程做进一步的示例性说明:
在一示例性实施例中,基于公式(2)或(3)计算得到的缩放系数R,步骤S240中根据缩放系数对初始模型进行缩放的过程可以通过以下步骤实现:
参照公式(4),根据缩放系数得到缩放矩阵;
基于初始模型的基准点,通过以下公式(5)对初始模型的各像素点的坐标进行调整,以对初始模型进行缩放:
UVnew=(UVold-UVrefer)·Scale+UVrefer; (5)
其中,Scale为缩放矩阵,UVold为初始模型的各像素点在调整前的坐标,UVnew为初始模型的各像素点在调整后的坐标,UVRefer为初始模型的基准点的坐标。
在本实施例中,模型的坐标可以是常规的立方系坐标轴的坐标,例如(x,y,z),也可以是基于模型贴图的UV坐标(一种纹理贴图坐标);为了统一在三维空间内表征模型的坐标,缩放矩阵Scale可以是基于齐次坐标变换的矩阵,UVold、UVnew与UVRefer均可以设置为以三维为标准的齐次坐标。齐次坐标为将一个原本是n维的向量用一个n+1维向量来表示,例如UVold为(U,V)形式的二维坐标时,可以增设z坐标为1,则UVold的齐次坐标为(U,V,1)。具体的,考虑到初始模型是基于初始模型的基准点进行缩放,所以实际进行缩放调整的部分为UVold-UVRefer,即各像素点相对于基准点的向量,调整后再加上基准点的坐标UVRefer可以得到调整后模型各像素点的坐标。
基准点可以设定为初始模型中的任一点,例如边界点、形状特征点等。在一示例性实施例中,为了便于计算,以及缩放时平衡各像素点的调整量,使得各像素点得到均匀的调整,基准点可以设定为初始模型的中心点。中心点可以是几何中心,也可以是重心,对于不规则形体的初始模型,可以将近似规则轮廓的中心点作为初始模型的中心点,本实施例对此不做特别限定。
基于上述说明,在本示例性实施例中,通过计算初始模型的展开贴图面积以及目标模型的预设展开面积,确定目标模型相对于初始模型的缩放系数,并根据缩放系数对初始模型进行缩放,并且基于预设像素数调整初始模型的像素数,从而得到压缩处理后的目标模型。一方面,根据展开贴图面积与预设展开面积确定缩放系数,以及根据预设像素数确定像素调整的程度,为模型的压缩处理确定了统一的标准,无需依赖于人为的判断,提高了压缩处理的精确度,且对不同的模型具有较强的适用性;另一方面,本示例性实施例的压缩处理过程可以实现自动化处理以及批量处理,简化了开发人员的操作流程,降低了人力成本。再一方面,在进行压缩处理时,同时考虑尺寸调整与像素调整两个方面的需求,可以实现对模型的精细化处理,满足更加多样的应用需求。
在一示例性实施例中,步骤S210中通过对初始模型的展开贴图进行多边形分割,计算展开贴图的面积的过程可以包括以下步骤:
将初始模型的展开贴图分割为多个三角形;
利用海伦公式计算多个三角形的面积,并将多个三角形的面积相加得到展开贴图的面积。
即在对展开贴图进行多边形分割时,可以以三角形为单位进行细分,将多边形都分割为三角形,对于各三角形的具体形状不做特别限定。海伦公式可用于对所有一般性三角形求面积,计算公式如下:
其中,S为三角形面积,a、b、c为三角形的三个边长,p=(a+b+c)/2,即三边长的平均值。该公式适用于所有三角形。
在3DS MAX中,计算代码可以如下:
通过上述过程,在将展开贴图分割为三角形后,检测每个三角形的三边长,即可根据海伦公式计算其面积,最后对全部三角形的面积求和得到展开贴图的面积,该方法可适用于所有非曲线图形,且计算过程更加精确。
基于上述确定的展开贴图面积,在3DS MAX中,缩放过程的代码可以如下:
在一示例性实施例中,步骤S240中根据预设像素数调整初始模型的像素数的过程可以包括以下步骤:
如果初始模型的像素数大于预设像素数,则通过图像下采样算法将初始模型的像素数调整为预设像素数。
图像下采样算法可以减少初始模型的像素数,例如当预设像素数为初始模型的像素数的1/4时,需要将初始模型中每4个像素转换为1个像素,可以在临近的2*2像素内保留最大的像素颜色值,也可以计算像素颜色值的平均值等。本实施例对于图像下采样的具体实现方式不做特别限定。
上述步骤针对于目标模型的分辨率低于初始模型的情况,通常在不同平台之间移植游戏程序时,初始模型的分辨率与细节度最高,但是在一些特殊情况中,例如由低级平台向高级平台移植游戏程序时,或者目标模型的尺寸较大、需要的像素数较多时,目标模型的预设像素数可能大于初始模型的像素数,则需要提高初始模型的分辨率。针对于这种情况,在一示例性实施例中,上述步骤S240中根据预设像素数调整初始模型的像素数的过程还可以包括以下步骤:
如果初始模型的像素数小于预设像素数,则通过图像插值算法将初始模型的像素数调整为预设像素数。
图像插值算法一般包括最近相邻插值算法、双线性插值算法、立方卷积法等,都可以适用于本实施例中。在具体实现过程中,增加的像素点一般平均分布在初始模型的各个像素点之间,以得到更加平滑的处理效果。
在一示例性实施例中,步骤S210中的展开贴图为UV贴图。
其中,UV指的是纹理贴图的坐标,可以定义贴图中每个点的位置信息,这些点与模型是相互联系的,从而确定表面纹理贴图的位置。在本实施例中,可以对初始模型的UV贴图进行分割后计算其面积,根据UV贴图的面积和预设展开面积,确定目标模型相对于初始模型的缩放系数,并对初始模型进行缩放,再根据预设像素数调整初始模型的像素数,最终得到目标模型。
本公开的示例性实施例还提供了一种模型贴图处理方法,其中,模型贴图可以是各种3D的美术模型的贴图,例如游戏中的角色模型,动画视频中的人物模型或建筑模型的贴图等。
下面结合附图4对本示例性实施例做进一步说明,如图4所示,模型贴图处理方法可以包括以下步骤S410~S440:
步骤S410,获取初始贴图,计算初始贴图的初始面积;
步骤S420,获取目标贴图的目标像素数与目标像素密度,根据目标像素数与目标像素密度确定目标贴图的目标面积;
步骤S430,根据初始面积及所述目标面积,确定目标贴图相对于初始贴图的缩放比例;
步骤S440,根据缩放比例对初始贴图进行缩放,得到目标贴图。
其中,初始贴图是指需要进行处理的模型贴图,贴图可以具有多样性,可以是规则贴图,例如矩形、圆形等,也可以是不规则贴图等。初始贴图的初始面积可以根据具体的贴图形状,通过相应的方法进行计算,例如规则贴图可以通过特定的面积计算公式进行计算,不规则贴图可以通过近似或分割的方法进行计算等等。
目标贴图是指对初始贴图进行处理后,最终需要得到的贴图,目标像素数为关于目标贴图中期望的像素数量,通常可以用横向像素数与纵向像素数的乘积来表示,例如可以用px’·py’来表示目标像素数,目标像素密度是指目标贴图中单位面积内拥有的像素个数,可以用ρ’表示像素密度。目标像素数与目标像素密度为应用场景的美术项目中预先确定的参数,使得每个项目中的模型贴图可以遵循统一的标准。目标面积即目标贴图的面积,可以通过对目标像素数与目标像素密度的计算得到,例如可以通过以下公式(7)计算目标面积:
S1’=(px’·py’)/ρ’。 (7)
缩放比例用于表示目标贴图相对于初始贴图的尺寸调整系数,通常为目标贴图的目标面积与初始贴图的初始面积之间特定的比例关系。可以通过以下公式(8)计算目标贴图相对于初始贴图的缩放比例:
其中,R’为缩放比例,S1’为目标面积,S2’为初始面积。S1’/S2’为目标贴图与初始贴图的贴图面积比,
在本示例性实施例中,对模型贴图进行处理包含了两个方面的处理:尺寸调整与分辨率调整;步骤S440中的缩放即调整贴图尺寸的过程,调整像素数即调整贴图分辨率的过程。尺寸调整包括放大或缩小初始贴图的尺寸,分辨率调整包括增加或减少初始贴图的像素数。在缩放时,以初始贴图中的某个点为基准点,根据缩放比例R’对初始贴图进行等比例调整,R’大于1时为放大,R’小于1时为缩小;在调整像素数时,将初始贴图的像素数调整到目标像素数,如果目标像素数小于初始贴图的像素数,则适应性的减少初始贴图的像素数,如果目标像素数大于初始贴图的像素数,则适应性的增加初始贴图的像素数。综合两方面的处理,最终得到目标贴图。
基于上述说明,在本示例性实施例中,通过计算初始贴图的初始面积以及目标贴图的目标面积,确定目标贴图相对于初始贴图的缩放比例,并根据缩放比例对初始贴图进行缩放,从而得到处理后的目标贴图。一方面,根据目标像素数确定像素调整的程度,为模型贴图的处理确定了统一标准,无序依赖于人为的判断,提高了贴图的处理精确度;另一方面,本示例性实施例的模型贴图处理过程可以实现自动化处理以及批量处理,简化了开发人员的操作流程,降低了人力成本。
本公开的示例性实施例还提供了一种模型压缩处理装置,参考图5所示,该装置500可以包括:初始模型获取模块510,用于获取初始模型,通过对初始模型的展开贴图进行多边形分割,计算展开贴图的面积;预设参数获取模块520,用于获取目标模型的预设像素数与预设像素密度,并根据预设像素数与预设像素密度确定目标模型的预设展开面积;缩放系数确定模块530,用于根据展开贴图的面积及预设展开面积,确定目标模型相对于初始模型的缩放系数;压缩处理执行模块540,用于根据缩放系数对初始模型进行缩放,并根据预设像素数调整初始模型的像素数,得到目标模型。
在一示例性实施例中,缩放系数确定模块可以用于通过以下公式计算目标模型相对于初始模型的缩放系数:其中,R为缩放系数,S1为预设展开面积,S2为展开贴图的面积。
在一示例性实施例中,压缩处理执行模块可以包括:缩放矩阵获取单元,用于根据缩放系数得到缩放矩阵;模型缩放单元,用于基于初始模型的基准点,通过以下公式对初始模型的各像素点的坐标进行调整,以对初始模型进行缩放:
UVnew=(UVold-UVrefer)·Scale+UVrefer
其中,UVold为初始模型的各像素点在调整前的坐标,UVnew为初始模型的各像素点在调整后的坐标,UVRefer为初始模型的基准点的坐标,Scale为缩放矩阵。
在一示例性实施例中,基准点可以包括初始模型的中心点。
在一示例性实施例中,初始模型获取模块可以包括:三角形分割单元,用于将初始模型的展开贴图分割为多个三角形;面积计算单元,用于利用海伦公式计算多个三角形的面积,并将多个三角形的面积相加得到展开贴图的面积。
在一示例性实施例中,压缩处理执行模块可以包括:像素减少处理单元,用于在初始模型的像素数大于预设像素数时,通过图像下采样算法将初始模型的像素数调整为预设像素数。
在一示例性实施例中,压缩处理执行模块还可以包括:像素增加处理单元,用于在初始模型的像素数小于预设像素数时,通过图像插值算法将初始模型的像素数调整为预设像素数。
在一示例性实施例中,初始模型获取模块510中的展开贴图为UV贴图。
本公开的示例性实施例还提供了一种模型贴图处理装置,参考图6所示,该装置600可以包括:初始贴图获取模块610,用于获取初始贴图,计算初始贴图的初始面积;目标参数获取模块620,用于获取目标贴图的目标像素数与目标像素密度,根据目标像素数与目标像素密度确定目标贴图的目标面积;缩放比例确定模块630,用于根据初始面积及目标面积,确定目标贴图相对于初始贴图的缩放比例;贴图处理执行模块640,用于根据缩放比例对初始贴图进行缩放,得到目标贴图。
上述各模块/单元的具体细节已经在对应的方法部分实施例中进行了详细的描述,因此此处不再赘述。
本公开的示例性实施例还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图7来描述根据本公开的这种示例性实施例的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同***组件(包括存储单元720和处理单元710)的总线730、显示单元740。
其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元710可以执行图2所示的步骤S210~S240等。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。
本公开的示例性实施例还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的示例性实施例的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (13)

1.一种模型压缩处理方法,其特征在于,包括:
获取初始模型,通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积;
获取目标模型的预设像素数与预设像素密度,并根据所述预设像素数与预设像素密度确定所述目标模型的预设展开面积;
根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数;
根据所述缩放系数对所述初始模型进行缩放,并根据所述预设像素数调整所述初始模型的像素数,得到所述目标模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数包括:
通过以下公式计算所述目标模型相对于所述初始模型的缩放系数:
其中,R为所述缩放系数,S1为所述预设展开面积,S2为所述展开贴图的面积。
3.根据权利要求2所述的方法,其特征在于,所述根据所述缩放系数对所述初始模型进行缩放包括:
根据所述缩放系数得到缩放矩阵;
基于初始模型的基准点,通过以下公式对所述初始模型的各像素点的坐标进行调整,以对所述初始模型进行缩放:
UVnew=(UVold-UVrefer)·Scale+UVrefer
其中,UVold为初始模型的各像素点在调整前的坐标,UVnew为所述初始模型的各像素点在调整后的坐标,UVRefer为所述初始模型的基准点的坐标,Scale为所述缩放矩阵。
4.根据权利要求3所述的方法,其特征在于,所述基准点包括所述初始模型的中心点。
5.根据权利要求1所述的方法,其特征在于,所述通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积包括:
将所述初始模型的展开贴图分割为多个三角形;
利用海伦公式计算所述多个三角形的面积,并将所述多个三角形的面积相加得到所述展开贴图的面积。
6.根据权利要求1所述的方法,其特征在于,所述根据所述预设像素数调整所述初始模型的像素数包括:
如果所述初始模型的像素数大于所述预设像素数,则通过图像下采样算法将所述初始模型的像素数调整为所述预设像素数。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述初始模型的像素数小于所述预设像素数,则通过图像插值算法将所述初始模型的像素数调整为所述预设像素数。
8.根据权利要求1所述的方法,其特征在于,所述展开贴图为纹理UV贴图。
9.一种模型贴图处理方法,其特征在于,包括:
获取初始贴图,计算所述初始贴图的初始面积;
获取目标贴图的目标像素数与目标像素密度,根据所述目标像素数与目标像素密度确定所述目标贴图的目标面积;
根据所述初始面积及所述目标面积,确定所述目标贴图相对于所述初始贴图的缩放比例;
根据所述缩放比例对所述初始贴图进行缩放,得到所述目标贴图。
10.一种模型压缩处理装置,其特征在于,包括:
初始模型获取模块,用于获取初始模型,通过对所述初始模型的展开贴图进行多边形分割,计算所述展开贴图的面积;
预设参数获取模块,用于获取目标模型的预设像素数与预设像素密度,并根据所述预设像素数与预设像素密度确定所述目标模型的预设展开面积;
缩放系数确定模块,用于根据所述展开贴图的面积及所述预设展开面积,确定所述目标模型相对于所述初始模型的缩放系数;
压缩处理执行模块,用于根据所述缩放系数对所述初始模型进行缩放,并根据所述预设像素数调整所述初始模型的像素数,得到所述目标模型。
11.一种模型贴图处理装置,其特征在于,包括:
初始贴图获取模块,用于获取初始贴图,计算所述初始贴图的初始面积;
目标参数获取模块,用于获取目标贴图的目标像素数与目标像素密度,根据所述目标像素数与目标像素密度确定所述目标贴图的目标面积;
缩放比例确定模块,用于根据所述初始面积及所述目标面积,确定所述目标贴图相对于所述初始贴图的缩放比例;
贴图处理执行模块,用于根据所述缩放比例对所述初始贴图进行缩放,得到所述目标贴图。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-8任一项所述的方法或权利要求9所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的方法或权利要求9所述的方法。
CN201811567198.6A 2018-12-19 2018-12-19 模型压缩处理方法、模型贴图处理方法装置、存储介质 Active CN109697748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811567198.6A CN109697748B (zh) 2018-12-19 2018-12-19 模型压缩处理方法、模型贴图处理方法装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811567198.6A CN109697748B (zh) 2018-12-19 2018-12-19 模型压缩处理方法、模型贴图处理方法装置、存储介质

Publications (2)

Publication Number Publication Date
CN109697748A true CN109697748A (zh) 2019-04-30
CN109697748B CN109697748B (zh) 2023-05-16

Family

ID=66231895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811567198.6A Active CN109697748B (zh) 2018-12-19 2018-12-19 模型压缩处理方法、模型贴图处理方法装置、存储介质

Country Status (1)

Country Link
CN (1) CN109697748B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111986335A (zh) * 2020-09-01 2020-11-24 贝壳技术有限公司 纹理贴图方法和装置、计算机可读存储介质、电子设备
CN113032699A (zh) * 2021-03-04 2021-06-25 广东博智林机器人有限公司 机器人的模型构建方法、模型构建装置和处理器
CN113313631A (zh) * 2021-06-10 2021-08-27 北京百度网讯科技有限公司 图像渲染方法和装置
CN113487717A (zh) * 2021-07-13 2021-10-08 网易(杭州)网络有限公司 图片处理方法及装置、计算机可读存储介质、电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106791915A (zh) * 2016-11-24 2017-05-31 广州华多网络科技有限公司 一种显示视频图像的方法和装置
CN107590708A (zh) * 2016-07-07 2018-01-16 梁如愿 一种生成用户特定体形模型的方法和装置
CN108777000A (zh) * 2018-05-21 2018-11-09 武汉山骁科技有限公司 一种ar下模型尺寸控制算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590708A (zh) * 2016-07-07 2018-01-16 梁如愿 一种生成用户特定体形模型的方法和装置
CN106791915A (zh) * 2016-11-24 2017-05-31 广州华多网络科技有限公司 一种显示视频图像的方法和装置
CN108777000A (zh) * 2018-05-21 2018-11-09 武汉山骁科技有限公司 一种ar下模型尺寸控制算法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111986335A (zh) * 2020-09-01 2020-11-24 贝壳技术有限公司 纹理贴图方法和装置、计算机可读存储介质、电子设备
CN111986335B (zh) * 2020-09-01 2021-10-22 贝壳找房(北京)科技有限公司 纹理贴图方法和装置、计算机可读存储介质、电子设备
CN113032699A (zh) * 2021-03-04 2021-06-25 广东博智林机器人有限公司 机器人的模型构建方法、模型构建装置和处理器
CN113313631A (zh) * 2021-06-10 2021-08-27 北京百度网讯科技有限公司 图像渲染方法和装置
CN113313631B (zh) * 2021-06-10 2024-05-10 北京百度网讯科技有限公司 图像渲染方法和装置
CN113487717A (zh) * 2021-07-13 2021-10-08 网易(杭州)网络有限公司 图片处理方法及装置、计算机可读存储介质、电子设备

Also Published As

Publication number Publication date
CN109697748B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN107358649B (zh) 地形文件的处理方法和装置
US8749543B2 (en) Three dimensional polygon mesh deformation using subspace energy projection
CN109697748A (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN109771951B (zh) 游戏地图生成的方法、装置、存储介质和电子设备
CN109903366A (zh) 虚拟模型的渲染方法及装置、存储介质及电子设备
CN114820905B (zh) 虚拟形象生成方法、装置、电子设备及可读存储介质
US10482629B2 (en) System, method and computer program product for automatic optimization of 3D textured models for network transfer and real-time rendering
CN112288665A (zh) 图像融合的方法、装置、存储介质及电子设备
CN112717414B (zh) 游戏场景编辑方法、装置、电子设备以及存储介质
US20090309877A1 (en) Soft shadow rendering
US20240037839A1 (en) Image rendering
CN109979013A (zh) 三维人脸贴图方法及终端设备
CN111583372B (zh) 虚拟角色面部表情生成方法和装置、存储介质及电子设备
CN114998490B (zh) 一种虚拟对象生成方法、装置、设备及存储介质
CN108074285B (zh) 体积云模拟方法和体积云模拟装置
CN101802875A (zh) 用于基于用户选择的视点选择性地检索并显示地理空间纹理数据的地理空间数据***及相关方法
CN112231020B (zh) 模型切换方法和装置、电子设备和存储介质
CN112206519B (zh) 实现游戏场景环境变化的方法、装置、存储介质及计算机设备
CN112950753B (zh) 虚拟植物显示方法、装置、设备及存储介质
CN108230430B (zh) 云层遮罩图的处理方法及装置
CN109448123A (zh) 模型的控制方法及装置、存储介质、电子设备
CN110751026B (zh) 视频处理方法及相关装置
CN116993955A (zh) 三维模型的重拓扑方法、装置、设备及存储介质
CN110706149A (zh) 一种闪电粒子的渲染方法及装置
CN116228982A (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
GR01 Patent grant
GR01 Patent grant