基于GLSL着色器实现地图栅格瓦片滤镜的方法技术

技术编号:37709966 阅读:6 留言:0更新日期:2023-06-02 00:01
本发明专利技术公开了一种基于GLSL着色器实现地图栅格瓦片滤镜的方法,通过修改以GLSL着色器方式处理栅格瓦片渲染的前端可视化GIS技术框架相关着色器代码,增加栅格瓦片滤镜相关算法,定义并调整滤镜相关参数值以达到修改栅格瓦片色彩的目的;本发明专利技术的优点在于:实现了电子地图在展示栅格瓦片时,可以方便的通过调整滤镜算法给定的各项参数来达到对栅格瓦片输出色彩的修改,极大的减轻了栅格瓦片数据的修改成本,同时满足电子地图用户在不同场景下对于地图视觉美观度上的需求。于地图视觉美观度上的需求。于地图视觉美观度上的需求。

【技术实现步骤摘要】
基于GLSL着色器实现地图栅格瓦片滤镜的方法


[0001]本专利技术涉及一种GIS地图栅格瓦片可视化的方法,具体地说是一种基于GLSL着色器实现地图栅格瓦片滤镜的方法,属于GIS地图可视化领域。

技术介绍

[0002]随着GIS(地理信息系统)技术的广泛应用,基于WebGL(一种图形绘制协议)技术以GLSL(开放性图形库着色语言)着色器方式处理地图渲染的GIS平台也是更加流行,电子地图的可视化效果作为GIS的基础也不断被提出新的要求,特别是对于地图的美观度提出了 更高的要求。栅格瓦片数据因具有结构简单、输出简便、成本低廉等优点而被广泛应用于现代GIS电子地图的可视化展示中,使得Web客户端应用不再需要加载整个地图的数据,便可以展示特定范围内的电子地图信息的能力,但同时存在着栅格瓦片修改困难、修改成本大、输出色彩单一、不够精美等缺点。

技术实现思路

