一种基于GPU特性的实时渲染GUI的优化方法技术

技术编号:23485424 阅读:21 留言:0更新日期:2020-03-10 12:48
本发明专利技术公开一种基于GPU特性的实时渲染GUI的优化方法,预先创建两张N*N的纹理,一般来说N=1024或2048,把UI设计出的原始图片,动态的映射到这两张运行时纹理上,动态的迭入迭出;所有的UI再进行绘制的时候,均通过这该两张纹理来进行绘制。本发明专利技术中,设计师无需关注每一个小的图片元素应该归属于哪个图集,把真正的精力放在GUI的设计上,从而真正的发挥美术设计师擅长的领域,提高工作效率,与Unity等商业引擎不同的是,不仅仅是去掉图集这个概念,而是从真正的实现上去掉图集。

An optimization method of real-time rendering GUI Based on GPU characteristics

【技术实现步骤摘要】
一种基于GPU特性的实时渲染GUI的优化方法
本专利技术涉及计算机图形学、网络游戏、实时可视化UI交互
,特别是涉及一种基于GPU特性的实时渲染GUI的优化方法。
技术介绍
图形化界面(GraphicUserInterface,以下简称GUI)在人们的生活中起到了至关重要的作用,从windows时代开始,大量的图形化操作就涌入了人们的视野并逐步渗透到人们生活的方方面面,而实时而又丰富的表现带给人们很好的用于体验,对于使用在游戏中的用户界面,则是一款游戏不可缺少的组成的部分。一般来说,GUI界面的开发过程如下:首先美术构思,并将真正的图片绘制出来。其次是,程序将大量的原始图片按照一定的规则进行组织,在适当的时机进行绘制。但,在实际的操作中,必然会遇到以下几个问题,而这两点也是GUI系统的重点和难点:1.随着项目的迭代,越来越多的图片被制作出来,资源量变大。2.在绘制时需要进行批次的控制(使用相同的渲染状态绘制一定数量的图元,如纹理相同),越少的批次意味着越高的执行效率。在传统的实现方法中,为了解决批次问题,往往采用的是图集的方案,将同时展现的图片元素放在一起,组成一张大的图片,再进行绘制,然而实际的过程中,UI设计师往往难以驾驭项目后期产生的大量的UI元素,不仅花费大量的时间进行图片的组织和布局的调整,然而也很难达到完美解决批次减低到效果。使用图集的另外的一个弊端是图集中很多不需要的图片元素也随之一起加载,越大的图片意味着更多的内存消耗。在现代的游戏当中,往往对质量,尤其是GUI的质量都是非常高的,一张1024*1024的图片就要占去4M内存,而往往实际是同时用到几张。综上所述,图集方案带来的缺陷如下:1.渲染批次优化不够彻底,同时依赖图集组织,甚至是业务逻辑;2.设计师时时刻刻都要有图集的概念,而组织大量的图片元素的过程限制设计师发挥;3.工艺制作流程复杂,因为受到批次限制,设计师与程序员之间需要做大量沟通以调优,浪费在其中的时间成本不计其数。在一些通用的商业引擎中,如Unity和UE,已经开始认识到图集带给设计师的困扰,开始将图集的概念进行隐藏,但在工程导出为实际产品时,依然会以图集的方式进行工作,仅在一定程度上减轻了GUI设计师的设计负担。
技术实现思路
本专利技术的目的是提供一种基于GPU特性的实时渲染GUI的优化方法,以解决上述问题。为实现上述目的,本专利技术提供了一种基于GPU特性的实时渲染GUI的优化方法,包括:预先创建两张N*N的纹理,一般来说N=1024或2048,把UI设计出的原始图片,动态的映射到这两张运行时纹理上,动态的迭入迭出;所有的UI再进行绘制的时候,均通过这该两张纹理来进行绘制;上述过程中,将美术设计师的若干散图片,通过矩形填充算法填充到运行时纹理;其中,所述矩形填充算法的图形结构为一颗三叉树,树节点如下:节点信息{已经占用的区域可用区域1(节点信息)可用区域2(节点信息)可用区域3(节点信息)}在向大纹理去查找可用的纹理区域时,需要查找叶子节点,即可用区域1、2、3,如果找到,那么填充该节点的占用区域信息,同时将该节点划分为已占用区域和可用区域,递归实现为一颗三叉树,完成纹理内容的填充;在已占用的区域内,重新划分已占用区域,可用区域1、2、3,依次类推。进一步地,在上述过程中,运行时图集需要美术做好原始图集的切分,采用九宫格划分方式,运行时图集就容纳更多的图片,通过监控需要同时绘制散图片是否将运行时图集填满并溢出,如果出现这种情况,则需要检查散图片是否做好正确的划分,并重复该过程,重新切分图片。进一步地,在映射过程中,与原有的正方形图形同步,将图片的顶点预生成,以减少图片的绘制面积。进一步地,在映射过程中,需要对图片进行定位,在图形识别以及顶点定位过程中,往往产生顶点扭曲或偏移,产生图形错误,不能够准确定位,因此,在若干个区域内先后插入图形点,图形点与填充的图形组合插入,通过在同一区域内的三个图形点,确定基准顶点,则相应的图形码以此为基准进行排列,在同一区域内设定Z个区域段,在Z各区域段内设定三个图形点。图形点也可设置为移动式的,所述顶点确定模块根据每个顶点信息进行设定,设定每个区域段大小的灰度值E,通过将不同灰度值与相应的顶点Q对应,实时获取的图像图谱灰度值信息为E,预设顶点Q0对应的图像图谱灰度值信息为E0,将实际灰度值E与预设灰度值E0进行比较,获得实际顶点Qi。进一步地,设定对应的灰度值与顶点值按照预设的正相关关系进行确定,基于该算法得出对应的一组相对顶点信息;在确定获取每个定位点的顶点信息时,首先获取满足图像图谱灰度值信息为E0最接近的第一顶点Q1、第二顶点Q2、第三顶点Q3,通过该三个顶点获取可能的第一顶点Q(Qx,Qy)。进一步地,在获取实时顶点信息时,获取每个相对顶点信息的x轴方向参量QiX=Qixcos(ai),ai表示对应的每个相对顶点Qi信息在坐标系中沿x轴方向的夹角,Qixsin(ai)表示对应的每个相对顶点Qi信息在坐标系中沿x轴方向的投影长度,分别为a1、a2、a3,可能的第一顶点Q(Qx,Qy)中,实时x轴顶点为Qx=(Q1x+Q2x+Q3x)/3。进一步地,获取每个相对顶点信息的y轴方向参量Qiy=Qixsin(ai),ai表示对应的每个相对顶点Qi信息在坐标系中沿y轴方向的夹角,Qixsin(ai)表示对应的每个相对顶点Qi信息在坐标系中沿y轴方向的投影长度;分别为a1、a2、a3,因此,实时y轴顶点为Qy=(Q1y+Q2y+Q3y)/3。进一步地,定位点的数量设置为三个,所述顶点确定模块设定其中一基础顶点函数N,根据预先顶点的图形整理而得,将当前顶点函数信息与所述基础顶点函数的图形信息进行对比,其中,表示顶点函数信息与所述基础顶点函数的图形信息进行对比值,Mi表示第i基础图形库的图形量,也即选择的对应的顶点信息的数量,Nj表示某现有顶点的图形信息的顶点函数,Uij表基础顶点函数图形信息与第i基础图形库的相关度,i表示基础顶点函数的编号,d表示修复系数,d的取值为0.997;|A|表示顶点函数A的修复值,由于在运算过程中,产生图形转换,将人才函数A的修复值作为考虑因素。进一步地,确定基本顶点修复函数A0(L0,v0,W0),当前顶点函数信息的顶点修复函数A(L,v,W);顶点函数A的修复值:|A|=(L/L0+v/v0+W/W0)/4其中,L表示表示的当前原始图形块顶点长度,L0表示预设的原始图形块顶点长度,v表示真实图像的平均灰度值,v0表示真实图像的预设灰度值,W表示真实顶点的分割区域数量,W0表示预设的真实顶点的分割区域数量。本实施例通过对原始图形、真实顶点的特性进行一定程度的修复,使得顶点选择更加准确。与现有技术相比本专利技术提供的基于GPU特性的实时渲染GUI的优化方法具有以下优点:...

