CN108122196A - 图片的纹理贴图方法和装置 - Google Patents

图片的纹理贴图方法和装置 Download PDF

Info

Publication number
CN108122196A
CN108122196A CN201611070684.8A CN201611070684A CN108122196A CN 108122196 A CN108122196 A CN 108122196A CN 201611070684 A CN201611070684 A CN 201611070684A CN 108122196 A CN108122196 A CN 108122196A
Authority
CN
China
Prior art keywords
area
region
picture
textures region
mapped
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
CN201611070684.8A
Other languages
English (en)
Other versions
CN108122196B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611070684.8A priority Critical patent/CN108122196B/zh
Publication of CN108122196A publication Critical patent/CN108122196A/zh
Application granted granted Critical
Publication of CN108122196B publication Critical patent/CN108122196B/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
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请提出一种图片的纹理贴图方法和装置,其中,该图片的纹理贴图方法,包括以下步骤:获取源图片,所述源图片包括第一区域和第二区域;生成所述源图片的纹理数据;根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。本申请的图片的纹理贴图方法,能够有效提升对可扩展图片的贴图质感和精细度,且能够有效减少资源占用,简化操作,提升显示效果。

Description

图片的纹理贴图方法和装置
技术领域
本申请涉及图像处理技术领域,特别涉及一种图片的纹理贴图方法和装置。
背景技术
纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程,即一个用图像、函数或其他数据源来改变图像表明在每一处的外观的过程。目前,主要通过OpenGL(Open Graphics Library,一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口)进行纹理贴图,以使同一图片可映射到不同分辨率或不同尺寸的屏幕空间。
然而,对于类似于.9.png格式的可扩展图片,由于其具有自适应调节大小的能力,这种图片允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展;另外,这种图片允许开发人员定义内容显示区,用于显示文字或其他内容。这种图片可以实现横向、纵向拉伸,以满足不同尺寸控件或不同屏幕分辨率在显示时不会损失精细度和质感的需求。目前,在对这种图片进行纹理贴图时,由于上述内容显示区域在采样过程中会因重复采样而导致贴图显示失真,例如,显示的文字或内容混乱、边缘模糊等,效果很差。因此,一种能够适用于这种可扩展图片的纹理贴图方法有待提出。
发明内容
本申请旨在至少在一定程度上解决上述技术问题。
为此,本申请的第一个目的在于提出一种图片的纹理贴图方法,能够有效提升对可扩展图片的贴图质感和精细度。
本申请的第二个目的在于提出一种图片的纹理贴图装置。
为达上述目的,根据本申请第一方面实施例提出了一种图片的纹理贴图方法,包括以下步骤:获取源图片,所述源图片包括第一区域和第二区域;生成所述源图片的纹理数据;根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
本申请实施例的图片的纹理贴图方法,通过生成源图片的纹理数据,并根据预设的映射规则将纹理数据映射到目标贴图区域,且在映射过程中第一区域中至少一个点的纹理数据在映射到目标贴图区域时的采样次数小于或等于第二区域中任一点的纹理数据映射到目标贴图区域时的采样次数,从而,在纹理映射的过程中主要通过对第二区域中的纹理数据进行重复采样完成纹理映射,使得位于第一区域在贴图过程中不会因为过度重复采样而失真,并充分利用了第二区域的可扩展性,能够有效提升对可扩展图片的贴图质感和精细度,且无需复杂的算法和处理,能够有效减少资源占用,简化操作,提升显示效果。
本申请第二方面实施例提供了一种图片的纹理贴图装置,包括:获取模块,用于获取源图片,所述源图片包括第一区域和第二区域;生成模块,用于生成所述源图片的纹理数据;映射模块,用于根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
本申请实施例的图片的纹理贴图装置,通过生成源图片的纹理数据,并根据预设的映射规则将纹理数据映射到目标贴图区域,且在映射过程中第一区域中至少一点的纹理数据在映射到目标贴图区域时的采样次数小于或等于第二区域中任一点的纹理数据映射到目标贴图区域时的采样次数,从而,在纹理映射的过程中主要通过对第二区域中的纹理数据进行重复采样完成纹理映射,使得位于第一区域在贴图过程中不会因为过度重复采样而失真,并充分利用了第二区域的可扩展性,能够有效提升对可扩展图片的贴图质感和精细度,且无需复杂的算法和处理,能够有效减少资源占用,简化操作,提升显示效果。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请一个实施例的图片的纹理贴图方法的流程图;
图2a根据本申请一个实施例的可扩展图片的示意图;
图2b根据本申请另一个实施例的可扩展图片的示意图;
图3为根据本申请一个实施例的将所述纹理数据映射到目标贴图区域的方法的流程图;
图4为根据本申请另一个实施例的将所述纹理数据映射到目标贴图区域的方法的流程图;
图5为根据本申请一个实施例的将所述纹理数据映射到目标贴图区域的示意图。
图6为根据本发明一个实施例的对第二区域进行差值采样示意图;
图7为根据本发明一个实施例的目标贴图区域中各个区域在纹理贴图过程中对应的源图片中扩展区域的平铺采样示意图;
图8为根据本申请一个实施例的图片的纹理贴图装置的结构示意图;
图9为根据本申请另一个实施例的图片的纹理贴图装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
由于可扩展图片的特有属性,即内容显示区域在扩展时易出现模糊、画质降低等现象、以及可扩展区域在扩展时对显示效果影响不明显的特性,如果使用相关技术中的纹理贴图方法,对整个图片进行纹理数据的重复采样,并映射至目标区域,易导致贴图过程中?内容显示区域因重复采样、映射而在纹理贴图结果中模糊、显示失真、效果差等问题。因此,对于可扩展图片的纹理贴图仍需针对不同的分辨率、尺寸等分别制作适合的图片,难以体现上述可扩展图片自身一张图即可满足不同尺寸、分辨率的优点,导致了资源占用增大、操作复杂的问题。
为解决上述问题,本申请通过在映射过程中,控制上述内容显示区域的纹理数据的采样次数小于上述可扩展区域的纹理数据的采样次数,从而,通过主要对可扩展区域的纹理数据进行重复采样,尽量少的对内容显示区域进行重复采样,以避免内容显示区域重复采样而失真。
下面参考附图描述根据本申请实施例的图片的纹理贴图方法和装置。
图1为根据本申请一个实施例的图片的纹理贴图方法的流程图。
如图1所示,根据本申请实施例的图片的纹理贴图方法,包括:
S101,获取源图片,所述源图片包括第一区域和第二区域。
在本申请的一个实施例中,源图片为可扩展图片,包括第一区域和第二区域。其中,第一区域为可扩展图片中的内容显示区域,即,在进行拉伸、平铺等扩展操作时易出现模糊、画质降低等现象的区域,第二区域为可扩展图片中的可扩展区域,即,在进行拉伸、平铺等扩展操作时对显示效果影响不明显的区域。
举例来说,源图片可为.9.png格式的图片。在.9.png格式的图片中,第一区域与所述第二区域呈九宫格样式分布,第一区域位于所述九宫格四个角所在的区域,其余五个区域为所述第二区域。
如图2a所示,.9.png格式的图片可划分为3行3列的9个格子区域,其中,四个角的所在区域的宽高大小是相同的,其他区域的宽高可根据需要设定。在一个实施例中,位于中央的格子区域(即不临近任何一个图片边缘的区域)的宽高可设置为1个像素,从而无论通过拉伸还是平铺的扩展方式,其扩展效果都是一样的,能尽量减少扩展对中间区域的图像质量的影响。
需要说明的是,为便于说明本发明的技术方案,在本发明的实施例中,通过上述九宫格样式的.9.png格式的图片进行举例说明,应当理解,本发明的技术方案中的源图片中的第一区域和第二区域并不仅限于九宫格样式分布,也可以其他样式进行划分,例如十六宫格样式、其他形状图片的区域分布等。
举例来说,源图片还可以是如图2b所示的菱形可扩展图片,其中,第一区域为该菱形图片四个角所在的区域10、区域20、区域30和区域40,第二区域为除第一区域之外的中央区域50。
S102,生成所述源图片的纹理数据。
其中,纹理数据可包括但不限于源图片中各个图像点的颜色数据、亮度数据、alpha数据中的一种或多种。
因此,在获取源图片数据之后,可提取源图片中各个图像点的颜色数据、亮度数据或alpha数据等,并组成数据数组,即源图片的纹理数据。其中,上述数据数组中每个数组元素与一个图像点对应,元素值可为颜色数据、亮度数据或alpha数据等。
其中,图像点可以是像素点或者其他图像数据的度量单位,本发明的实施例中以像素点为例进行说明。
S103,根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
其中,纹理数据的重复采样次数可表示纹理数据对应的图像区域的扩展程度。重复采样次数越大,扩展程度越高,重复采样次数越小,扩展程度越低。
当目标贴图区域的尺寸大于源图片的尺寸时,目标贴图区域中的像素点多于源图片中的像素点,如果进行一一映射则目标贴图区域中会存在没有映射到的像素点。因此,可根据预设的映射规则对源图片中的像素点进行重复采样,并映射到目标贴图区域,以使目标贴图区域中的每个像素点都能够映射到源图片中的像素点。但是,目前,纹理映射过程中对整个图片进行纹理数据的重复采样,并映射至目标区域,会导致第一区域边缘模糊、图像质量差的问题,且对第一区域和第二区域进行了相同的处理,未能充分利用可扩展图片的优势。
为此,本申请实施例中,在将源图片的纹理数据映射到目标贴图区域时,根据可扩展图片中第一区域在扩展时易出现模糊、画质降低等现象、以及第二区域在扩展时对显示效果影响不明显的特性,采用预设的映射规则进行纹理数据的映射,控制第一区域的扩展程度小于第二区域的扩展程度,即在第一区域中至少存在一个点的纹理数据的采样次数小于或等于第二区域中每一点的纹理数据的采样次数。也就是说,如果在第二区域中所有点的纹理数据中,P点的纹理数据的采样次数最大,则在第一区域中至少存在一个点的纹理数据的采样次数小于或等于P点的纹理数据的采样次数。从而通过主要扩展第二区域,尽量少扩展第一区域,从而避免图像出现模糊、画质降低等问题。
在本发明的实施例中,预设的映射规则可以包括以下映射规则:
第一类映射规则
对第一区域和第二区域分别进行映射,即第一区域不进行扩展直接映射至目标贴图区域的相应位置,对第二区域进行平铺或者拉伸等方式进行重复采样,并映射到相应的位置;
第二类映射规则
通过构建映射函数以改变插值采样过程中的纹理坐标,以使采样过程中第一区域对应的纹理坐标的密度小于所述第二区域对应的纹理坐标的密度,达到第一区域的扩展程度小于第二区域的扩展程度的效果。
通过第一类映射规则对源图片的纹理数据进行采样,映射到目标贴图区域的过程中,第一区域完全保留了源图片中的形态,第一区域中各点的采样次数为1,只是对第二区域进行了扩展(即对第二区域中各点的纹理数据进行重复采样),因此,无论目标贴图区域的尺寸比源图片大多少,多能够确保第一区域的清晰和质量,而第二区域在扩展时,清晰度和质量并不会下降,因此,能够确保整贴图的效果和质量。
通过第二类映射规则对源图片的纹理数据进行采样,映射到目标贴图区域的过程中,可对第一区域和第二区域的纹理数据进行整体的插值处理,并通过统一的纹理坐标变换实现第一区域的扩展程度小于第二区域的扩展程度的效果,由于都是对数据进行统一整体的处理,因此,纹理贴图的效率较高,且由于第一区域的扩展程度相对较小,因此对于因扩展导致的清晰度问题非常微小,尤其是在目标贴图区域的尺寸与源图片的尺寸相差较小时,第一区域的扩展程度更加小,几乎可以忽略。由此可以高质、高效地进行纹理贴图。
在本发明的一个实施例中,可根据目标贴图区域的尺寸与源图片饿尺寸的比值选择第一映射规则或者第二映射规则对纹理数据进行采样,映射到目标贴图区域。具体地,可首先确定所述目标贴图区域的尺寸与所述源图片的尺寸的第一比值;如果所述第一比值小于预设阈值,则根据第一映射规则对所述纹理数据进行采样,映射到目标贴图区域;如果所述第一比值不小于所述预设阈值,则根据第二映射规则对所述纹理数据进行采样,映射到目标贴图区域。
下面结合图3和图4两个实施例根据预设的映射规则对纹理数据进行采样以映射到目标贴图区域的过程进行说明。
在图3所示实施例中,根据第一映射规则对纹理数据进行采样,映射到目标贴图区域,如图3所示,该方法包括以下步骤:
S301,根据所述第一区域和所述第二区域在所述源图片中的相对位置对所述目标贴图区域进行划分,以得到所述目标贴图区域中的第一类贴图区域和第二类贴图区域。
其中,第一类贴图区域与第一区域的位置相对应,第二类贴图区域与第二区域位置对应,所述第一类贴图区域与所述第一区域的尺寸相同。
在本发明的一个实施例中,如果源图片中的第一区域为多个,则可根据多个第一区域在所述源图片中的相对位置和尺寸对应地在目标区域中确定多个位置对应、尺寸相同的第一类贴图区域。如果源图片中的第二区域为多个,则可多个第二区域在所述源图片中的相对位置对应地在目标区域中确定多个位置对应的第二类贴图区域。其中,在目标贴图区域中在第一类贴图区域以外的区域为第二类贴图区域,因此,第二类贴图区域的尺寸可由第一类贴图区域的尺寸和目标贴图区域的尺寸确定。
如图5所示,.9.png格式的源图片A包括编号为1-9的9个区域,其中,1、3、7和9为第一区域,2、4、5、6和8为第二区域。可根据源图片A中1-9各个区域的尺寸,将目标贴图区域划分为相应的9个区域a、b、c、d、e、f、g、h和i,具体可如图5所示。其中,第一类贴图区域f、g、h和i的尺寸分别与第一区域1、3、7和9相同,第二类贴图区域a、b、c、d、e、f、g、h和i的尺寸大于第二区域2、4、5、6和8的尺寸。
S302,对所述第一区域中各点的纹理数据分别采样,并映射到所述第一类贴图区域。
由于目标贴图区域是根据纹理坐标指定的坐标位置对源图片的纹理数据进行采样显示的,因此,可将目标贴图区域的每个像素点都与源图片中纹理数据的纹理坐标建立一一对应关系,以根据纹理坐标来对源图片进行颜色采样。
具体地,在对目标区域进行划分之后,第一类贴图区域的尺寸与第一区域的尺寸相同,因此,可建立第一类贴图区域中各个像素点与第一区域中各像素点的纹理坐标的一一对应关系。
举例来说,对于图5所示的.9.png格式的源图片A中第一区域1中各个像素点的纹理坐标与目标贴图区域B中第一类贴图区域f中各个像素点一一对应,在映射过程中,可根据该对应关系对第一区域1中各个像素点的纹理数据分别采样,并一一映射到第一类贴图区域f。根据相同的规则,可将第一区域3、7和9对应的纹理数据分别映射到第一类贴图区域g、h和i。
S303,对所述第二区域中各点的纹理数据重复采样,并映射到所述第二类贴图区域。
当目标贴图区域的尺寸大于源图片的尺寸时,由于第一类贴图区域的尺寸与第一区域的尺寸相同,因此,第二类贴图区域的尺寸要大于第二区域的尺寸。也就是说,第二类贴图区域所需的像素点的数量多于第二区域内的像素点数量,那么,则可通过对第二区域中的纹理数据重复采样,并映射到第二类贴图区域。
当第二区域为多个时,每个第二区域在目标贴图区域内分别具有对应的第二类贴图区域,可分别计算每个第二类贴图区域的尺寸与其对应的第二区域的尺寸的比值,进而比值分别对每个第二区域进行重复采样,以映射到对应的第二类贴图区域。
在本申请的一个实施例中,可确定所述第二类贴图区域的尺寸与所述第二区域的尺寸的第二比值;然后可根据第二比值通过以下方式对第二区域中的纹理数据进行重复采样:
方式一
对第二区域中的纹理数据进行插值采样,并映射到所述第二类贴图区域。
也就是说,根据第二比值对第二区域中纹理数据的纹理坐标进行插值,以使第二区域中的纹理数据的纹理坐标与第二贴图区域中的像素点一一对应,进而可根据该纹理坐标将第二区域中的纹理数据映射到第二类贴图区域中。
其中,可采用预设的插值算法对第二区域中纹理数据的纹理坐标进行插值。举例来说,对于图5中的第二区域2,对应的第二类贴图区域为a,其纵坐标方向上的范围没有发生变化,上述第二比值可为横坐标方向的尺寸的比值,在进行插值时,也只需对横坐标范围的纹理坐标进行插值,并根据插值后的纹理坐标进行采样,映射到第二类贴图区域a。其中,插值的过程增加纹理坐标密度的过程。对于图5中其他第二区域4、5、6和8可采用相同的原理进行插值采样,并分别映射到第二类贴图区域b、c、d和e。
举例来说,第二区域的尺寸为10×10,第二类贴图区域的尺寸为20×20,第二比值为2,因此,可将第二区域中的纹理数据的纹理坐标的标记密度增大一倍,即可得到与目标贴图区域的纹理坐标一一对应的纹理坐标。
OpenGL的2D的纹理坐标的横轴和纵轴可分别用s和t表示,且s和t的取值范围都是0到1之间。假设源图片的纹理坐标在进行插值之前的标记密度为每隔0.1一个标记(横纵坐标的标记密度相同),而目标贴图区域的标记密度为每隔0.05一个标记(横纵坐标的标记密度相同),因此,可通过在源图片的纹理坐标之间进行标记插值,以增加标记密度,以使插值后的纹理坐标与目标贴图区域的纹理坐标一一对应。
举例来说,如果插值前的纹理坐标的横坐标分别为(0.1,0.2,0.3,0.4,0.5),第二比值为2,则插值后的纹理坐标的横坐标分别为(0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55)。在映射过程中,第二类贴图区域中横坐标为0.1与0.15的两个像素点在采样时,对应的都是第二区域中横坐标为0.1的像素点的颜色值,实现了对第二区域的重复采样。
方式二
根据所述第二比值对所述第二区域进行平铺采样,并映射到所述第二类贴图区域。
具体地,可对第二区域进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域中截取相应大小进行填充映射,以使第二类贴图区域填充完整。
对于有多个第二区域的场景,则可分别对每个第二区域进行平铺采样,并映射到对应的第二类贴图区域。
举例来说,对于图5中的第二类贴图区域a,可对源图片A中的第二区域2进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域2截取相应大小进行填充。也就是说,第二类贴图区域a采样时所使用的纹理坐标都修改为第二区域2的纹理坐标的重复坐标。
对于第二类贴图区域d,可对源图片A中的第二区域4进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域4截取相应大小进行填充。
对于第二类贴图区域b,可对源图片A中的第二区域6进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域6截取相应大小进行填充。
对于第二类贴图区域c,可对源图片A中的第二区域8进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域8截取相应大小进行填充。
对于第二类贴图区域e,可对源图片A中的第二区域5进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域5截取相应大小进行填充。
如图6所示:假设图5中目标贴图区域的4个第一区域1、3、7和9的横向坐标对应整个横轴总长度的十分之一的宽度,也就是说,第一扩展图区域1的宽度对应横坐标范围为0.0-0.1,第一区域3的宽度对应横坐标范围为0.9-1.0,则第二区域2对应横坐标范围为0.1-0.9。如果第二比值为4.7,也就是说,目标区域B中第二类贴图区域a的宽度是源图片A中第二扩展图区域2的4整数倍加0.7倍,则第二类贴图区域a在对第二扩展图区域2采样时所使用的纹理坐标应该修改为如图6所示的形式,即修改为重复横坐标在0.1到0.9的值(纵坐标的范围为固定的,不进行变化),举例来说,可完整重复4次0.1-0.9的部分之后,从0.1-0.9中选取0.1-0.7中再进行重复,以满足第二类贴图区域a的尺寸。
第二类贴图区域d与第二类贴图区域a的原理相同,第二类贴图区域d在对第二扩展图区域8采样时所使用的纹理坐标横坐标在0.1到0.9的值进行重复采样。
对于第二类贴图区域b和d需要通过对对应的第二区域的纹理坐标的纵坐标对应的部分(横坐标的范围为固定的,不进行变化)进行重复采样。
对于第二类贴图区域e需要对第二区域5的纹理坐标的横、纵坐标对应的部分都需要对应重复采样,
也就是说,目标区域B中各个第一类贴图区域和第二类贴图区域对应的采样扩展区域可如图7所示。
经过上述处理可将源图片映射到目标贴图区域B,在映射过程中,充分利用了可扩展图像的优势,对第一区域不进行扩展,仅针对第二区域进行扩展,提高了可扩展图片的纹理贴图的图像质量和效果。
在图4所示实施例中,根据第二映射规则对纹理数据进行采样,映射到目标贴图区域,如图4所示,该方法包括以下步骤:
S401,根据所述第一比值对所述源图片的纹理数据的纹理坐标进行插值,以使插值后的纹理坐标与所述目标贴图区域的图像点一一对应。
在本申请的一个实施例中,可根据源图片的尺寸与目标贴图区域的尺寸之间的第一比值对源图片的纹理数据的纹理坐标进行插值。
举例来说,源图片的尺寸为10×10,目标贴图区域的尺寸为20×20,两者之间的比例为2,因此,可将第二区域中的纹理数据的纹理坐标的标记密度增大一倍,即可得到与目标贴图区域的纹理坐标一一对应的纹理坐标。
OpenGL的2D的纹理坐标的横轴和纵轴可分别用s和t表示,且s和t的取值范围都是大于0到1之间。假设源图片的纹理坐标在进行插值之前的标记密度为每隔0.1一个标记(横纵坐标的标记密度相同),而目标贴图区域的标记密度为每隔0.05一个标记(横纵坐标的标记密度相同),因此,可通过在源图片的纹理坐标之间进行标记插值,以增加标记密度,以使插值后的纹理坐标与目标贴图区域的纹理坐标一一对应。
S402,对插值后的纹理坐标进行坐标转换,以使所述第一区域内的纹理坐标的密度小于所述第二区域内的纹理坐标的密度。
插值之后的纹理坐标是均等分布的,由于坐标密度增大,因此源图片中的一个像素点对应的纹理坐标不再是一个,插值后,一个像素点对应的纹理坐标数量变为第一比值。也就是说,如果第一比值为2,则插值后一个像素点的纹对应2个纹理坐标。
OpenGL的贴图采样是根据这个坐标来选择应该在源图片的哪个坐标点来采样的,对插值后的纹理坐标进行坐标转换可以改变采样的位置。在本发明的实施例中,对点9图片采样需要尽量使9图片四个角落区域(第一区域)的纹理坐标的改变尽可能小,即重复采样次数尽可能低,对于其他区域(第二区域)的重复采样次数可以高一些。
在本申请的实施例中,可通过预先建立的坐标转换函数对插值后的纹理坐标进行坐标转换。举例来说,坐标转换函数可以是三角变换函数或者其他可将均匀变量变换为边缘分散、中心秘籍的变换函数。
S403,根据转换后的纹理坐标对所述源图片的纹理数据进行采样,并映射到所述目标贴图区域对应的图像点。
本申请实施例的图片的纹理贴图方法,通过生成源图片的纹理数据,并根据预设的映射规则将纹理数据映射到目标贴图区域,且在映射过程中第一区域中至少一点的纹理数据在映射到目标贴图区域时的采样次数小于或等于第二区域中任一点的纹理数据映射到目标贴图区域时的采样次数,从而,在纹理映射的过程中主要通过对第二区域中的纹理数据进行重复采样完成纹理映射,使得位于第一区域在贴图过程中不会因为过度重复采样而失真,并充分利用了第二区域的可扩展性,能够有效提升对可扩展图片的贴图质感和精细度,且无需复杂的算法和处理,能够有效减少资源占用,简化操作,提升显示效果。
与上述实施例提供的图片的纹理贴图方法相对应,本申请还提出一种图片的纹理贴图装置。
图8为根据本申请一个实施例的图片的纹理贴图装置的结构示意图。
如图8所示,根据本申请实施例的图片的纹理贴图装置,包括:获取模块110、生成模块120和映射模块130。
具体地,获取模块110用于获取源图片,所述源图片包括第一区域和第二区域。
在本申请的一个实施例中,源图片为可扩展图片,包括第一区域和第二区域。其中,第一区域为可扩展图片中的内容显示区域,即,在进行拉伸、平铺等扩展操作时易出现模糊、画质降低等现象的区域,第二区域为可扩展图片中的可扩展区域,即,在进行拉伸、平铺等扩展操作时对显示效果影响不明显的区域。
举例来说,源图片可为.9.png格式的图片。在.9.png格式的图片中,第一区域与所述第二区域呈九宫格样式分布,第一区域位于所述九宫格四个角所在的区域,其余五个区域为所述第二区域。
如图2a所示,.9.png格式的图片可划分为3行3列的9个格子区域,其中,四个角的所在区域的宽高大小是相同的,其他区域的宽高可根据需要设定。在一个实施例中,位于中央的格子区域(即不临近任何一个图片边缘的区域)的宽高可设置为1个像素,从而无论通过拉伸还是平铺的扩展方式,其扩展效果都是一样的,能尽量减少扩展对中间区域的图像质量的影响。
需要说明的是,为便于说明本发明的技术方案,在本发明的实施例中,通过上述九宫格样式的.9.png格式的图片进行举例说明,应当理解,本发明的技术方案中的源图片中的第一区域和第二区域并不限于九宫格样式分布,也可以其他方式进行划分,例如十六宫格样式、其他形状图片的区域分布等。
举例来说,源图片还可以是如图2b所示的菱形可扩展图片,其中,第一区域为该菱形图片四个角所在的区域10、区域20、区域30和区域40,第二区域为除第一区域之外的中央区域50。
生成模块120用于生成所述源图片的纹理数据。
其中,纹理数据可包括但不限于源图片中各个图像点的颜色数据、亮度数据、alpha数据中的一种或多种。
因此,在获取源图片数据之后,生成模块120可提取源图片中各个图像点的颜色数据、亮度数据或alpha数据等,并组成数据数组,即源图片的纹理数据。其中,上述数据数组中每个数组元素与一个图像点对应,元素值可为颜色数据、亮度数据或alpha数据等。
其中,图像点可以是像素点或者其他图像数据的度量单位,本发明的实施例中以像素点为例进行说明。
映射模块130用于根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
其中,纹理数据的重复采样次数可表示纹理数据对应的图像区域的扩展程度。重复采样次数越大,扩展程度越高,重复采样次数越小,扩展程度越低。
当目标贴图区域的尺寸大于源图片的尺寸时,目标贴图区域中的像素点多于源图片中的像素点,如果进行一一映射则目标贴图区域中会存在没有映射到的像素点。因此,映射模块130可根据预设的映射规则对源图片中的像素点进行重复采样,并映射到目标贴图区域,以使目标贴图区域中的每个像素点都能够映射到源图片中的像素点。但是,目前,纹理映射过程中对整个图片进行纹理数据的重复采样,并映射至目标区域,会导致第一区域边缘模糊、图像质量差的问题,且对第一区域和第二区域进行了相同的处理,未能充分利用可扩展图片的优势。
为此,本申请实施例中,在将源图片的纹理数据映射到目标贴图区域时,根据可扩展图片中第一区域在扩展时易出现模糊、画质降低等现象、以及第二区域在扩展时对显示效果影响不明显的特性,采用预设的映射规则进行纹理数据的映射,控制第一区域的扩展程度小于第二区域的扩展程度,即在第一区域中至少存在一个点的纹理数据的采样次数小于或等于第二区域中每一点的纹理数据的采样次数。也就是说,如果在第二区域中所有点的纹理数据中,P点的纹理数据的采样次数最大,则在第一区域中至少存在一个点的纹理数据的采样次数小于或等于P点的纹理数据的采样次数。从而通过主要扩展第二区域,尽量少扩展第一区域,从而避免图像出现模糊、画质降低等问题。
在本发明的实施例中,预设的映射规则可以包括以下映射规则:
第一类映射规则
对第一区域和第二区域分别进行映射,即第一区域不进行扩展直接映射至目标贴图区域的相应位置,对第二区域进行平铺或者拉伸等方式进行重复采样,并映射到相应的位置;
第二类映射规则
通过构建映射函数以改变插值采样过程中的纹理坐标,以使采样过程中第一区域对应的纹理坐标的密度小于所述第二区域对应的纹理坐标的密度,达到第一区域的扩展程度小于第二区域的扩展程度的效果。
通过第一类映射规则对源图片的纹理数据进行采样,映射到目标贴图区域的过程中,第一区域完全保留了源图片中的形态,第一区域中各点的采样次数为1,只是对第二区域进行了扩展(即对第二区域中各点的纹理数据进行重复采样),因此,无论目标贴图区域的尺寸比源图片大多少,多能够确保第一区域的清晰和质量,而第二区域在扩展时,清晰度和质量并不会下降,因此,能够确保整贴图的效果和质量。
通过第二类映射规则对源图片的纹理数据进行采样,映射到目标贴图区域的过程中,可对第一区域和第二区域的纹理数据进行整体的插值处理,并通过统一的纹理坐标变换实现第一区域的扩展程度小于第二区域的扩展程度的效果,由于都是对数据进行统一整体的处理,因此,纹理贴图的效率较高,且由于第一区域的扩展程度相对较小,因此对于因扩展导致的清晰度问题非常微小,尤其是在目标贴图区域的尺寸与源图片的尺寸相差较小时,第一区域的扩展程度更加小,几乎可以忽略。由此可以高质、高效地进行纹理贴图。
在本发明的一个实施例中,映射模块130可根据目标贴图区域的尺寸与源图片饿尺寸的比值选择第一映射规则或者第二映射规则对纹理数据进行采样,映射到目标贴图区域。
具体地,如图9所示,映射模块130可包括:确定单元131、第一采样单元132和第二采样单元132。
其中,确定单元131用于确定所述目标贴图区域的尺寸与所述源图片的尺寸的第一比值。
第一采样单元132用于在所述第一比值小于预设阈值时,根据第一映射规则对所述纹理数据进行采样,映射到目标贴图区域。
在本发明的实施例中,第一采样单元132可用于:
根据所述第一区域在所述源图片中的相对位置和尺寸,对所述目标贴图区域进行划分,以得到所述目标贴图区域中的第一类贴图区域和第二类贴图区域,所述第一类贴图区域与所述第一区域的尺寸相同,所述目标贴图区域中所述第一类贴图区域之外的区域为所述第二类贴图区域;
对所述第一区域中各点的纹理数据分别采样,并映射到所述第一类贴图区域;
对所述第二区域中各点的纹理数据重复采样,并映射到所述第二类贴图区域。
其中,第一类贴图区域与第一区域的位置相对应,第二类贴图区域与第二区域位置对应,所述第一类贴图区域与所述第一区域的尺寸相同。
在本发明的一个实施例中,如果源图片中的第一区域为多个,则第一采样单元132可根据多个第一区域在所述源图片中的相对位置和尺寸对应地在目标区域中确定多个位置对应、尺寸相同的第一类贴图区域。如果源图片中的第二区域为多个,则可多个第二区域在所述源图片中的相对位置对应地在目标区域中确定多个位置对应的第二类贴图区域。其中,在目标贴图区域中在第一类贴图区域以外的区域为第二类贴图区域,因此,第二类贴图区域的尺寸可由第一类贴图区域的尺寸和目标贴图区域的尺寸确定。
如图5所示,.9.png格式的源图片A包括编号为1-9的9个区域,其中,1、3、7和9为第一区域,2、4、5、6和8为第二区域。可根据源图片A中1-9各个区域的尺寸,将目标贴图区域划分为相应的9个区域a、b、c、d、e、f、g、h和i,具体可如图5所示。其中,第一类贴图区域f、g、h和i的尺寸分别与第一区域1、3、7和9相同,第二类贴图区域a、b、c、d、e、f、g、h和i的尺寸大于第二区域2、4、5、6和8的尺寸。
由于目标贴图区域是根据纹理坐标指定的坐标位置对源图片的纹理数据进行采样显示的,因此,第一采样单元132可将目标贴图区域的每个像素点都与源图片中纹理数据的纹理坐标建立一一对应关系,以根据纹理坐标来对源图片进行颜色采样。
具体地,在对目标区域进行划分之后,第一类贴图区域的尺寸与第一区域的尺寸相同,因此,可建立第一类贴图区域中各个像素点与第一区域中各像素点的纹理坐标的一一对应关系。
举例来说,对于图5所示的.9.png格式的源图片A中第一区域1中各个像素点的纹理坐标与目标贴图区域B中第一类贴图区域f中各个像素点一一对应,在映射过程中,可根据该对应关系对第一区域1中各个像素点的纹理数据分别采样,并一一映射到第一类贴图区域f。根据相同的规则,可将第一区域3、7和9对应的纹理数据分别映射到第一类贴图区域g、h和i。
当目标贴图区域的尺寸大于源图片的尺寸时,由于第一类贴图区域的尺寸与第一区域的尺寸相同,因此,第二类贴图区域的尺寸要大于第二区域的尺寸。也就是说,第二类贴图区域所需的像素点的数量多于第二区域内的像素点数量,那么,则第一采样单元132可通过对第二区域中的纹理数据重复采样,并映射到第二类贴图区域。
当第二区域为多个时,每个第二区域在目标贴图区域内分别具有对应的第二类贴图区域,第一采样单元132可分别计算每个第二类贴图区域的尺寸与其对应的第二区域的尺寸的比值,进而比值分别对每个第二区域进行重复采样,以映射到对应的第二类贴图区域。
因此,第一采样单元132在对所述第二区域中的纹理数据重复采样,并映射到所述第二类贴图区域时,可确定所述第二类贴图区域的尺寸与所述第二区域的尺寸的第二比值;然后可根据第二比值通过以下方式对第二区域中的纹理数据进行重复采样:
方式一
对第二区域中的纹理数据进行插值采样,并映射到所述第二类贴图区域。
也就是说,根据第二比值对第二区域中纹理数据的纹理坐标进行插值,以使第二区域中的纹理数据的纹理坐标与第二贴图区域中的像素点一一对应,进而可根据该纹理坐标将第二区域中的纹理数据映射到第二类贴图区域中。
其中,可采用预设的插值算法对第二区域中纹理数据的纹理坐标进行插值。举例来说,对于图5中的第二区域2,对应的第二类贴图区域为a,其纵坐标方向上的范围没有发生变化,上述第二比值可为横坐标方向的尺寸的比值,在进行插值时,也只需对横坐标范围的纹理坐标进行插值,并根据插值后的纹理坐标进行采样,映射到第二类贴图区域a。其中,插值的过程增加纹理坐标密度的过程。对于图5中其他第二区域4、5、6和8可采用相同的原理进行插值采样,并分别映射到第二类贴图区域b、c、d和e。
举例来说,第二区域的尺寸为10×10,第二类贴图区域的尺寸为20×20,第二比值为2,因此,可将第二区域中的纹理数据的纹理坐标的标记密度增大一倍,即可得到与目标贴图区域的纹理坐标一一对应的纹理坐标。
OpenGL的2D的纹理坐标的横轴和纵轴可分别用s和t表示,且s和t的取值范围都是0到1之间。假设源图片的纹理坐标在进行插值之前的标记密度为每隔0.1一个标记(横纵坐标的标记密度相同),而目标贴图区域的标记密度为每隔0.05一个标记(横纵坐标的标记密度相同),因此,可通过在源图片的纹理坐标之间进行标记插值,以增加标记密度,以使插值后的纹理坐标与目标贴图区域的纹理坐标一一对应。
举例来说,如果插值前的纹理坐标的横坐标分别为(0.1,0.2,0.3,0.4,0.5),第二比值为2,则插值后的纹理坐标的横坐标分别为(0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55)。在映射过程中,第二类贴图区域中横坐标为0.1与0.15的两个像素点在采样时,对应的都是第二区域中横坐标为0.1的像素点的颜色值,实现了对第二区域的重复采样。
方式二
根据所述第二比值对所述第二区域进行平铺采样,并映射到所述第二类贴图区域。
具体地,可对第二区域进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域中截取相应大小进行填充映射,以使第二类贴图区域填充完整。
对于有多个第二区域的场景,则可分别对每个第二区域进行平铺采样,并映射到对应的第二类贴图区域。
举例来说,对于图5中的第二类贴图区域a,可对源图片A中的第二区域2进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域2截取相应大小进行填充。也就是说,第二类贴图区域a采样时所使用的纹理坐标都修改为第二区域2的纹理坐标的重复坐标。
对于第二类贴图区域d,可对源图片A中的第二区域4进行平铺采样,并填充映射,对于不够整数倍的最后一块,可直接从第二区域4截取相应大小进行填充。
对于第二类贴图区域b,可对源图片A中的第二区域6进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域6截取相应大小进行填充。
对于第二类贴图区域c,可对源图片A中的第二区域8进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域8截取相应大小进行填充。
对于第二类贴图区域e,可对源图片A中的第二区域5进行平铺填充,对于不够整数倍的最后一块,可直接从第二区域5截取相应大小进行填充。
如图6所示:假设图5中目标贴图区域的4个第一区域1、3、7和9的横向坐标对应整个横轴总长度的十分之一的宽度,也就是说,第一扩展图区域1的宽度对应横坐标范围为0.0-0.1,第一区域3的宽度对应横坐标范围为0.9-1.0,则第二区域2对应横坐标范围为0.1-0.9。如果第二比值为4.7,也就是说,目标区域B中第二类贴图区域a的宽度是源图片A中第二扩展图区域2的4整数倍加0.7倍,则第二类贴图区域a在对第二扩展图区域2采样时所使用的纹理坐标应该修改为如图6所示的形式,即修改为重复横坐标在0.1到0.9的值(纵坐标的范围为固定的,不进行变化),举例来说,可完整重复4次0.1-0.9的部分之后,从0.1-0.9中选取0.1-0.7中再进行重复,以满足第二类贴图区域a的尺寸。
第二类贴图区域d与第二类贴图区域a的原理相同,第二类贴图区域d在对第二扩展图区域8采样时所使用的纹理坐标横坐标在0.1到0.9的值进行重复采样。
对于第二类贴图区域b和d需要通过对对应的第二区域的纹理坐标的纵坐标对应的部分(横坐标的范围为固定的,不进行变化)进行重复采样。
对于第二类贴图区域e需要对第二区域5的纹理坐标的横、纵坐标对应的部分都需要对应重复采样,
也就是说,目标区域B中各个第一类贴图区域和第二类贴图区域对应的采样扩展区域可如图7所示。
经过上述处理可将源图片映射到目标贴图区域B,在映射过程中,充分利用了可扩展图像的优势,对第一区域不进行扩展,仅针对第二区域进行扩展,提高了可扩展图片的纹理贴图的图像质量和效果。
第二采样单元132用于在所述第一比值不小于所述预设阈值时,根据第二映射规则对所述纹理数据进行采样,映射到目标贴图区域。
在本发明的实施例中,第二采样单元132可具体用于:根据所述第一比值对所述源图片的纹理数据的纹理坐标进行插值,以使插值后的纹理坐标与所述目标贴图区域的图像点一一对应;对插值后的纹理坐标进行坐标转换,以使所述第一区域内的纹理坐标的密度小于所述第二区域内的纹理坐标的密度;根据转换后的纹理坐标对所述源图片的纹理数据进行采样,并映射到所述目标贴图区域对应的图像点。
在本申请的一个实施例中,第二采样单元132可根据源图片的尺寸与目标贴图区域的尺寸之间的第一比值对源图片的纹理数据的纹理坐标进行插值。
举例来说,源图片的尺寸为10×10,目标贴图区域的尺寸为20×20,两者之间的比例为2,因此,可将第二区域中的纹理数据的纹理坐标的标记密度增大一倍,即可得到与目标贴图区域的纹理坐标一一对应的纹理坐标。
OpenGL的2D的纹理坐标的横轴和纵轴可分别用s和t表示,且s和t的取值范围都是大于0到1之间。假设源图片的纹理坐标在进行插值之前的标记密度为每隔0.1一个标记(横纵坐标的标记密度相同),而目标贴图区域的标记密度为每隔0.05一个标记(横纵坐标的标记密度相同),因此,可通过在源图片的纹理坐标之间进行标记插值,以增加标记密度,以使插值后的纹理坐标与目标贴图区域的纹理坐标一一对应。
插值之后的纹理坐标是均等分布的,由于坐标密度增大,因此源图片中的一个像素点对应的纹理坐标不再是一个,插值后,一个像素点对应的纹理坐标数量变为第一比值。也就是说,如果第一比值为2,则插值后一个像素点的纹对应2个纹理坐标。
OpenGL的贴图采样是根据这个坐标来选择应该在源图片的哪个坐标点来采样的,对插值后的纹理坐标进行坐标转换可以改变采样的位置。在本发明的实施例中,对点9图片采样需要尽量使9图片四个角落区域(第一区域)的纹理坐标的改变尽可能小,即重复采样次数尽可能低,对于其他区域(第二区域)的重复采样次数可以高一些。
在本申请的实施例中,第二采样单元132可通过预先建立的坐标转换函数对插值后的纹理坐标进行坐标转换。举例来说,坐标转换函数可以是三角变换函数或者其他可将均匀变量变换为边缘分散、中心秘籍的变换函数。
本申请实施例的图片的纹理贴图装置,通过生成源图片的纹理数据,并根据预设的映射规则将纹理数据映射到目标贴图区域,且在映射过程中第一区域中至少一点的纹理数据在映射到目标贴图区域时的采样次数小于或等于第二区域中任一点的纹理数据映射到目标贴图区域时的采样次数,从而,在纹理映射的过程中主要通过对第二区域中的纹理数据进行重复采样完成纹理映射,使得位于第一区域在贴图过程中不会因为过度重复采样而失真,并充分利用了第二区域的可扩展性,能够有效提升对可扩展图片的贴图质感和精细度,且无需复杂的算法和处理,能够有效减少资源占用,简化操作,提升显示效果。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同限定。

