一种基于屏幕空间实时的体积云计算方法

文档序号:6619584阅读:221来源:国知局
一种基于屏幕空间实时的体积云计算方法
【专利摘要】本发明公开了一种基于屏幕空间实时的体积云计算方法,主要包括:基于预设场景进行绘制,生成云层浓度图;对上述生成的云层浓度图进行渲染处理;基于上述渲染处理后的云层浓度图,分别对云层浓度图和阴影图进行混合处理,得到云层的颜色值和地形的颜色值,使预设场景的画面受太阳光照射下透过云层形成地面阴影更加逼真可信。本发明所述基于屏幕空间实时的体积云计算方法,可以克服现有技术中处理速度慢、实时性差和模拟效果差等缺陷,以实现处理速度快、实时性好和模拟效果好的优点。
【专利说明】一种基于屏幕空间实时的体积云计算方法

【技术领域】
[0001] 本发明涉及图像处理【技术领域】,具体地,涉及一种基于屏幕空间实时的体积云计 算方法。

【背景技术】
[0002] 随着计算机图形学的发展,越来越多的游戏中来模拟真实的自然世界,需要运用 计算机图形学的各种复杂的算法来实现这种需求,如:蓝天白云、花草树木、河流山脉和日 出日落等各种自然现象,这种真实的场景的多样化,使得计算机处理的速度和效率更加的 复杂化,目前计算机硬件和软件还不能完全满足要求,许多【技术领域】对绘制的实时性具有 很高的要求,对现实自然环境的模拟都面面俱到也是不现实的。
[0003] 在宏观上讲模拟一种既能满足行业的需求,又能充分展现其形态的,在微观上 既能场景画面表现逼真可信,又能提高渲染的效率,充分利用了图形处理器(Graphic Processing Unit,简称GPU)的渲染性能。
[0004] 为了解决这个问题,需要我们从中找到一种既能实现逼真的体积云技术绘制又能 兼容硬件要求的平衡,基于此前提下,需要提供一种基于屏幕空间的实时体积云的实现技 术。
[0005] 在实现本发明的过程中,发明人发现现有技术中至少存在处理速度慢、实时性差 和模拟效果差等缺陷。


【发明内容】

[0006] 本发明的目的在于,针对上述问题,提出一种基于屏幕空间实时的体积云计算方 法,以实现处理速度快、实时性好和模拟效果好的优点。
[0007] 为实现上述目的,本发明采用的技术方案是:一种基于屏幕空间实时的体积云计 算方法,主要包括: a、 基于预设场景进行绘制,生成云层浓度图; b、 对上述生成的云层浓度图进行渲染处理; c、 基于上述渲染处理后的云层浓度图,分别对云层浓度图和阴影图进行混合处理,得 到云层的颜色值和地形的颜色值,使预设场景的画面受太阳光照射下透过云层形成地面阴 影更加逼真可信。
[0008] 进一步地,所述步骤a,具体包括:美术人员采用从已有的二维图像中提取信息并 在二维空间建模,将预设场景绘制生成包含四个通道的云层浓度图,并将该云层浓度图映 射在天空顶模型上。这里,四个通道具体包括红色通道、绿色通道、蓝色通道和阿尔法通道 (Alpha Channel,即Alpha通道),天空顶模型是美术制作的带有天空贴图的面片模型。 [0009] 进一步地,所述步骤b,具体包括: 绘制通过像素着色器采样云层浓度图中像素信息,与预先定义的云量权重因子相乘, 同时通过滑块调节云层衰减因子和方向,对云层浓度图进行渲染处理后,存储在离屏的渲 染目标中。
[0010] 进一步地,在步骤c中,对云层浓度图进行混合处理,得到云层颜色值的操作,具 体包括: Cl、根据云层距离太阳的远近,决定模糊权重因子的衰减程度,对云层浓度图进行模糊 处理; c2、计算包含散射的云层颜色值,即云层颜色值和散射颜色值; c3、将云层自身的颜色值、权重值和云层散射颜色值进行混合,得到所需的云层颜色 值。
[0011] 进一步地,所述步骤cl,具体包括: ⑴把云层到观察者距离记作为d :

