一种非固定浓度的全球地形雾效渲染方法与流程

文档序号:12805034阅读:268来源:国知局
一种非固定浓度的全球地形雾效渲染方法与流程

本发明涉及计算机图形技术领域,特别是涉及一种非固定浓度的全球地形雾效渲染方法。



背景技术:

在3dgis领域和飞行仿真系统中需要对全球地形影像进行渲染,已经有一些大气散射模型来模拟大气层的散射效果,但对全球地形雾效的建模还比较少,基本以使得绘制物体距离观察者越远越看不清晰为目的来构建模型。如下数学模型所示,a=a·e-d·distance

其中,a为混合参数,a为调整系数,d为雾浓度,distance为相机到目标点的距离。

这种类似的雾效建模不能实际地表达大气带来的雾效效果,但如果不进行雾效模拟,又会使得三维场景缺乏立体感和丰富度。



技术实现要素:

本发明针对现有技术中缺乏立体感和丰富度的缺点,提供了一种非固定浓度的全球地形雾效渲染方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决。

一种非固定浓度的全球地形雾效渲染方法,包括如下步骤:

(1)构建全球地形几何瓦片:以三维模型中地球球心为坐标系原点构建全球地形的几何瓦片;

(2)建立雾效浓度模型:根据大气密度随着海拔高度的增加而降低,建立雾效浓度模型,其构建公式如下:

d=a·e-b·a

其中,d为雾浓度,a为调整系数,b为散射系数,a为目标点的海拔高度;

(3)计算雾总浓度d:首先构建大气外球,大气外球半径大于地球的长半轴,接着需要计算采样起始点,如视点在大气外球之外,则采样起始点为向量epn与大气外球的交点p0;如视点在大气外球之内,则采样起始点即为视点,则是p0=e;得到起始点后,那么epn与大气外球的交点计算方法如下:

先算出p0到e点的距离n,

c=(length(eo))2-(length(p0o))2

m=max{0,b2-4c},

其中,o为原点,p0o为大气外球的交点到原点的向量,eo为视点到原点的向量;

根据上述计算得出交点p0,

然后计算p0到pn的总浓度,计算方法如下:

设从p0到pn进行n次采样,采样点集合为

p={p0,p1,p2,...,pn-1},

p0到pn的总浓度计算公式为,

(4)计算雾效颜色:设雾颜色cfog=(rf,gf,bf),pn的纹理颜色ctexture=(rt,gt,bt);将纹理颜色和雾颜色进行混合,形成最终的雾效颜色值:c=ctexture·(1-d)+cfog·d;

(5)将步骤(3)得到的雾总浓度数值和步骤(4)得到的雾效颜色数值附加在全球地形瓦片上进行渲染。

本发明由于采用了以上技术方案,具有显著的技术效果:

本发明依据大气密度的非均匀分布,构建出雾浓度数学模型,通过雾浓度数据模型来对不同地形情况来计算不同的雾效浓度,建立起以地形为基准的较为准确的雾效浓度信息;同时,对雾效颜色进行计算,与不同区域和地形的纹理颜色进行混合,更加贴近实际的颜色和效果,通过两个参数的设置能够很好地模拟全球地形雾效效果。

附图说明

图1是本发明一种非固定浓度的全球地形雾效渲染方法中的全球雾效示意图;

图2是本发明一种非固定浓度的全球地形雾效渲染方法中规则网格的示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

如图1至图2所示,一种非固定浓度的全球地形雾效渲染方法,包括如下步骤:

(1)构建全球地形几何瓦片:以三维模型中地球球心为坐标系原点构建全球地形的几何瓦片;

(2)建立雾效浓度模型:根据大气密度随着海拔高度的增加而降低,建立雾效浓度模型,其构建公式如下:

d=a·e-b·a

其中,d为雾浓度,a为调整系数,b为散射系数,a为目标点的海拔高度;

(3)计算雾总浓度d:首先构建大气外球,大气外球半径大于地球的长半轴,接着需要计算采样起始点,如视点在大气外球之外,则采样起始点为向量epn与大气外球的交点p0;如视点在大气外球之内,则采样起始点即为视点,则是p0=e;得到起始点后,那么epn与大气外球的交点计算方法如下:

先算出p0到e点的距离n,

c=(length(eo))2-(length(p0o))2

m=max{0,b2-4c},

其中,o为原点,p0o为大气外球的交点到原点的向量,eo为视点到原点的向量;

根据上述计算得出交点p0,

然后计算p0到pn的总浓度,计算方法如下:

设从p0到pn进行n次采样,采样点集合为

p={p0,p1,p2,...,pn-1},

p0到pn的总浓度计算公式为,

(4)计算雾效颜色:设雾颜色cfog=(rf,gf,bf),pn的纹理颜色ctexture=(rt,gt,bt);将纹理颜色和雾颜色进行混合,形成最终的雾效颜色值:c=ctexture·(1-d)+cfog·d;

如图2所示,s0为大气外球,s1为大气内球,epn为视点到目标点的连线,并与s0交于p0点,那么从p0pn线段上的每一点的浓度的总和就是从e点看向p1点的总浓度,表达式如下,

其中,a(t)=lenght(p0+(pn-p0)t)-r,t=length(pn-p0),考虑到表达式无法进行积分,故在p0pn线段上进行采样并求和,现假设,采样次数为n次,采样点的集合p={p0,p1,p2,...,pn-1},对应的高程集合a={a0,a1,a2,...,an-1},那么

设目标点pn的纹理颜色ctexture=(rt,gt,bt),雾颜色cfog=(rf,gf,bf),那么pn的最终颜色

c=ctexture·(1-d)+cfog·d

(5)将步骤(3)得到的雾总浓度数值和步骤(4)得到的雾效颜色数值附加在全球地形瓦片上进行渲染。

本发明依据大气密度的非均匀分布,构建出雾浓度数学模型,通过雾浓度数据模型来对不同地形情况来计算不同的雾效浓度,建立起以地形为基准的较为准确的雾效浓度信息;同时,对雾效颜色进行计算,与不同区域和地形的纹理颜色进行混合,更加贴近实际的颜色和效果,通过两个参数的设置能够很好地模拟全球地形雾效效果。

实施例1

在建立雾效浓度模型:

d=a·e-b·a

其中,a取0.2,b取0.001,采样次数n取5次,雾颜色c=(0.5,0.6,0.7),其他系数根据具体的地形取值,构建出如图1所示的效果;

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1