Claims (12)

1.一种图片的纹理贴图方法,其特征在于,包括以下步骤:
获取源图片,所述源图片包括第一区域和第二区域;
根据所述源图片,生成纹理数据;
根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
2.如权利要求1所述的方法,其特征在于,所述源图片为.9.png格式的图片;
所述第一区域与所述第二区域呈九宫格样式分布,其中,所述九宫格四个角所在的区域为所述第一区域,所述九宫格中除所述四个角所在的区域之外的其余五个区域为所述第二区域。
3.如权利要求1或2所述的方法,其特征在于,所述根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域包括:
确定所述目标贴图区域的尺寸与所述源图片的尺寸的第一比值;
如果所述第一比值小于预设阈值,则根据第一映射规则对所述纹理数据进行采样,映射到目标贴图区域;
如果所述第一比值不小于所述预设阈值,则根据第二映射规则对所述纹理数据进行采样,映射到目标贴图区域。
4.如权利要求3所述的方法,其特征在于,根据第一映射规则对所述纹理数据进行采样,映射到目标贴图区域,包括:
根据所述第一区域和所述第二区域在所述源图片中的相对位置对所述目标贴图区域进行划分,以得到所述目标贴图区域中的第一类贴图区域和第二类贴图区域,其中,所述第一类贴图区域与所述第一区域的位置相对应,所述第二类贴图区域与所述第二区域位置对应,所述第一类贴图区域与所述第一区域的尺寸相同;
对所述第一区域中各点的纹理数据分别采样,并映射到所述第一类贴图区域;
对所述第二区域中各点的纹理数据重复采样,并映射到所述第二类贴图区域。
5.如权利要求4所述的方法,其特征在于,所述对所述第二区域中的纹理数据重复采样,并映射到所述第二类贴图区域,包括:
确定所述第二类贴图区域的尺寸与所述第二区域的尺寸的第二比值;
根据所述第二比值对所述第二区域中的纹理数据进行插值采样,并映射到所述第二类贴图区域;
或者,
根据所述第二比值对所述第二区域进行平铺采样,并映射到所述第二类贴图区域。
6.如权利要求3所述的方法,其特征在于,根据第二映射规则对所述纹理数据进行采样,映射到目标贴图区域,包括:
根据所述第一比值对所述源图片的纹理数据的纹理坐标进行插值,以使插值后的纹理坐标与所述目标贴图区域的图像点一一对应;
对插值后的纹理坐标进行坐标转换,以使所述第一区域内的纹理坐标的密度小于所述第二区域内的纹理坐标的密度;
根据转换后的纹理坐标对所述源图片的纹理数据进行采样,并映射到所述目标贴图区域对应的图像点。
7.一种图片的纹理贴图装置,其特征在于,包括:
获取模块,用于获取源图片,所述源图片包括第一区域和第二区域;
生成模块,用于生成所述源图片的纹理数据;
映射模块,用于根据预设的映射规则,对所述纹理数据进行采样,映射到目标贴图区域,其中,所述映射规则包括,所述第一区域中至少一个点的纹理数据在映射到所述目标贴图区域时的采样次数小于或等于所述第二区域中任一点的纹理数据映射到所述目标贴图区域时的采样次数。
8.如权利要求7所述的装置,其特征在于,所述源图片为.9.png格式的图片;
所述第一区域与所述第二区域呈九宫格样式分布,其中,所述九宫格四个角所在的区域为所述第一区域,所述九宫格中除所述四个角所在的区域之外的其余五个区域为所述第二区域。
9.如权利要求7或8所述的装置,其特征在于,所述映射模块包括:
确定单元,用于确定所述目标贴图区域的尺寸与所述源图片的尺寸的第一比值;
第一采样单元,用于在所述第一比值小于预设阈值时,根据第一映射规则对所述纹理数据进行采样,映射到目标贴图区域;
第二采样单元,用于在所述第一比值不小于所述预设阈值时,根据第二映射规则对所述纹理数据进行采样,映射到目标贴图区域。
10.如权利要求9所述的装置,其特征在于,所述第一采样单元用于:
根据所述第一区域在所述源图片中的相对位置和尺寸,对所述目标贴图区域进行划分,以得到所述目标贴图区域中的第一类贴图区域和第二类贴图区域,所述第一类贴图区域与所述第一区域的尺寸相同,所述目标贴图区域中所述第一类贴图区域之外的区域为所述第二类贴图区域;
对所述第一区域中各点的纹理数据分别采样,并映射到所述第一类贴图区域;
对所述第二区域中各点的纹理数据重复采样,并映射到所述第二类贴图区域。
11.如权利要求10所述的装置,其特征在于,所述第一采样单元用于:
确定所述第二类贴图区域的尺寸与所述第二区域的尺寸的第二比值;
根据所述第二比值对所述第二区域中的纹理数据进行插值采样,并映射到所述第二类贴图区域;
或者,
根据所述第二比值对所述第二区域进行平铺采样,并映射到所述第二类贴图区域。
12.如权利要求9所述的装置,其特征在于,所述第二采样单元用于:
根据所述第一比值对所述源图片的纹理数据的纹理坐标进行插值,以使插值后的纹理坐标与所述目标贴图区域的图像点一一对应;
对插值后的纹理坐标进行坐标转换,以使所述第一区域内的纹理坐标的密度小于所述第二区域内的纹理坐标的密度;
根据转换后的纹理坐标对所述源图片的纹理数据进行采样,并映射到所述目标贴图区域对应的图像点。
CN201611070684.8A 2016-11-28 2016-11-28 图片的纹理贴图方法和装置 Active CN108122196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611070684.8A CN108122196B (zh) 2016-11-28 2016-11-28 图片的纹理贴图方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611070684.8A CN108122196B (zh) 2016-11-28 2016-11-28 图片的纹理贴图方法和装置

