CN117274466A - 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 - Google Patents
一种融合多源瓦片地图服务的真实感水面渲染方法及系统 Download PDFInfo
- Publication number
- CN117274466A CN117274466A CN202311558372.1A CN202311558372A CN117274466A CN 117274466 A CN117274466 A CN 117274466A CN 202311558372 A CN202311558372 A CN 202311558372A CN 117274466 A CN117274466 A CN 117274466A
- Authority
- CN
- China
- Prior art keywords
- water surface
- tile
- vector
- rendering
- current
- 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
Links
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 381
- 238000009877 rendering Methods 0.000 title claims abstract description 123
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000000694 effects Effects 0.000 claims abstract description 34
- 238000013507 mapping Methods 0.000 claims description 62
- 239000012634 fragment Substances 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000000737 periodic effect Effects 0.000 claims description 21
- 230000003252 repetitive effect Effects 0.000 claims description 16
- 238000004040 coloring Methods 0.000 claims description 15
- 238000005070 sampling Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 238000005286 illumination Methods 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000007613 environmental effect Effects 0.000 claims description 7
- 238000010191 image analysis Methods 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 4
- 239000003086 colorant Substances 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 claims description 2
- YNPNZTXNASCQKK-UHFFFAOYSA-N phenanthrene Chemical compound C1=CC=C2C3=CC=CC=C3C=CC2=C1 YNPNZTXNASCQKK-UHFFFAOYSA-N 0.000 claims 4
- 238000004088 simulation Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/30—Assessment of water resources
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种融合多源瓦片地图服务的真实感水面渲染方法及系统,涉及数字地图渲染和水体模拟技术领域,该方法包括将水面矢量数据和遥感影像数据发布为瓦片地图服务;前端地图渲染引擎根据窗口范围请求地图瓦片;自定义水面矢量瓦片的着色器渲染程序,计算颜色特征、水面波纹特征,构建水面渲染模型,实现基于矢量瓦片的真实感水面渲染;地图窗口空间范围变化,重新请求瓦片,着色器渲染程序更新水面渲染结果,地图窗口显示为新的渲染结果。本发明实现了动态水面渲染效果的真实性和多样性,不再受限于单一的预制法线纹理,从而使不同地理位置的水体呈现出各自独特的水波纹效果,实现了城市级大面积水域场景的真实感水面实时渲染。
Description
技术领域
本发明涉及数字地图渲染和水体模拟技术领域,尤其涉及一种融合多源瓦片地图服务的真实感水面渲染方法及系统。
背景技术
随着三维可视化技术的发展,数字孪生城市建设对三维城市场景的真实感提出了更高的要求。水面是城市三维场景中体现地理环境真实感的关键要素之一。计算机图形学领域现有的水面渲染方法通常采用网格模型,一次性加载所有水面模型到内存,对于大型城市的水域场景渲染,这类方法带来的算力和内存开销是普通计算机难以承受的。因此使用瓦片地图技术来渐进加载、渲染城市级三维场景成为主流技术之一。瓦片地图将一个完整水体在不同观察尺度下,按一定空间区域分割方式,切割成若干部分分别存储在不同瓦片中。该方法解决了大型城市水域场景的渐进加载和实时渲染性能瓶颈问题,但难以使用现有的预制纹理方法来实现真实水面波纹渲染效果,各瓦片共用同一水波法线纹理导致水面效果相似,缺乏多样性和真实性。
目前,城市场景的水面大多基于网格模型进行效果渲染,从场景构建初期就将范围内所有水面模型加载到内存中,对于水域面积较大的城市,此方法性能损耗较大。而在效果方面,计算机图形学领域通常使用法线纹理使物体呈现凹凸变化的褶皱效果,因此在水面渲染时常采用更新法线纹理的方法来模拟动态水波纹效果。现有技术方法中,会通过载入预制的法线纹理,并结合自定义水面颜色来完成水面效果模拟,预制法线纹理决定了最终呈现的水面波动效果,一般整个场景使用同一张法线纹理,导致同一场景内的所有水面效果都雷同。中国专利CN 116137051 A公开了一种基于基础法线纹理生成多个衍生法线纹理进行水面渲染的方法,无需输入不同法线纹理也能避免水面效果相似的问题,但是此方法根据预先输入的法线纹理生成随机水面动态效果,且没有关注大范围水面模型构建相关的性能优化,仍然无法实现城市场景中大范围水面的真实感渲染。
因此,亟需一种全面的、综合多源数据的水面渲染方法。
发明内容
为此,本发明实施例提供了一种融合多源瓦片地图服务的真实感水面渲染方法及系统,用于解决现有技术中水面渲染方法受限于单一的预制法线纹理、水面效果缺乏多样性和真实性等问题。
为了解决上述问题,本发明实施例提供了一种融合多源瓦片地图服务的真实感水面渲染方法,所述方法包括:
S1:获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
S2: 基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
S3:获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
S31:将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
S32:计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
S33:在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
S34: 基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
S35:为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行步骤S33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
S4:对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行步骤S2,着色器渲染程序更新水面渲染结果,地图窗口刷新显示新的渲染结果。
优选地,在步骤S1中,获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务的方法为:
获取矢量水面数据和遥感影像数据,以相同空间范围的矢量水面数据和遥感影像数据为数据源,将矢量水面数据发布为矢量瓦片地图服务,将栅格影像数据发布为栅格瓦片地图服务,其中矢量瓦片与栅格瓦片采用相同切片方案进行切图,保证相同瓦片行列号所包含的矢量地理范围与栅格地理范围一致。
优选地,在步骤S32中,计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系的方法为:
在栅格瓦片图像空间,以图像左下角为原点,水平向右为U轴,垂直向上为V轴,坐标唯一定位图像上任意像素,通过计算当前片元所对应的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系,其中坐标/>计算过程如下:
式中,/>表示当前片元的几何顶点坐标;/>表示当前片元在矢量瓦片中的坐标值,从顶点着色器传入;/>表示瓦片像素大小,由瓦片地图服务决定,需要保证矢量瓦片的/>与栅格瓦片/>一致。
优选地,在步骤S33中,在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线的方法包括:
S331:基于纹理映射坐标获取栅格影像瓦片中的颜色值,其中获取的栅格影像颜色值,即为影像图像中水面的真实颜色值,在真实世界中,水面流动导致高度变化,形成波纹效果,在影像图像中体现为颜色的明暗程度不同;
S332:基于影像图像中水面的真实颜色值,通过图像分析处理算法,计算水面高度值,并基于所述水面高度值计算水面法线。
优选地,在步骤S331中,基于纹理映射坐标获取栅格影像瓦片中的颜色值的方法为:
通过当前片元的纹理映射坐标,对栅格影像瓦片进行纹理采样,即获取栅格瓦片图像中像素坐标为/>的像素值,像素值包括红R、绿G、蓝B三个通道,以数组存储,表示为/>),纹理采样通过GLSL内建函数/>实现,具体如下:
式中,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,/>为当前片元的纹理映射坐标,表示基于栅格影像瓦片图像和片元纹理映射坐标取对应像素颜色值的函数。
优选地,在步骤S332中,基于影像图像中水面的真实颜色值,通过图像分析处理算法,计算水面高度值,并基于所述水面高度值计算水面法线的方法,具体包括:
S3321:基于影像中水面颜色计算水面高度:提取的影像水面颜色值为,包含红R、绿G、蓝B三个通道,将RGB颜色值经过加权平均计算灰度值,将灰度值作为高度值,具体计算方法为:
式中,/>表示基于颜色值计算灰度值公式,/>、/>、/>分别表示所述水面真实颜色值的R、G、B三个通道的数值;
S3322:基于水面高度值计算水面法线。
优选地,在步骤S3322中,基于水面高度值计算水面法线的方法,具体包括:
采用梯度算子计算梯度值:
式中,/>、/>分别表示梯度算子的横向、纵向卷积核,卷积核尺寸为N*N,用N*N矩阵表示,/>表示卷积核/>第/>行第/>列的数值,/>表示卷积核/>第/>行第/>列的数值,/>表示纹理映射坐标的采样步长,/>、/>分别表示横向、纵向的梯度值,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,/>表示灰度值计算公式,/>表示像素颜色值的取值函数;
基于梯度值计算法线:
在多元微积分理论中,梯度垂直于高维曲面,因此基于梯度值构建法线向量,具体过程如下:
式中,/>表示当前片元的法线向量,/>表示基于梯度值构建的梯度向量;
由于法线向量的数值范围为[-1,1],为了将法线值存储为颜色值,将法线向量转换到[0,1]范围,具体过程如下:
式中,/>表示当前片元法线向量的采用颜色值表达的向量。
优选地,在步骤S34中, 基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值的方法具体包括:
S341:计算水面反射系数:采用漫反射模型计算水面反射系数,基于漫反射模型模拟水面的基础颜色以及水波纹效果,漫反射系数与光线和表面法线夹角相关,光线与法线夹角越小反射越强,夹角越大反射越弱,具体计算方式如下:
式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线方向和当前片元法线方向的夹角余弦值,/>为漫反射系数;
S342:计算菲涅尔反射系数:为了使得水体渲染更加接近真实环境,基于水面反射系数和近似菲涅尔公式计算菲涅尔反射系数,具体计算公式如下:
式中,/>为视线方向,/>为视线方向与水平面法线方向的夹角余弦值,/>为菲涅尔反射系数;
S343:计算反射天空颜色值:基于光线方向和当前法线方向,计算光线在当前片元的反射方向,具体计算方式如下:
式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线在当前片元的反射方向向量;
采用立方体贴图方式模拟天空,基于当前片元的反射方向采样天空颜色值,具体计算方式如下:
式中,cubeMapTex为天空盒立方体贴图,可以在程序中预制加载并传入着色器中,/>为GLSL内置函数,用于对立方体贴图进行采样,skyColor为最终计算的当前片元反射天空颜色值;
S344:计算水面颜色值:基于当前片元所对应的栅格影像颜色值、当前片元反射天空颜色值/>、当前片元菲涅尔反射系数/>进行颜色混合,计算得到最终渲染的水面颜色值,具体计算方式如下:
式中,/>为最终渲染的水面颜色值。
优选地,在步骤S35中,为当前片元纹理映射坐标添加周期重复性扰动,重复步骤S33、S34,实现动态水面效果的方法具体包括:
S351:对步骤S32计算得的当前瓦片纹理映射坐标,添加周期重复性扰动:
式中,/>为当前瓦片纹理映射坐标,/>为当前系统时间,以秒为单位的时间戳,/>、/>均为扰动系数,表示叠加扰动效果后的波纹变化速率,/>和/>为叠加了周期重复性扰动的瓦片纹理映射坐标;
S352:采用步骤S33方法,采用扰动后的瓦片纹理映射坐标和/>计算水面法向量/>、/>,将/>、/>进行加权平均后作为扰动后的法向量:
式中,/>表示当前片元的平均法线向量,/>表示当前片元的扰动后的法线向量;
S353:基于叠加扰动的法向量采用步骤S34方法重新计算水面颜色值,对当前片元进行着色;
S354:随着时间变化,前端地图渲染引擎通过每帧更新时间参数,重新计算水面法线向量和水面颜色值,更新水面矢量瓦片的渲染结果,实现水面矢量瓦片渲染的周期性流动效果。
本发明实施例还提供了一种融合多源瓦片地图服务的真实感水面渲染系统,所述系统用于实现上述所述的融合多源瓦片地图服务的真实感水面渲染方法,具体包括:
地图服务发布模块,用于获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
地图瓦片请求模块,用于基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
渲染模块,用于获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
输入单元,用于将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
纹理映射坐标计算单元,用于计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
水面法线计算单元,用于在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
颜色计算单元,用于基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
周期性扰动叠加单元,用于为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行所述水面法线计算单元,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
更新模块,用于对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行所述地图瓦片请求模块,刷新地图窗口,显示新的渲染结果。
从以上技术方案可以看出,本发明申请具有以下优点:
(1)本发明提出一种自定义水面矢量瓦片的着色器渲染程序,通过将水体几何信息、颜色特征和水面波纹特征纳入瓦片中,通过融合矢量水面数据和遥感影像数据的瓦片地图服务,从而为水面渲染提供更多的信息来源,实现更真实感的水面渲染。
(2)本发明提出一种基于遥感影像计算水面法线并在片元着色器中叠加周期性扰动的算法,实现了实时水面渲染的动态波纹效果,模拟了真实环境中水波流动的特征,从而增强了实时水面渲染的真实感和动态性。基于遥感影像计算水面法线,实现了水面波纹的多样性,不再受限于单一的预制法线纹理,从而使不同地理位置的水体呈现出各自独特的水波纹效果。
(3)本发明实现了城市级大面积水域场景的真实感水面实时渲染。本发明方法是一种全面的、综合多源数据的水面渲染方法,旨在实现更真实、更动态、更高性能的城市三维场景水面渲染,为数字孪生城市建设和三维地图可视化技术提供了高度实用性的水体渲染技术方案。
附图说明
为了更清楚地说明本发明实施案例或现有技术中的技术方案,下边将对实施例中所需要使用的附图做简单说明,通过参考附图会更清楚的理解本发明的特征和优点,附图是示意性的而不应该理解为对本发明进行任何限制,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。其中:
图1为实施例中提供的一种融合多源瓦片地图服务的真实感水面渲染方法的流程图;
图2为实施例中一种水面矢量瓦片的着色器渲染程序示意图;
图3为实施例中提供的一种融合多源瓦片地图服务的真实感水面渲染系统的框图。
说明书附图标记:10、地图服务发布模块;20、地图瓦片请求模块;30、渲染模块;31、输入单元;32、纹理映射坐标计算单元;33、水面法线计算单元;34、颜色计算单元;35、周期性扰动叠加单元;40、更新模块。
具体实施方式
为使本发明实施例的目的、技术方案与优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
为了解决现有技术中水面渲染方法受限于单一的预制法线纹理、水面效果缺乏多样性和真实性等问题。如图1所示,本发明实施例提出一种融合多源瓦片地图服务的真实感水面渲染方法,该方法包括:
S1:获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
S2: 基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
S3:获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
S31:将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
S32:计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
S33:在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
S34: 基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
S35:为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行步骤S33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
S4:对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行步骤S2,着色器渲染程序更新水面渲染结果,地图窗口刷新显示新的渲染结果。
从上述技术方案可知,本发明提供了一种融合多源瓦片地图服务的真实感水面渲染方法,通过将水体几何信息、颜色特征和水面波纹特征纳入瓦片中,通过融合矢量水面数据和遥感影像数据的瓦片地图服务,从而为水面渲染提供了更多的信息来源,实现更真实感的水面渲染。通过从遥感影像中计算水面法线并叠加周期重复性扰动,实现了水面波纹的多样性,不再受限于单一的预制法线纹理,从而使不同地理位置的水体呈现出各自独特的水波纹效果。本发明实现了城市级大面积水域场景的真实感水面实时渲染,本发明方法是一种全面的、综合多源数据的水面渲染方法,旨在实现更真实、更动态、更高性能的城市三维场景水面渲染,为数字孪生城市建设和三维地图可视化技术提供了高度实用性的水体渲染技术方案。
在实施例中,在步骤S1中,获取矢量水面数据和遥感影像数据,以相同空间范围的矢量水面数据和遥感影像数据为数据源,将矢量水面数据发布为矢量瓦片地图服务,将栅格影像数据发布为栅格瓦片地图服务,其中矢量瓦片与栅格瓦片采用相同切片方案进行切图,保证相同瓦片行列号所包含的矢量地理范围与栅格地理范围一致。其中地图服务发布工具可采用GeoServer开源地图服务器进行发布,但不局限于该工具,可以实现地图服务发布功能即可。
在实施例中,在步骤S2中,前端地图渲染引擎可采用Mapbox.js,但不限于该引擎,能够提供本发明所需要的渲染接口即可。前端地图渲染引擎根据当前地图层级和窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片。地图层级以tileZ表示,tileZ随着地图缩放而变化,瓦片行号以tileX表示,瓦片列号以tileY表示,通过tileID=[tileZ,tileX,tileY]可唯一定位瓦片,前端通过http://baseURL/tileZ/tileX/tileY网络路径向地图服务器请求瓦片,baseURL为瓦片服务根路径。
在实施例中,在步骤S3中,获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,如图2所示,基于相同地理空间范围的栅格影像瓦片计算颜色特征、水面波纹特征,构建水面着色渲染模型,实现基于矢量瓦片的真实感水面渲染,具体包括:
S31:将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中。
片元着色器是三维渲染引擎针对计算机屏幕所有像素定义的计算程序,用于计算每个像素最终的输出颜色,片元着色器中所定义的计算逻辑适用于屏幕任意像素,三维渲染引擎会对屏幕所有像素逐像素执行片元着色器,输出计算颜色值。
S32:计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系。
为了能够将水面矢量瓦片中任意片元的空间位置与栅格影像瓦片中的像素信息建立映射关系,需要计算水面矢量瓦片当前片元的纹理映射坐标。
在栅格瓦片图像空间,以图像左下角为原点,水平向右为U轴,垂直向上为V轴,坐标可以唯一定位图像上任意像素,通过计算当前片元所对应的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系,其中坐标/>计算过程如下:
式中,/>表示当前片元的几何顶点坐标;/>表示当前片元在矢量瓦片中的坐标值,从顶点着色器传入;/>表示瓦片像素大小,由瓦片地图服务决定,需要保证矢量瓦片的/>与栅格瓦片/>一致。
S33:在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于颜色信息计算水面法线,具体包括:
S331:基于纹理映射坐标获取栅格影像瓦片中的颜色值。
通过当前片元的纹理映射坐标,对栅格影像瓦片进行纹理采样,即获取栅格瓦片图像中像素坐标为/>的像素值,像素值包括红R、绿G、蓝B三个通道,以数组存储,表示为/>),纹理采样通过GLSL内建函数/>实现,具体如下:
式中,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,/>为当前片元的纹理映射坐标,表示基于栅格影像瓦片图像和片元纹理映射坐标取对应像素颜色值的函数。
其中获取的栅格影像颜色值,即为影像图像中水面的真实颜色值,在真实世界中,水面流动导致高度变化,形成波纹效果,在影像图像中体现为颜色的明暗程度不同。
S332: 基于影像图像中水面的真实颜色值,通过图像分析处理算法,计算水面高度值,并基于所述水面高度值计算水面法线:
S3321:基于影像图像中水面的真实颜色值计算水面高度值:提取的影像水面颜色值为,包含红(R)、绿(G)、蓝(B)三个通道,将RGB颜色值经过加权平均计算灰度值,将灰度值作为高度值,具体计算方法为:
式中,/>表示基于颜色值计算灰度值公式,/>、/>、/>分别表示所述水面真实颜色值的R、G、B三个通道的数值,以上公式为图像处理领域较为常用的转换公式,基于人眼感知提取,可根据实际图像特征调整,本实施例仅用于流程说明,不对公式做限制。
S3322:基于水面高度值计算水面法线。
法线是指垂直于某个平面的三维向量,当整个水面为一个平面时,平面任意位置的法线相同,当水面各个位置具有高度差,则水面实际上为曲面,曲面各点法线不同,为了实现具有真实波纹效果的水面渲染,需要计算水面各点实际的法线。
基于高度值计算法线,可以基于计算机视觉领域的梯度算子实现,图像梯度算子能够实现对图像的差分计算操作,本实施例中采用sobel梯度算子计算提取,但不限于此算法,具体计算过程为:
(1)计算梯度值:
式中,/>,/>分别表示sobel梯度算子的横向、纵向卷积核,/>表示纹理映射坐标的采样步长,/>、/>分别表示横向、纵向的梯度值,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,表示灰度值计算公式,/>表示像素颜色值的取值函数。
(2)基于梯度值计算法线:
在多元微积分理论中,梯度垂直于高维曲面,因此基于梯度值构建法线向量,具体过程如下:
式中,/>表示当前片元的法线向量,/>表示基于梯度值构建的梯度向量。
由于法线向量的数值范围为[-1,1],为了将法线值存储为颜色值,将法线向量转换到[0,1]范围,具体过程如下:
式中,/>表示当前片元法线向量的采用颜色值表达的向量。
S34: 基于颜色信息、水面法线、三维光照、环境信息,构建水面着色模型,对当前片元进行颜色计算,具体包括:
S341:计算水面反射系数:本实施例采用漫反射模型计算水面反射系数,漫反射现象为光线投射到物体表面后向各个方向均匀反射,反射强度与视线无关,即从各个视角观察物体所呈现的颜色一致。基于漫反射模型模拟水面的基础颜色以及水波纹效果,漫反射系数与光线和表面法线夹角相关,光线与法线夹角越小反射越强,夹角越大反射越弱,具体计算方式如下:
式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线方向和当前片元法线方向的夹角余弦值,/>为漫反射系数。
S342:计算菲涅尔反射系数:在实际自然环境中,光线的反射存在菲涅尔现象,即观察物体时,视线与物体表面接近垂直,夹角越大,反射越弱,视线与物体表面接近水平,夹角越小,反射越强。为了使得水体渲染更加接近真实环境,基于水面反射系数和近似菲涅尔公式计算菲涅尔反射系数,具体计算公式如下:
式中,/>为视线方向,/>为视线方向与水平面法线方向的夹角余弦值,/>为菲涅尔反射系数。
S343:计算反射天空颜色值:基于光线方向和当前法线方向,计算光线在当前片元的反射方向,具体计算方式如下:
*/>式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线在当前片元的反射方向向量。
采用立方体贴图方式模拟天空,基于当前片元的反射方向采样天空颜色值,具体计算方式如下:
式中,cubeMapTex为天空盒立方体贴图,可以在程序中预制加载并传入着色器中,/>为GLSL内置函数,用于对立方体贴图进行采样,skyColor为最终计算的当前片元反射天空颜色值。
S344:计算水面颜色值:基于当前片元所对应的栅格影像颜色值、当前片元反射天空颜色值/>、当前片元菲涅尔反射系数/>进行颜色混合,计算得到最终渲染的水面颜色值,具体计算方式如下:
式中,/>为最终渲染的水面颜色值。
S35:为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行步骤S33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染。
在真实自然环境中,水面会随时间流动形成动态变化的波纹效果,但栅格影像瓦片是单个时刻的静态图像,基于影像信息渲染的水面仅模拟了某个时刻的水面静态特征。由于水波纹往往具有周期重复性特征,因此可以自定义周期函数,对水面波纹添加扰动,以模拟水波流动效果。
具体地,S351:对步骤S32计算得的当前瓦片纹理映射坐标,添加周期重复性扰动:
式中,为当前瓦片纹理映射坐标,/>为当前系统时间,以秒为单位的时间戳,/>、均为扰动系数,表示叠加扰动效果后的波纹变化速率,/>和/>为叠加了周期重复性扰动的瓦片纹理映射坐标;
S352:采用步骤S33方法,采用扰动后的瓦片纹理映射坐标和/>计算水面法向量/>、/>,将/>、/>进行加权平均后作为扰动后的法向量:
式中,/>表示当前片元的平均法线向量,/>表示当前片元的扰动后的法线向量;
S353:基于叠加扰动的法向量采用步骤S34方法重新计算水面颜色值,对当前片元进行着色;
S354:随着时间变化,前端地图渲染引擎通过每帧更新时间参数,重新计算水面法线向量和水面颜色值,更新水面矢量瓦片的渲染结果,实现水面矢量瓦片渲染的周期性流动效果。
在实施例中,在步骤S4中,对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行步骤S2,着色器渲染程序更新水面渲染结果,地图窗口刷新显示新的渲染结果。
实施例二
如图3所示,本发明提供一种融合多源瓦片地图服务的真实感水面渲染系统,所述系统用于实现上述所述的融合多源瓦片地图服务的真实感水面渲染方法,具体包括:
地图服务发布模块10,用于获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
地图瓦片请求模块20,用于基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
渲染模块30,用于获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
输入单元31,用于将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
纹理映射坐标计算单元32,用于计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
水面法线计算单元33,用于在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
颜色计算单元34,用于基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
周期性扰动叠加单元35,用于为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行所述水面法线计算单元33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
更新模块40,用于对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行所述地图瓦片请求模块20,刷新地图窗口,显示新的渲染结果。
本实施例的一种融合多源瓦片地图服务的真实感水面渲染系统,用于实现前述的融合多源瓦片地图服务的真实感水面渲染方法,因此融合多源瓦片地图服务的真实感水面渲染系统中的具体实施方式可见前文融合多源瓦片地图服务的真实感水面渲染方法的实施例部分,例如,地图服务发布模块10,地图瓦片请求模块20,渲染模块30,更新模块40,分别用于实现上述融合多源瓦片地图服务的真实感水面渲染方法中步骤S1,S2,S3,S4,所以,其具体实施方式可以参照相应的各个部分实施例的描述,为了避免冗余,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,包括:
S1:获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
S2: 基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
S3:获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
S31:将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
S32:计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
S33:在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
S34: 基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
S35:为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行步骤S33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
S4:对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行步骤S2,着色器渲染程序更新水面渲染结果,地图窗口刷新显示新的渲染结果。
2.根据权利要求1所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S1中,获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务的方法为:
获取矢量水面数据和遥感影像数据,以相同空间范围的矢量水面数据和遥感影像数据为数据源,将矢量水面数据发布为矢量瓦片地图服务,将栅格影像数据发布为栅格瓦片地图服务,其中矢量瓦片与栅格瓦片采用相同切片方案进行切图,保证相同瓦片行列号所包含的矢量地理范围与栅格地理范围一致。
3.根据权利要求1所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S32中,计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系的方法为:
在栅格瓦片图像空间,以图像左下角为原点,水平向右为U轴,垂直向上为V轴,坐标唯一定位图像上任意像素,通过计算当前片元所对应的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系,其中坐标/>计算过程如下:
式中,/>表示当前片元的几何顶点坐标;表示当前片元在矢量瓦片中的坐标值,从顶点着色器传入;/>表示瓦片像素大小,由瓦片地图服务决定,需要保证矢量瓦片的/>与栅格瓦片/>一致。
4.根据权利要求3所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S33中,在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线的方法包括:
S331:基于纹理映射坐标获取栅格影像瓦片中的颜色值,其中获取的栅格影像颜色值,即为影像图像中水面的真实颜色值,在真实世界中,水面流动导致高度变化,形成波纹效果,在影像图像中体现为颜色的明暗程度不同;
S332:基于影像图像中水面的真实颜色值,通过图像分析处理算法,计算水面高度值,并基于所述水面高度值计算水面法线。
5.根据权利要求4所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S331中,基于纹理映射坐标获取栅格影像瓦片中的颜色值的方法为:
通过当前片元的纹理映射坐标,对栅格影像瓦片进行纹理采样,即获取栅格瓦片图像中像素坐标为/>的像素值,像素值包括红R、绿G、蓝B三个通道,以数组存储,表示为/>),纹理采样通过GLSL内建函数/>实现,具体如下:
式中,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,/>为当前片元的纹理映射坐标,表示基于栅格影像瓦片图像和片元纹理映射坐标取对应像素颜色值的函数。
6.根据权利要求4所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S332中,基于影像图像中水面的真实颜色值,通过图像分析处理算法,计算水面高度值,并基于所述水面高度值计算水面法线的方法,具体包括:
S3321:基于影像图像中水面的真实颜色值计算水面高度值:提取的影像图像中水面的真实颜色值为,包含红R、绿G、蓝B三个通道,将RGB颜色值经过加权平均计算灰度值,将灰度值作为高度值,具体计算方法为:
式中,/>表示基于颜色值计算灰度值公式,/>、/>、/>分别表示所述水面真实颜色值的R、G、B三个通道的数值;
S3322:基于水面高度值计算水面法线。
7.根据权利要求6所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S3322中,基于水面高度值计算水面法线的方法,具体包括:
采用梯度算子计算梯度值:
式中,/>、/>分别表示梯度算子的横向、纵向卷积核,卷积核尺寸为N*N,用N*N矩阵表示,/>表示卷积核/>第/>行第/>列的数值,/>表示卷积核/>第/>行第/>列的数值,/>表示纹理映射坐标的采样步长,/>、/>分别表示横向、纵向的梯度值,/>表示传入当前矢量瓦片着色器中的栅格影像瓦片图像,/>表示灰度值计算公式,/>表示像素颜色值的取值函数;
基于梯度值计算法线:
在多元微积分理论中,梯度垂直于高维曲面,因此基于梯度值构建法线向量,具体过程如下:
式中,/>表示当前片元的法线向量,/>表示基于梯度值构建的梯度向量;
由于法线向量的数值范围为[-1,1],为了将法线值存储为颜色值,将法线向量转换到[0,1]范围,具体过程如下:
式中,/>表示当前片元法线向量的采用颜色值表达的向量。
8.根据权利要求4所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S34中, 基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值的方法,具体包括:
S341:计算水面反射系数:采用漫反射模型计算水面反射系数,基于漫反射模型模拟水面的基础颜色以及水波纹效果,漫反射系数与光线和表面法线夹角相关,光线与法线夹角越小反射越强,夹角越大反射越弱,具体计算方式如下:
式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线方向和当前片元法线方向的夹角余弦值,/>为漫反射系数;
S342:计算菲涅尔反射系数:为了使得水体渲染更加接近真实环境,基于水面反射系数和近似菲涅尔公式计算菲涅尔反射系数,具体计算公式如下:
式中,/>为视线方向,/>为视线方向与水平面法线方向的夹角余弦值,/>为菲涅尔反射系数;
S343:计算反射天空颜色值:基于光线方向和当前法线方向,计算光线在当前片元的反射方向,具体计算方式如下:
式中,/>为光线的方向向量,/>为当前片元法线向量,/>为光线在当前片元的反射方向向量;
采用立方体贴图方式模拟天空,基于当前片元的反射方向采样天空颜色值,具体计算方式如下:
式中,cubeMapTex为天空盒立方体贴图,可以在程序中预制加载并传入着色器中,/>为GLSL内置函数,用于对立方体贴图进行采样,skyColor为最终计算的当前片元反射天空颜色值;
S344:计算水面颜色值:基于当前片元所对应的栅格影像颜色值、当前片元反射天空颜色值/>、当前片元菲涅尔反射系数/>进行颜色混合,计算得到最终渲染的水面颜色值,具体计算方式如下:
式中,/>为最终渲染的水面颜色值。
9.根据权利要求8所述的融合多源瓦片地图服务的真实感水面渲染方法,其特征在于,在步骤S35中,为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行步骤S33,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染的方法,具体包括:
S351:对步骤S32计算得的当前瓦片纹理映射坐标,添加周期重复性扰动:
式中,为当前瓦片纹理映射坐标,/>为当前系统时间,以秒为单位的时间戳,/>、均为扰动系数,表示叠加扰动效果后的波纹变化速率,/>和/>为叠加了周期重复性扰动的瓦片纹理映射坐标;
S352:采用步骤S33方法,采用扰动后的瓦片纹理映射坐标和/>计算水面法向量/>、,将/>、/>进行加权平均后作为扰动后的法向量:
式中,/>表示当前片元的平均法线向量,/>表示当前片元的扰动后的法线向量;
S353:基于叠加扰动的法向量采用步骤S34方法重新计算水面颜色值,对当前片元进行着色;
S354:随着时间变化,前端地图渲染引擎通过每帧更新时间参数,重新计算水面法线向量和水面颜色值,更新水面矢量瓦片的渲染结果,实现水面矢量瓦片渲染的周期性流动效果。
10.一种融合多源瓦片地图服务的真实感水面渲染系统,其特征在于,所述系统用于实现权利要求1至9任意一项所述的融合多源瓦片地图服务的真实感水面渲染方法,具体包括:
地图服务发布模块,用于获取矢量水面数据和遥感影像数据,并将所述矢量水面数据和所述遥感影像数据分别发布为矢量瓦片地图服务和栅格瓦片地图服务;
地图瓦片请求模块,用于基于所述矢量瓦片地图服务和所述栅格瓦片地图服务,根据当前地图层级和地图窗口空间范围计算所覆盖的所有地图瓦片,获取地图瓦片行列号集合,遍历行列号集合请求相同行列号的水面矢量瓦片和栅格影像瓦片;
渲染模块,用于获取相同行列号的单张水面矢量瓦片与栅格影像瓦片,自定义水面矢量瓦片的着色器渲染程序,实现基于矢量瓦片的真实感水面渲染,具体包括:
输入单元,用于将栅格影像瓦片以纹理图方式传入水面矢量瓦片片元着色器中;
纹理映射坐标计算单元,用于计算水面矢量瓦片当前片元的纹理映射坐标,确定水面矢量瓦片与栅格影像瓦片的位置映射关系;
水面法线计算单元,用于在水面矢量瓦片片元着色器中,计算当前片元在栅格影像瓦片中的颜色信息,基于所述颜色信息计算水面法线;
颜色计算单元,用于基于所述颜色信息、所述水面法线、三维光照、环境信息,构建水面着色模型,计算当前片元的水面颜色值;
周期性扰动叠加单元,用于为所述当前片元的纹理映射坐标添加周期重复性扰动,返回执行所述水面法线计算单元,重新计算所述当前片元的水面颜色值,将所述当前片元的水面颜色值作为最终结果对水面矢量瓦片进行逐片元的渲染,以实现基于矢量瓦片的真实感水面渲染;
更新模块,用于对前端地图进行平移、缩放操作,重新计算当前地图窗口空间范围所覆盖的瓦片集合,返回执行所述地图瓦片请求模块,着色器渲染程序更新水面渲染结果,地图窗口刷新,显示新的渲染结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311558372.1A CN117274466B (zh) | 2023-11-22 | 2023-11-22 | 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311558372.1A CN117274466B (zh) | 2023-11-22 | 2023-11-22 | 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117274466A true CN117274466A (zh) | 2023-12-22 |
CN117274466B CN117274466B (zh) | 2024-02-09 |
Family
ID=89204915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311558372.1A Active CN117274466B (zh) | 2023-11-22 | 2023-11-22 | 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117274466B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009211A (zh) * | 2017-11-10 | 2018-05-08 | 中国电子科技集团公司第三十二研究所 | 基于规则库的多源地图矢量瓦片渲染系统 |
CN114020943A (zh) * | 2022-01-05 | 2022-02-08 | 武汉幻城经纬科技有限公司 | 流域水面混合绘制方法及系统、电子设备、存储介质 |
-
2023
- 2023-11-22 CN CN202311558372.1A patent/CN117274466B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009211A (zh) * | 2017-11-10 | 2018-05-08 | 中国电子科技集团公司第三十二研究所 | 基于规则库的多源地图矢量瓦片渲染系统 |
CN114020943A (zh) * | 2022-01-05 | 2022-02-08 | 武汉幻城经纬科技有限公司 | 流域水面混合绘制方法及系统、电子设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
杨在兴: "基于多分辨率LOD的流域三维可视化研究", 中国优秀硕士学位论文全文数据库, no. 2, pages 1 - 53 * |
相增辉: "洞庭湖水域可视化的研究与实现", 中国优秀硕士学位论文全文数据库, no. 8, pages 1 - 63 * |
Also Published As
Publication number | Publication date |
---|---|
CN117274466B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2003294327B2 (en) | Visible surface determination system and methodology in computer graphics using interval analysis | |
US10924727B2 (en) | High-performance light field display simulator | |
US10614619B2 (en) | Graphics processing systems | |
CN111508052A (zh) | 三维网格体的渲染方法和装置 | |
US20140267273A1 (en) | System and method for overlaying two-dimensional map elements over terrain geometry | |
CN113593051B (zh) | 一种实景可视化方法及大坝可视化方法及计算机设备 | |
KR101359011B1 (ko) | 지구 환경 3차원 가시화 시스템 | |
CN114820990B (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
CN113436308A (zh) | 一种三维环境空气质量动态渲染方法 | |
Kersten et al. | Automatic texture mapping of architectural and archaeological 3d models | |
CN116485984B (zh) | 全景影像车辆模型全局光照模拟方法、装置、设备及介质 | |
RU2295772C1 (ru) | Способ генерирования текстуры в реальном масштабе времени и устройство для его реализации | |
Jenny et al. | Real-time raster projection for web maps | |
CN117274466B (zh) | 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 | |
CN111010559B (zh) | 裸眼三维光场内容的生成方法及装置 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
Hanusch | A new texture mapping algorithm for photorealistic reconstruction of 3D objects | |
CN114140566A (zh) | 一种建筑图纸设计效果实时渲染方法 | |
Mora et al. | Visualization and computer graphics on isotropically emissive volumetric displays | |
US6894696B2 (en) | Method and apparatus for providing refractive transparency in selected areas of video displays | |
Stathopoulou et al. | High and low resolution textured models of complex architectural surfaces | |
Corns et al. | Developing Enhanced And Enriched 3D Models Of Cultural Heritage Assets As Part Of The Eu Co-Funded 5Dculture Project | |
Reis et al. | High-quality rendering of quartic spline surfaces on the GPU | |
Pignatel et al. | Real-time Visualization of the Forum of Pompeii | |
Zhang et al. | Construction of Urban Landscape Visualization Design System Based on Virtual Reality |
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 |