【权利要求】
1. 一种基于屏幕空间实时的体积云计算方法,其特征在于,主要包括: a、 基于预设场景进行绘制,生成云层浓度图; b、 对上述生成的云层浓度图进行渲染处理; c、 基于上述渲染处理后的云层浓度图,分别对云层浓度图和阴影图进行混合处理,得 到云层的颜色值和地形的颜色值,使预设场景的画面受太阳光照射下透过云层形成地面阴 影更加逼真可信。
2. 根据权利要求1所述的基于屏幕空间实时的体积云计算方法,其特征在于,所述步 骤a,具体包括:美术人员采用从已有的二维图像中提取信息并在二维空间建模,将预设场 景绘制生成包含四个通道的云层浓度图,并将该云层浓度图映射在天空顶模型上。
3. 根据权利要求1或2所述的基于屏幕空间实时的体积云计算方法,其特征在于,所述 步骤b,具体包括: 绘制通过像素着色器采样云层浓度图中像素信息,与预先定义的云量权重因子相乘, 同时通过滑块调节云层衰减因子和方向,对云层浓度图进行渲染处理后,存储在离屏的渲 染目标中。
4. 根据权利要求3所述的基于屏幕空间实时的体积云计算方法,其特征在于,在步骤c 中,对云层浓度图进行混合处理,得到云层颜色值的操作,具体包括: cl、根据云层距离太阳的远近,决定模糊权重因子的衰减程度,对云层浓度图进行模糊 处理; c2、计算包含散射的云层颜色值,即云层颜色值和散射颜色值; c3、将云层自身的颜色值、权重值和云层散射颜色值进行混合,得到所需的云层颜色 值。
5. 根据权利要求4所述的基于屏幕空间实时的体积云计算方法,其特征在于,所述步 骤cl,具体包括: ⑴把云层到观察者距离记作为d :
其中,R表示地球的半径,h表示大气层厚度,0是光照方向与地平线的夹角; ⑵根据该距离d计算得到云层中像素点uv的偏移,距离越小时偏移越大,距离越大时 偏移越小; ⑶根据像素点UV的偏移计算权重:采样云层周围预设数量的像素以及
值的权重值,
是光强的衰减因子;根据云层预设数量的像素点距观察者的距离的常 量确定
值权重值; ⑷基于确定的
值权重值,对浓度云层图的像素进行模糊处理。
6. 根据权利要求5所述的基于屏幕空间实时的体积云计算方法,其特征在于,所述步 骤c2,具体包括: ⑴通过引入光散模型,计算场景中云层颜色值: 引入[Hoffman and Preetham 02]的光散模型即公式(1),在屏幕空间逐一计算光强 度:
(1) 在公式(1)中,S是光线透过大气层到观察着的距离,,
是云层的颜色,
是云层的散射颜色,
是光线到该点传播路径与太阳光的夹 角,
是太阳光强度,
是光强的衰减因子,
是结合了米利散射 和瑞利散射角度的散射系数,
是太阳光直接传播到人眼的光照,
是由散射作用后传入人眼的光照; ⑵设定云层颜色和云层散射颜色的插值的权重值: 云层的模糊效果是云层的颜色和散射颜色做lerp插值计算得来,其中云层的颜色是 将环境光颜色信息和浓度图颜色信息相互叠加的结果,散射颜色是吉米散射和瑞利散射乘 以散射因子再加上散射常量;将公式(1)变为形由是散射计算公式演变得到的公式(2):
在公式(2)中,
这个公式符合权重的插值公式,s是计算光线透过大气 层到观察者的距离; ⑶当光源和人眼间存在遮挡时,计算包含云层散射的颜色值: 当光源与人眼之间存在遮挡物时,光的传播受到阻碍,为了使模拟的云层更加的真实, 引入公式(3):
在公式(3)中,shadow是一个投影的术语,它表示云层投射到地面的阴影,是通过一个 不同的衰减的权重因子和存储在浓度云层图中的一个通道信息计算得到阴影图; 由于上述渲染的阴影图是由云层的阴影投射的结果,但在浓度比较高的云层下影响地 形只是很小的一部分,却会大大降低模拟的真实性;需要自定义一个常量参数C来使得浓 度比较厚的云层投射到地面的颜色变暗,具体的公式为公式(4):
这样的模拟使得云层的厚薄地方投射到地面层现不同的明暗层次。
7.根据权利要求6所述的基于屏幕空间实时的体积云计算方法,其特征在于,在步骤c 中,对阴影图进行混合处理,得到地形颜色值的操作,具体包括: 根据在DirectX游戏开发中,包围盒是场景中用于组织模型的重要方法,用于测试场 景中简单的距离测试发挥这很大的作用,在实际运用中,处于性能的考虑,我们利用简单的 距离来模拟真实快速的碰撞效果; 根据场景中包围盒和云层包围盒,通过一个不同的衰减的权重因子和存储在浓度云层 图中的一个通道信息计算得到阴影图;这个阴影图是描述云的浓度稀疏度,通过计算所有 模型的包围盒,然后在包围盒进行正交投影,采样云层浓度图然后计算出阴影值,分别乘 以地形的漫反射和高光值,得到新的地形的漫反射和高光值,即得到新的地形的受光综合 值,该新的地形的受光综合值是受周围光照和云层散射共同影响的地形效果; 根据公式(1)进行计算,得到地形包含散射的受光颜色值即地形颜色值和地形散射 值; 将场景中地形是赋予贴图的漫反射贴图和高光贴图的; 这里所说的地形的自身颜色值即漫反射颜色值和高光值; 地形自身的颜色值、根据公式(2)计算得到的地形颜色和散射的插值权重值、以及地形 散射颜色值进行混合,得到所需的地形颜色值。
【文档编号】G06T17/00GK104091363SQ201410324330
【公开日】2014年10月8日 申请日期:2014年7月9日 优先权日:2014年7月9日
【发明者】张翼 申请人:无锡梵天信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1