CN111145286A - 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法 - Google Patents

一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法 Download PDF

Info

Publication number
CN111145286A
CN111145286A CN201911360284.4A CN201911360284A CN111145286A CN 111145286 A CN111145286 A CN 111145286A CN 201911360284 A CN201911360284 A CN 201911360284A CN 111145286 A CN111145286 A CN 111145286A
Authority
CN
China
Prior art keywords
picture
point
mapping
gpu
row
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.)
Withdrawn
Application number
CN201911360284.4A
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.)
Chongqing University of Arts and Sciences
Original Assignee
Chongqing University of Arts and Sciences
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 Chongqing University of Arts and Sciences filed Critical Chongqing University of Arts and Sciences
Priority to CN201911360284.4A priority Critical patent/CN111145286A/zh
Publication of CN111145286A publication Critical patent/CN111145286A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • 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/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Abstract

本发明涉及图像处理技术领域,具体涉及一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,包括以下步骤:对图片进行顶点着色器采样,判断图片是否为矩形,若为矩形,则直接进入下一步骤,若不为矩形,则进行四个角区域的区分,区分完成后判断边界是否明确,若明确则进入下一步骤,若不明确则先在中间留一个像素,其余为边界范围,再进入下一步骤;随后进行片元着色器差分采样,然后绘制到缓冲区,最后显示到屏幕;本发明提出的对点九图片进行切分方法进行OpenGL纹理贴图,实现了点九图片一张图片满足所有尺寸的设计意义,减少了资源占用,简化了操作,保证了显示效果。

Description

一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法。
背景技术
点九图片是Android平台特有支持的图片格式,可以实现横向纵向拉伸,以满足不同尺寸控件和不同屏幕分辨率上显示而不会损失精细度和质感的需求,这样只需要采用一套界面切图去适配不同的分辨率,而且大幅减少安装包的大小。而且这样程序不需要专门做处理的就可以实现其拉伸,也减少了代码量和开发工作量。但是点九图片目前是Android系统内部支持的,如果采用OpenGl实现的GPU绘图直接使用点九图片进行纹理贴图会在不同尺寸图形或者分辨率下显示失真,效果很差,如图1所示。
现有技术中采用的方法是统计所需图片的各个分辨率下显示的尺寸,然后根据统计尺寸,分别制作不同大小图片,使得在不同分辨率下,动态替换所需尺寸图片。但是未能实现点九图片一张图片满足所有尺寸的设计意义,只是实现了显示的效果,并且操作复杂,使得资源占用增大,未体现点九图片的优越性。
基于此,本发明设计了一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,以解决上述问题。
发明内容
本发明的目的在于提供一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于,包括以下步骤:
S1:对图片进行顶点着色器采样;
S2:判断图片是否为矩形,若为矩形,则直接进入下一步骤;若不为矩形,则进行四个角区域的区分,区分完成后判断边界是否明确,若明确则进入下一步骤,若不明确则先在中间留一个像素,其余为边界范围,再进入下一步骤;
S3:进行片元着色器差分采样;
S4:绘制到缓冲区;
S5:显示到屏幕。
优选的,片元着色器差分采样的具体方法为:首先把点九图片分割为3行3列的9个子块,其中四个角的子块宽高和大小是相同的,其他子块的宽高可随意设定;再进行平铺填充,此时保持四个角落的子块不变,其他子块依次按平铺规则填充纹理贴图区域;然后修改OpenGL采样器的采样插值参数,通过修改后的采样插值参数纹理映射到实际需要贴图的图形上。
优选的,修改的采样插值参数的具体方法为:四个角的区域纹理坐标要扩大图形和图片比值的倍数,使得图形四个角的纹理坐标是在没有缩放变形的点九图片四个角区域采样,其他区域对应原区域进行平铺采样,可以通过多种映射函数实现。
优选的,在扩大图形和图片比值的倍数时,横坐标和纵坐标要映射到-1和1之间,因为纹理坐标的横坐标和纵坐标范围在[0,1]之间。
优选的,对点九图片进行分割时的特殊情况为中间一行为一个像素高,中间的一列为一个像素高,中间的子块为一个像素,此时平铺填充和拉伸填充的效果是一样的。
优选的,平铺规则为第一行和第三行的两端用原图的第一行左右两块原图填充,其他区域用第一行的中间子块平铺填充,第一列和第三列的上下两端已经在第一第三行填充时填充完毕,中间部分用第一列中间子块平铺填充,剩下中间的区域全部用中间的子块按行列顺序填充。
优选的,在填充除了四个角之外的其他区域时,不够整数倍的最后一块直接截取填充。
优选的,选取映射函数为三角函数st+=uPercent*sin(PI*st),其中uPercent的取值在-1和0之间,PI为圆周率。
优选的,当中间一列或者中间一行采用一个像素的宽高时平铺和拉伸效果一样,可通过调整三角函数中的uPercent的值来调整显示效果。
与现有技术相比,本发明的有益效果是:本发明针对这些缺点,提出的对点九图片进行切分方法进行OpenGL纹理贴图,实现了点九图片一张图片满足所有尺寸的设计意义,减少了资源占用,简化了操作,保证了显示效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的失真对比图;
图2为本发明的流程图;
图3为本发明点九图片的分割示意图;
图4为本发明点九图片的平铺填充示意图;
图5为本发明OpenGL的2D纹理坐标示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图2-5,本发明提供一种技术方案:一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,具体包括以下步骤:
S1:对图片进行顶点着色器采样;
S2:判断图片是否为矩形,若为矩形,则直接进入下一步骤;若不为矩形,则进行四个角区域的区分,区分完成后判断边界是否明确,若明确则进入下一步骤,若不明确则先在中间留一个像素,其余为边界范围,再进入下一步骤;
S3:进行片元着色器差分采样,片元着色器差分采样的具体方法为:如图3所示,首先把点九图片分割为3行3列的9个子块,其中四个角的子块宽高和大小是相同的,其他子块的宽高可随意设定,特殊情况为中间一行为一个像素高,中间的一列为一个像素高,中间的子块为一个像素,此时平铺填充和拉伸填充的效果是一样的;再进行平铺填充,如图4所示,第一行和第三行的两端用原图的第一行左右两块原图填充,其他区域用第一行的中间子块平铺填充,第一列和第三列的上下两端已经在第一第三行填充时填充完毕,中间部分用第一列中间子块平铺填充,剩下中间的区域全部用中间的子块按行列顺序填充,在填充除了四个角之外的其他区域时,不够整数倍的最后一块直接截取填充;然后修改OpenGL采样器的采样插值参数:四个角的区域纹理坐标要扩大图形和图片比值的倍数,横坐标和纵坐标要映射到-1和1之间,因为纹理坐标的横坐标和纵坐标范围在[0,1]之间,使得图形四个角的纹理坐标是在没有缩放变形的点九图片四个角区域采样,其他区域对应原区域进行平铺采样,可以通过多种映射函数实现,选取其中一种映射函数为三角函数,具体为st+=uPercent*sin(PI*st),其中uPercent的取值在-1和0之间,PI为圆周率,当中间一列或者中间一行采用一个像素的宽高时平铺和拉伸效果一样,可通过调整三角函数中的uPercent的值来调整显示效果。再通过修改后的采样插值方法纹理映射到实际需要贴图的图形上。
S4:绘制到缓冲区;
S5:显示到屏幕。
OpenGL的2D纹理的坐标如图5所示,横轴和纵轴分别为s,t表示,并且范围都是大于0小于1的。通过纹理映射到实际需要贴图的图形上,一般情况下只需要纹理坐标的四个角的顶点坐标映射到实际图形的四个角的顶点即可,OpenGL采样器会根据默认算法进行插值采样。要让OpenGL采样器按上面切分和填充步骤来对点九图片进行采样的话就需要修改这个插值采样的方法,从而实现点九图片的保真纹理贴图,修改采样插值方法主要是在OpenGL片元着色器中改变纹理坐标,使其在不同的区域进行指定采样,达到指定方法填充纹理的目的。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (9)

