一种2D地图弯曲模拟地平线消失的方法技术

技术编号:25891970 阅读:17 留言:0更新日期:2020-10-09 23:35
本发明专利技术公开了一种2D地图弯曲模拟地平线消失的方法,该方法包括创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;将待处理地图图像数据添加到所述第二纹理中;采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。本申请提供的方法,简单易行,可以保证每个像素点均被替换,有效防止弯曲效果失真。值得大面积推广使用。

【技术实现步骤摘要】
一种2D地图弯曲模拟地平线消失的方法
本专利技术涉及图像处理
,特别是涉及一种2D地图弯曲模拟地平线消失的方法。
技术介绍
在目前的图像技术下,2D地图向里弯曲(以下简称弯曲)以模拟地平线消失的视觉效果,主流有两种做法,第一是“挤压”图像对像素处理,第二是通过顶点(Vertex)位置变换对网格(Mesh)处理。“挤压”方法多运用在图片的编辑软件中(如PhotoShop),这种方式并不是真的弯曲,只是通过局部的变形实现,也无法准确设置透明度,在实时渲染中不可能达到弯曲的效果,反而出现图像失真(视觉上图像并没有达到弯曲的特点)。顶点位置变换方法是对图像纹理(Texture)预设大量网格分片,通过改变顶点来达到弯曲效果,这种技术虽然能防止失真,但需要大量编辑顶点的工作,也无法做到每个像素都进行变换。
技术实现思路
本专利技术提供了一种2D地图弯曲模拟地平线消失的方法。本专利技术提供了如下方案:一种2D地图弯曲模拟地平线消失的方法,包括:创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;将待处理地图图像数据添加到所述第二纹理中;采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。优选地:对所述第一纹理进行变换包括将将添加有待处理地图图像数据的所述第二纹理投影到一个虚拟球面,将所述虚拟球面正交投影到所述第一纹理;逆向正交投影过程以便将所述第一纹理上的像素点的像素值进行替换。优选地:所述替换的过程包括通过着色器取所述第一纹理中需要渲染的第一像素点;对所述第一像素点进行变换得到第二像素点;从所述第二纹理中寻找所述第二像素点的像素值,使用所述第二像素点的像素值替换所述第一像素点的像素值;遍历所述第一纹理内所有像素点并对所有像素点的像素值进行替换完成对所述待处理地图图像的平滑弯曲。优选地:通过公式1对所述第一像素点进行变换得到第二像素点;公式1:a=asin((ty-by)/r)z=(r-cos(a)*r)sy=a*r+by式中:r为虚拟圆的半径,by为开始弯曲的Y轴坐标,a为在虚拟点到圆心的弧度,z为向里的程度值。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:通过本专利技术,可以实现一种2D地图弯曲模拟地平线消失的方法,在一种实现方式下,该方法可以包括创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;将待处理地图图像数据添加到所述第二纹理中;采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。本申请提供的方法,简单易行,可以保证每个像素点均被替换,有效防止弯曲效果失真。值得大面积推广使用。当然,实施本专利技术的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的变换过程示意图;图2是本专利技术实施例提供的实际弯曲效果图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。实施例参见图1,为本专利技术实施例提供的一种2D地图弯曲模拟地平线消失的方法,如图1所示,该方法包括创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;将待处理地图图像数据添加到所述第二纹理中;采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。进一步的,对所述第一纹理进行变换包括将将添加有待处理地图图像数据的所述第二纹理投影到一个虚拟球面,将所述虚拟球面正交投影到所述第一纹理;逆向正交投影过程以便将所述第一纹理上的像素点的像素值进行替换。所述替换的过程包括通过着色器取所述第一纹理中需要渲染的第一像素点;对所述第一像素点进行变换得到第二像素点;从所述第二纹理中寻找所述第二像素点的像素值,使用所述第二像素点的像素值替换所述第一像素点的像素值;遍历所述第一纹理内所有像素点并对所有像素点的像素值进行替换完成对所述待处理地图图像的平滑弯曲。通过公式1对所述第一像素点进行变换得到第二像素点;公式1:a=asin((ty-by)/r)z=(r-cos(a)*r)sy=a*r+by式中:r为虚拟圆的半径,by为开始弯曲的Y轴坐标,a为在虚拟点到圆心的弧度,z为向里的程度值。下面通过具体实施过程对本申请提供的方案进行详细说明。本方法包括如下四个步骤:步骤1:创建两个同样尺寸大小的纹理Tex1和Tex2。步骤2:将地图图像数据添加到Tex2中。步骤3:Tex2作为参数传入Tex1着色器(Shader),对Tex1像素进行变换。步骤4:渲染Tex1。变换过程如图1所示,将Tex2投影到一个虚拟球面(虚线部分),然后将球面正交投影到Tex1。实现过程是逆向这个投影过程,先通过着色器取Tex1需要渲染的像素点P1(x,ty),因为是虚拟球面的正交投影,因此P1点对应虚拟球面的点值相同为(x,ty),通过公式1变换后得到点P2(x,sy),公式1:a=asin((ty-by)/r)z=(r-cos(a)*r)sy=a*r+by式中:r为虚拟圆的半径,by为开始弯曲的Y轴坐标,a为在虚拟点到圆心的弧度,z为向里的程度值。从纹理Tex2上寻找P2点的像素值V2,如果存在,则用V2值替换Tex1上P1(x,ty)位置的像素值。经过遍历Tex1所有像素点,则可以完成图像平滑弯曲效果。弯曲效果如图2所示,图中左边为原图,右边为弯曲图。总之,本申请提供的方法,简单易行,可以保证每个像素点均被替换,有效防止弯曲效果失真。值得大面积推广使用。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、本文档来自技高网...

【技术保护点】
1.一种2D地图弯曲模拟地平线消失的方法,其特征在于,所述方法包括:/n创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;/n将待处理地图图像数据添加到所述第二纹理中;/n采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。/n

【技术特征摘要】
1.一种2D地图弯曲模拟地平线消失的方法,其特征在于,所述方法包括:
创建第一纹理以及第二纹理,所述第一纹理以及所述第二纹理具有相同的尺寸大小;
将待处理地图图像数据添加到所述第二纹理中;
采用着色器对所述第一纹理进行着色过程中将添加有待处理地图图像数据的所述第二纹理作为参数传入,对所述第一纹理进行变换完成对所述待处理地图图像的平滑弯曲。


2.根据权利要求1所述的2D地图弯曲模拟地平线消失的方法,其特征在于,对所述第一纹理进行变换包括将将添加有待处理地图图像数据的所述第二纹理投影到一个虚拟球面,将所述虚拟球面正交投影到所述第一纹理;逆向正交投影过程以便将所述第一纹理上的像素点的像素值进行替换。


3.根据权利要求2所述的2D地图弯...

【专利技术属性】
技术研发人员:文永福
申请(专利权)人:深圳市小猴跳跳网络科技有限公司
类型:发明
国别省市:广东;44

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

1