Publications (2)

Publication Number Publication Date
CN108122196A true CN108122196A (zh) 2018-06-05
CN108122196B CN108122196B (zh) 2022-07-05

Family

ID=62224323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611070684.8A Active CN108122196B (zh) 2016-11-28 2016-11-28 图片的纹理贴图方法和装置

Country Status (1)

Country Link
CN (1) CN108122196B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109448095A (zh) * 2018-10-17 2019-03-08 北京新能源汽车股份有限公司 一种导航地图中建筑模型的获取方法、装置及终端
CN109448123A (zh) * 2018-10-19 2019-03-08 网易(杭州)网络有限公司 模型的控制方法及装置、存储介质、电子设备
CN110942425A (zh) * 2019-11-26 2020-03-31 贵州师范学院 一种超分辨率图像的重构方法、重构系统和电子设备
CN111242838A (zh) * 2020-01-09 2020-06-05 腾讯科技(深圳)有限公司 模糊图像渲染方法和装置、存储介质及电子装置
CN112274926A (zh) * 2020-11-13 2021-01-29 网易(杭州)网络有限公司 一种虚拟角色的换装方法和装置
CN113301425A (zh) * 2020-07-28 2021-08-24 阿里巴巴集团控股有限公司 视频播放方法、视频播放装置及电子设备

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472704A (zh) * 2003-06-27 2004-02-04 上海龙贝信息科技有限公司 二维条形码数字图像信息的增强方法
CN1750042A (zh) * 2004-09-15 2006-03-22 德鑫科技股份有限公司 一种数字图像插值处理方法
CN101013444A (zh) * 2007-02-13 2007-08-08 华为技术有限公司 一种自适应生成足球视频摘要的方法和装置
CN101276461A (zh) * 2008-03-07 2008-10-01 北京航空航天大学 一种利用边缘特征的视频文本增强方法
CN101807291A (zh) * 2010-04-27 2010-08-18 浙江大学 基于双二次b样条局部插值的图像缩放方法
CN101923704A (zh) * 2009-06-12 2010-12-22 深圳市融创天下科技发展有限公司 一种自适应图像缩放方法
CN102170572A (zh) * 2010-06-22 2011-08-31 上海盈方微电子有限公司 一种新型边缘自适应cfa彩色图像插值方法
CN102567950A (zh) * 2011-12-27 2012-07-11 深圳市万兴软件有限公司 一种图像缩放方法及系统
CN103116490A (zh) * 2012-12-04 2013-05-22 广州市久邦数码科技有限公司 一种基于网页的九切图绘制方法
CN103729865A (zh) * 2012-10-16 2014-04-16 北京千橡网景科技发展有限公司 拉伸图片的方法和设备
CN104011768A (zh) * 2011-10-31 2014-08-27 Utc消防及保安公司 数字图像放大用户界面
CN105094507A (zh) * 2014-05-15 2015-11-25 Tcl集团股份有限公司 一种实现3d ui中圆角图标焦点套合方法及系统
US20160292907A1 (en) * 2015-04-02 2016-10-06 Apple Inc. Interpolation circuitry and techniques for graphics processing
CN106097253A (zh) * 2016-08-24 2016-11-09 北京印刷学院 一种基于块旋转和清晰度的单幅图像超分辨率重建方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472704A (zh) * 2003-06-27 2004-02-04 上海龙贝信息科技有限公司 二维条形码数字图像信息的增强方法
CN1750042A (zh) * 2004-09-15 2006-03-22 德鑫科技股份有限公司 一种数字图像插值处理方法
CN101013444A (zh) * 2007-02-13 2007-08-08 华为技术有限公司 一种自适应生成足球视频摘要的方法和装置
CN101276461A (zh) * 2008-03-07 2008-10-01 北京航空航天大学 一种利用边缘特征的视频文本增强方法
CN101923704A (zh) * 2009-06-12 2010-12-22 深圳市融创天下科技发展有限公司 一种自适应图像缩放方法
CN101807291A (zh) * 2010-04-27 2010-08-18 浙江大学 基于双二次b样条局部插值的图像缩放方法
CN102170572A (zh) * 2010-06-22 2011-08-31 上海盈方微电子有限公司 一种新型边缘自适应cfa彩色图像插值方法
CN104011768A (zh) * 2011-10-31 2014-08-27 Utc消防及保安公司 数字图像放大用户界面
CN102567950A (zh) * 2011-12-27 2012-07-11 深圳市万兴软件有限公司 一种图像缩放方法及系统
CN103729865A (zh) * 2012-10-16 2014-04-16 北京千橡网景科技发展有限公司 拉伸图片的方法和设备
CN103116490A (zh) * 2012-12-04 2013-05-22 广州市久邦数码科技有限公司 一种基于网页的九切图绘制方法
CN105094507A (zh) * 2014-05-15 2015-11-25 Tcl集团股份有限公司 一种实现3d ui中圆角图标焦点套合方法及系统
US20160292907A1 (en) * 2015-04-02 2016-10-06 Apple Inc. Interpolation circuitry and techniques for graphics processing
CN106097253A (zh) * 2016-08-24 2016-11-09 北京印刷学院 一种基于块旋转和清晰度的单幅图像超分辨率重建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENG YE: "A novel texture mapping algorithm for planar meshes", 《2011 2ND INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE, MANAGEMENT SCIENCE AND ELECTRONIC COMMERCE (AIMSEC)》 *
陈晓铮 等: "一种基于表面积比例的地形纹理贴图算法", 《计算机仿真》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109448095A (zh) * 2018-10-17 2019-03-08 北京新能源汽车股份有限公司 一种导航地图中建筑模型的获取方法、装置及终端
CN109448123A (zh) * 2018-10-19 2019-03-08 网易(杭州)网络有限公司 模型的控制方法及装置、存储介质、电子设备
CN109448123B (zh) * 2018-10-19 2023-03-31 网易(杭州)网络有限公司 模型的控制方法及装置、存储介质、电子设备
CN110942425A (zh) * 2019-11-26 2020-03-31 贵州师范学院 一种超分辨率图像的重构方法、重构系统和电子设备
CN111242838A (zh) * 2020-01-09 2020-06-05 腾讯科技(深圳)有限公司 模糊图像渲染方法和装置、存储介质及电子装置
CN113301425A (zh) * 2020-07-28 2021-08-24 阿里巴巴集团控股有限公司 视频播放方法、视频播放装置及电子设备
CN112274926A (zh) * 2020-11-13 2021-01-29 网易(杭州)网络有限公司 一种虚拟角色的换装方法和装置