[0003]本专利技术的目的在于,本专利技术设计了一种基于GLSL着色器实现GIS地图栅格瓦片滤镜的方法,通过修改以GLSL着色器方式处理栅格瓦片渲染的前端可视化GIS技术框架相关着色器代码,增加栅格瓦片滤镜相关算法,定义并调整滤镜相关参数值以达到修改栅格瓦片色彩,提升用户使用电子地图时的视觉体验效果。
[0004]本专利技术的技术方案为:基于GLSL着色器实现GIS地图栅格瓦片滤镜的方法,主要包括如下步骤:步骤S100:获取以GLSL着色器方式处理GIS地图栅格瓦片渲染的相关着色器代码,检查相关着色器代码并提取最终输出的当前光栅化像素颜色值的代码片段;本步骤的目的是提取最终输出的当前光栅化像素颜色值的代码片段,为增加地图栅格瓦片滤镜算法做准备步骤S200:修改上述步骤S100中提取的片段着色器代码片段,在最终输出的当前光栅化像素颜色值的代码前增加滤镜相关算法代码,调整片段着色器最终输出的当前光栅化像素颜色值;本步骤的目的是调整最终输出光栅化像素颜色值,达到对输出图形修改的效果步骤S300:根据上述步骤S200增加的滤镜算法,以GLSL着色器限定符uniform全局变量的方式定义滤镜算法所需的各项参数,主要包括伽马校正参数、亮度参数、对比度参数、色调参数、饱和度参数、色域反向参数、颜色加权参数,并将其绑定到着色器中;本步骤的目的是为着色器绑定滤镜算法所需要的参数步骤S400:根据上述步骤S300定义滤镜算法所需的各项数据参数,分别设置伽马校正系数、亮度系数、对比度系数、色调系数、饱和度系数、色域反向系数、颜色加权系数,并将其传递给uniform全局变量,用于着色器中滤镜算法对当前光栅化像素颜色值的计算;本步骤的目的是设置滤镜算法所需要参数值并传递给着色器用于滤镜算法对当前光栅化像
素颜色值的计算步骤S500:根据上述步骤S400设置的滤镜参数系数运行以GLSL着色器方式处理地图渲染的GIS平台,实现电子地图栅格瓦片滤镜效果的展示。本步骤的目的是运行展示电子地图栅格瓦片滤镜输出结果,达到提升用户使用电子地图时视觉体验的效果进一步,所述步骤S100包括以下子步骤:(1)在GIS地理信息系统可视化库mapboxGL中通过搜索栅格数据raster相关类对象的方式获取地图栅格瓦片渲染的相关着色器代码;(2)再通过检查相关着色器代码中GLSL着色器的颜色输出核心代码gl_FragColor关键字,提取最终输出的当前光栅化像素颜色值的代码片段作为后续算法调整的基础。
[0005]进一步,所述步骤S200包括以下子步骤:(1)实现滤镜算法代码,首先需提取当前光栅化像素颜色值所对应的红绿蓝颜色值rgb三个分量;(2)对颜色值rgb的三个分量采用伽马校正的方法,此处采用GLSL着色器内置幂函数处理,伽马值为函数的指数;(3)对伽马校正后红绿蓝颜色值rgb分量进行亮度的调整,这里采用GLSL着色器内置的线性混合函数,实现0与颜色值分量混合,亮度值为颜色值分量的渲染权重;(4)对亮度调整后的红绿蓝颜色值rgb分量进行对比度的调整,这里采用GLSL着色器内置的线性混合函数,实现0.5与颜色值分量混合,对比度值为颜色值分量的渲染权重;(5)对对比度调整后的红绿蓝颜色值rgb分量进行色调的调整,这里采用工业颜色模型YIQ进行调整转换;再依据颜色空间模型HSI模型,提取色调,提取色度,对色调值进行调整,再转变回HSI颜色空间模型的YIQ工业颜色模型格式数值; 再将YIQ工业颜色模型转换回RGB格式用于输出显示;(6)对色调调整后的颜色值rgb分量进行饱和度的调整,这里通过颜色空间转换公式BT709颜色空间转换公式将红绿蓝颜色值rgb转为基于人眼感知的图像灰度处理公式YUV模式,此模式是基于人眼感知的图像灰度处理公式,再通过点乘函数算出纹理灰度值,然后通过线性混合函数mix函数做线性混合,最后通过色彩饱和度u_saturation_new值为颜色值分量的渲染权重调节饱和度;(7)对饱和度调整后的红绿蓝颜色值rgb分量进行颜色值反向的调整,这里根据布尔型反向值判断是否要做反向处理,再通过最大值减颜色分量计算,实现颜色分量的反向;(8)最后对红绿蓝颜色值rgb分量进行颜色滤镜加权调整,采用另一种颜色值的分量做为权重值与通过上述步骤调整后的颜色值相乘,得到最终输出的当前光栅化像素颜色值。
[0006]进一步,所述步骤S300包含以下子步骤:(1)在S200所述修改的片段着色器中根据滤镜效果算法所需的参数,增加uniform全局变量用于接受WebGL上下文链接所传递来的参数系数值;(2)在着色器外部的JavaScript代码中增加滤镜效果算法所需的参数变量;(3)通过WebGL上下文链接将JavaScript代码中定义的滤镜效果算法所需的变量值绑定传递到着色器中用于参与滤镜效果算法的运行计算。
[0007]本专利技术的优点在于:实现了电子地图在展示栅格瓦片时,可以方便的通过调整滤
镜算法给定的各项参数来达到对栅格瓦片输出色彩的修改,极大的减轻了栅格瓦片数据的修改成本,同时满足电子地图用户在不同场景下对于地图视觉美观度上的需求。
[0008]下面结合附图和实施例对本专利技术作进一步说明。
附图说明
[0009]图1为本专利技术实施例基于GLSL着色器实现GIS地图栅格瓦片滤镜的方法的流程图。
实施方式
[0010]以下对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。
实施例
[0011]如图1所示,一种基于GLSL着色器实现GIS地图栅格瓦片滤镜的方法,主要包括如下步骤:步骤S100:获取以GLSL着色器方式处理GIS地图栅格瓦片渲染的相关着色器代码,检查片段着色器并提取最终输出的当前光栅化像素颜色值的代码片段;具体的包括以下子步骤:(1)在mapboxGL(一种以GLSL着色器方式处理地图栅格瓦片渲染的GIS地理信息系统可视化库)中通过搜索raster(栅格数据)相关类对象的方式获取地图栅格瓦片渲染的相关着色器代码;(2)再通过检查相关着色器代码中gl_FragColor(GLSL着色器的颜色输出核本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于GLSL着色器实现地图栅格瓦片滤镜的方法,其特征在于,主要包括如下步骤:步骤S100:获取以GLSL着色器方式处理GIS地图栅格瓦片渲染的相关着色器代码,检查相关着色器代码并提取最终输出的当前光栅化像素颜色值的代码片段;步骤S200:修改上述步骤S100中提取的片段着色器代码片段,在最终输出的当前光栅化像素颜色值的代码前增加滤镜相关算法代码,调整片段着色器最终输出的当前光栅化像素颜色值;步骤S300:根据上述步骤S200增加的滤镜算法,以GLSL着色器限定符uniform全局变量的方式定义滤镜算法所需的各项参数,主要包括伽马校正参数、亮度参数、对比度参数、色调参数、饱和度参数、色域反向参数、颜色加权参数,并将其绑定到着色器中;步骤S400:根据上述步骤S300定义滤镜算法所需的各项数据参数,分别设置伽马校正系数、亮度系数、对比度系数、色调系数、饱和度系数、色域反向系数、颜色加权系数,并将其传递给uniform全局变量,用于着色器中滤镜算法对当前光栅化像素颜色值的计算;步骤S500:根据上述步骤S400设置的滤镜参数系数运行以GLSL着色器方式处理地图渲染的GIS平台,实现电子地图栅格瓦片滤镜效果的展示。2.根据权利要求1所述的一种基于GLSL着色器实现地图栅格瓦片滤镜的方法,其特征在于,所述步骤S100包括以下子步骤:(1)在GIS地理信息系统可视化库mapboxGL中通过搜索栅格数据raster相关类对象的方式获取地图栅格瓦片渲染的相关着色器代码;(2)再通过检查相关着色器代码中GLSL着色器的颜色输出核心代码gl_FragColor关键字,提取最终输出的当前光栅化像素颜色值的代码片段作为后续算法调整的基础。3.根据权利要求1所述的一种基于GLSL着色器实现地图栅格瓦片滤镜的方法,其特征在于,所述步骤S200包括以下子步骤:(1)实现滤镜算法代码,首先需提取当前光栅化像素颜色值所对应的红绿蓝颜色值rgb三个分量;(2)对颜色值rgb的三个分量采用伽马校正的方法,此处采用GLSL着色器内置幂函数处理,伽马值为函数的指数;(3)对...

【专利技术属性】
技术研发人员:王玮张晓军张德健王玉杰
申请(专利权)人:北京国研数通软件技术有限公司
类型:发明
国别省市:

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

1