1.一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于,包括以下步骤:
S1:对图片进行顶点着色器采样;
S2:判断图片是否为矩形,若为矩形,则直接进入下一步骤;若不为矩形,则进行四个角区域的区分,区分完成后判断边界是否明确,若明确则进入下一步骤,若不明确则先在中间留一个像素,其余为边界范围,再进入下一步骤;
S3:进行片元着色器差分采样;
S4:绘制到缓冲区;
S5:显示到屏幕。
2.根据权利要求1所述一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:所述片元着色器差分采样的具体方法为:首先把点九图片分割为3行3列的9个子块,其中四个角的子块宽高和大小是相同的,其他子块的宽高可随意设定;再进行平铺填充,此时保持四个角落的子块不变,其他子块依次按平铺规则填充纹理贴图区域;然后修改OpenGL采样器的采样插值参数,通过修改后的采样插值参数纹理映射到实际需要贴图的图形上。
3.根据权利要求2所述一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:所述修改的采样插值参数的具体方法为:四个角的区域纹理坐标要扩大图形和图片比值的倍数,使得图形四个角的纹理坐标是在没有缩放变形的点九图片四个角区域采样,其他区域对应原区域进行平铺采样,可以通过多种映射函数实现。
4.根据权利要求3所述一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:在扩大图形和图片比值的倍数时,横坐标和纵坐标要映射到-1和1之间,因为纹理坐标的横坐标和纵坐标范围在[0,1]之间。
5.根据权利要求2所述的一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:对点九图片进行分割时的特殊情况为中间一行为一个像素高,中间的一列为一个像素高,中间的子块为一个像素,此时平铺填充和拉伸填充的效果是一样的。
6.根据权利要求2所述的一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:所述平铺规则为第一行和第三行的两端用原图的第一行左右两块原图填充,其他区域用第一行的中间子块平铺填充,第一列和第三列的上下两端已经在第一第三行填充时填充完毕,中间部分用第一列中间子块平铺填充,剩下中间的区域全部用中间的子块按行列顺序填充。
7.根据权利要求6所述的一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:在填充除了四个角之外的其他区域时,不够整数倍的最后一块直接截取填充。
8.根据权利要求3所述的一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:选取所述映射函数为三角函数st+=uPercent*sin(PI*st),其中uPercent的取值在-1和0之间,PI为圆周率。
9.根据权利要求8所述的一种基于GPU的用于边缘计算场景的点九图片贴图绘制方法,其特征在于:当中间一列或者中间一行采用一个像素的宽高时平铺和拉伸效果一样,可通过调整三角函数中的uPercent的值来调整显示效果。
CN201911360284.4A 2019-12-25 2019-12-25 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法 Withdrawn CN111145286A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911360284.4A CN111145286A (zh) 2019-12-25 2019-12-25 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911360284.4A CN111145286A (zh) 2019-12-25 2019-12-25 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法