【技术保护点】
1.一种基于GPU特性的实时渲染GUI的优化方法,其特征在于,包括:/n预先创建两张N*N的纹理,一般来说N=1024或2048,把UI设计出的原始图片,动态的映射到这两张运行时纹理上,动态的迭入迭出;所有的UI再进行绘制的时候,均通过这该两张纹理来进行绘制;/n上述过程中,将美术设计师的若干散图片,通过矩形填充算法填充到运行时纹理;/n其中,所述矩形填充算法的图形结构为一颗三叉树,树节点如下:/n节点信息/n{/n已经占用的区域/n可用区域1(节点信息)/n可用区域2(节点信息)/n可用区域3(节点信息)/n}/n在向大纹理去查找可用的纹理区域时,需要查找叶子节点,即可用区域1、2、3,如果找到,那么填充该节点的占用区域信息,同时将该节点划分为已占用区域和可用区域,递归实现为一颗三叉树,完成纹理内容的填充;在已占用的区域内,重新划分已占用区域,可用区域1、2、3,依次类推。/n

【技术特征摘要】
1.一种基于GPU特性的实时渲染GUI的优化方法,其特征在于,包括:
预先创建两张N*N的纹理,一般来说N=1024或2048,把UI设计出的原始图片,动态的映射到这两张运行时纹理上,动态的迭入迭出;所有的UI再进行绘制的时候,均通过这该两张纹理来进行绘制;
上述过程中,将美术设计师的若干散图片,通过矩形填充算法填充到运行时纹理;
其中,所述矩形填充算法的图形结构为一颗三叉树,树节点如下:
节点信息
{
已经占用的区域
可用区域1(节点信息)
可用区域2(节点信息)
可用区域3(节点信息)
}
在向大纹理去查找可用的纹理区域时,需要查找叶子节点,即可用区域1、2、3,如果找到,那么填充该节点的占用区域信息,同时将该节点划分为已占用区域和可用区域,递归实现为一颗三叉树,完成纹理内容的填充;在已占用的区域内,重新划分已占用区域,可用区域1、2、3,依次类推。