Also Published As

Publication number Publication date
CN108122196B (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
CN108122196A (zh) 图片的纹理贴图方法和装置
CN111105491B (zh) 场景渲染方法、装置、计算机可读存储介质和计算机设备
US6373490B1 (en) Using remembered properties to create and regenerate points along an editable path
TWI310541B (en) Color compression using multiple planes in a multi-sample anti-aliasing scheme
Dollner et al. Texturing techniques for terrain visualization
US7095418B2 (en) Apparatus and methods for texture mapping
US8917283B2 (en) Polygon processing techniques in procedural painting algorithms
CN101271587B (zh) 一种基于过渡光贴图的光照和阴影绘制方法
DE102014106780A1 (de) Graphikverarbeitungseinheit und Kachel-basiertes Renderingverfahren
JPH06309466A (ja) グラフィカル・イメージの表示装置及び方法
CN105184837A (zh) 一种矢量多边形栅格化的算法及系统
CZ273297A3 (cs) Počítačový grafický systém pro vytváření a zlepšování map, vztahujících se ke třírozměrným modelům
CN103679627A (zh) 基于图块的计算机图形
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
US20080259079A1 (en) Method and system for volume rendering
US7453474B2 (en) Flexibly resizeable vector graphics
CN110738718A (zh) 一种国土数据的三维可视化方法
CN102147936A (zh) 一种基于级联的在三维地形表面无缝叠加二维矢量的方法
US20160307294A1 (en) Systems and Methods for Displaying Patterns of Recurring Graphics on Digital Maps
WO2006090610A1 (ja) 画像処理装置および画像処理方法
CN109712225B (zh) 一种面对象的渲染方法、装置、设备及存储介质
CN102073468B (zh) 一种基于视窗系统实现图像边缘融合方法
DE102013021709A1 (de) Schablonieren-dann-abdecken- pfadbilderzeugung mit gemeinsamen kanten
CN105741335A (zh) 一种基于分块组织的多层次兵棋地图快速绘制方法
US7734118B2 (en) Automatic image feature embedding

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