Publications (1)

Publication Number Publication Date
CN111145286A true CN111145286A (zh) 2020-05-12

Family

ID=70520140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911360284.4A Withdrawn CN111145286A (zh) 2019-12-25 2019-12-25 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法

Country Status (1)

Country Link
CN (1) CN111145286A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053416A (zh) * 2020-09-14 2020-12-08 网易(杭州)网络有限公司 图像处理方法、装置、存储介质及计算机设备
CN113256485A (zh) * 2021-05-21 2021-08-13 百果园技术(新加坡)有限公司 图像拉伸方法、装置、电子设备和存储介质
CN113436306A (zh) * 2021-07-22 2021-09-24 久瓴(江苏)数字智能科技有限公司 图像的渲染方法、装置及存储介质
CN114398124A (zh) * 2021-12-31 2022-04-26 深圳市珍爱捷云信息技术有限公司 基于iOS系统的点九效果图渲染方法及其相关装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053416A (zh) * 2020-09-14 2020-12-08 网易(杭州)网络有限公司 图像处理方法、装置、存储介质及计算机设备
CN112053416B (zh) * 2020-09-14 2023-10-24 网易(杭州)网络有限公司 图像处理方法、装置、存储介质及计算机设备
CN113256485A (zh) * 2021-05-21 2021-08-13 百果园技术(新加坡)有限公司 图像拉伸方法、装置、电子设备和存储介质
CN113256485B (zh) * 2021-05-21 2024-01-30 百果园技术(新加坡)有限公司 图像拉伸方法、装置、电子设备和存储介质
CN113436306A (zh) * 2021-07-22 2021-09-24 久瓴(江苏)数字智能科技有限公司 图像的渲染方法、装置及存储介质
CN113436306B (zh) * 2021-07-22 2024-04-05 久瓴(江苏)数字智能科技有限公司 图像的渲染方法、装置及存储介质
CN114398124A (zh) * 2021-12-31 2022-04-26 深圳市珍爱捷云信息技术有限公司 基于iOS系统的点九效果图渲染方法及其相关装置
CN114398124B (zh) * 2021-12-31 2024-04-12 深圳市珍爱捷云信息技术有限公司 基于iOS系统的点九效果图渲染方法及其相关装置

Similar Documents

Publication Publication Date Title
CN111145286A (zh) 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法
US10685425B2 (en) Varying effective resolution by screen location by altering rasterization parameters
US7884825B2 (en) Drawing method, image generating device, and electronic information apparatus
JP6678209B2 (ja) 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
US11361405B2 (en) Dynamic spread anti-aliasing
KR101916341B1 (ko) 스크린 위치에 따라 달라지는 분해능을 가진 다수의 렌더 타겟을 위한 텍스처 매핑을 위한 그라디언트 조정
CN108734624B (zh) 包括多个处理级的图形处理流水线及其操作方法与介质
US7280121B2 (en) Image processing apparatus and method of same
EP1323131A2 (en) Method and apparatus for anti-aliasing supersampling
GB2580740A (en) Graphics processing systems
CN108537718B (zh) Gpu中一种实现点图元反走样的装置和方法
JPH0660173A (ja) 画像を縮小する方法および装置
US6982719B2 (en) Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
CN109741433A (zh) 一种基于Tile的三角形多向并行扫描方法及结构
JP2003504697A (ja) 副標本化テクスチャ端縁部のアンチエイリアシング
CN109155074B (zh) 用于无缝隙地渲染点的系统和方法
US20220366621A1 (en) Systems for Generating Anti-Aliased Vector Objects
US10937233B2 (en) Graphics processing systems
KR20120069134A (ko) 이차원 평면에서 계단현상 개선 장치 및 방법
JP4766576B2 (ja) 描画方法、画像生成装置、および電子情報機器
US9811945B2 (en) On-demand transformation aware shape tessellation
CN116824028B (zh) 图像着色方法、装置、电子设备、存储介质及程序产品
CN117765151A (zh) 一种基于Tile-Based分块算法的局部Blit级联阴影映射方法
WO2001056268A1 (en) Method for rapid smoothing of object edges in computer graphics
JPH09153142A (ja) レンダリング装置およびその方法

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200512