2.根据权利要求1所述的基于GPU特性的实时渲染GUI的优化方法,其特征在于,在上述过程中,运行时图集需要美术做好原始图集的切分,采用九宫格划分方式,运行时图集就容纳更多的图片,通过监控需要同时绘制散图片是否将运行时图集填满并溢出,如果出现这种情况,则需要检查散图片是否做好正确的划分,并重复该过程,重新切分图片。


3.根据权利要求1所述的基于GPU特性的实时渲染GUI的优化方法,其特征在于,在映射过程中,与原有的正方形图形同步,将图片的顶点预生成,以减少图片的绘制面积。


4.根据权利要求3所述的基于GPU特性的实时渲染GUI的优化方法,其特征在于,在映射过程中,需要对图片进行定位,在图形识别以及顶点定位过程中,往往产生顶点扭曲或偏移,产生图形错误,不能够准确定位,因此,在若干个区域内先后插入图形点,图形点与填充的图形组合插入,通过在同一区域内的三个图形点,确定基准顶点,则相应的图形码以此为基准进行排列,在同一区域内设定Z个区域段,在Z各区域段内设定三个图形点。图形点也可设置为移动式的,所述顶点确定模块根据每个顶点信息进行设定,设定每个区域段大小的灰度值E,通过将不同灰度值与相应的顶点Q对应,实时获取的图像图谱灰度值信息为E,预设顶点Q0对应的图像图谱灰度值信息为E0,将实际灰度值E与预设灰度值E0进行比较,获得实际顶点Qi。


5.根据权利要求4所述的基于GPU特性的实时渲染GUI的优化方法,其特征在于,设定对应的灰度值与顶点值按照预设的正相关关系进行确定,基于该算法得出对应的一组相对顶点信...

【专利技术属性】
技术研发人员:刘泳王秀龙
申请(专利权)人:广州银汉科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1