一种屏幕空间中的体积雾的操作方法技术

技术编号:11118706 阅读:104 留言:0更新日期:2015-03-06 22:48
本发明专利技术公开了一种屏幕空间中体积雾的算法,包括:利用MRT技术渲染所有场景的物体,把场景的深度信息渲染到一张纹理上;基于渲染得到的场景信息的纹理,分别渲染体积雾模型的背面和正面,得到体积雾的正、背面深度并保存到两张渲染目标中同时结合场景的深度值计算得到可见像素的混合因子;基于计算得到的可见像素的混合因子,把场景颜色和雾的颜色以混合因子进行混合,然后投射到屏幕空间最终颜色。本发明专利技术所述屏幕空间中体积雾的算法,可以克服现有技术中模拟效果差、适用场景少等缺陷,以实现模拟效果好、适用场景多的优点。

【技术实现步骤摘要】

本专利技术涉及计算机图形学
,具体地,涉及。
技术介绍
自然现象有很多,像云,雾等更能给人带来如临仙境的感受,在虚拟的3D场景中, 游戏中运用大量的雾化来模拟现实中的一种大气现象,用来营造一种氛围来增强场景的真 实性和距离感,雾中包含成千上万的小粒子,不仅吸收来自场景的光线,他们还要反射一部 分的光线到场景中,粒子之间还存在反射、散射、吸收等问题,不是用一个简单的模型就能 表示出来的,在游戏中,可以尝试关闭、打开雾效,打开雾效以后,场景显得更加逼真,而游 戏反而更加流畅,是因为开启雾效后其实对雾模型后的物体进行优化,从而能提高渲染速 率。 在游戏中目前是在游戏中目前是利用场景的深度(即场景到摄像机的距离)来计 算雾化的系数,这种方法可以快速生成雾的效果,复杂度比较低,整个雾是充满场景的,无 法体现真实雾效果。 在实现本专利技术的过程中,专利技术人发现现有技术中至少存在模拟效果差和适用场景 少等缺陷。
技术实现思路
本专利技术的目的在于,针对上述问题,提出,以实现模 拟效果好和适用场景多的优点。 为实现上述目的,本专利技术采用的技术方案是:,包 括: a、利用MRT技术渲染所有场景的物体,把场景的深度信息渲染到一张纹理上; b、基于渲染得到的场景信息的纹理,分别渲染体积雾模型的背面和正面,得到体 积雾的正、背面深度并保存到两张渲染目标中同时结合场景的深度值计算得到可见像素的 混合因子; c、基于计算得到的可见像素的混合因子,把场景颜色和雾的颜色以混合因子进行 混合,然后投射到屏幕空间最终颜色。 进一步地,所述步骤a,具体包括: 在场景中,各点相对于摄像机的距离可以用深度图来表示,即深度图中的每一个 像素值表示场景中某一点与摄像机之间的距离; 在未放置雾模型之前,通过渲染场景的所有物体,利用多重渲染目标MRT技术渲 染场景同时把深度信息保存到一张纹理中;MRT是GPU编程中的像素着色器支持的渲染方 式,通过像素着色器能够返回多个渲染目标。 进一步地,所述步骤b,具体包括: ⑴为了计算可见像素的混合因子,在放置体积雾模型之后,首先渲染不包含任何 物体的体积雾模型: 先渲染体积雾的正面,并把体积雾正面像素的深度保存到渲染目标中;再渲染体 积雾的背面,把体积雾的背面像素的深度保存到另一张渲染目标中,那么体积雾背面像素 深度和前面像素深度的差近似为屏幕空间上该像素点的雾的浓度,对于屏幕上的任意一点 的像素用同样的方式计算; ⑵视点与目标对象的距离简称视点距离,即:场景深度,能够从步骤a得到的纹理 即场景深度图中获取,它与体积雾模型正、背深度之间有着阶梯关系,且在体积雾的正面深 度值、背面深度值都小于1的条件下,有以下三种情况表示场景中可见像素的混合因子:本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201410607219.html" title="一种屏幕空间中的体积雾的操作方法原文来自X技术">屏幕空间中的体积雾的操作方法</a>

【技术保护点】
一种屏幕空间中体积雾的算法,其特征在于,包括:a、利用MRT技术渲染所有场景的物体,把场景的深度信息渲染到一张纹理上;b、基于渲染得到的场景信息的纹理,分别渲染体积雾模型的背面和正面,得到体积雾的正、背面深度并保存到两张渲染目标中同时结合场景的深度值计算得到可见像素的混合因子;c、基于计算得到的可见像素的混合因子,把场景颜色和雾的颜色以混合因子进行混合,然后投射到屏幕空间最终颜色。

【技术特征摘要】
1. 一种屏幕空间中体积雾的算法,其特征在于,包括: a、 利用MRT技术渲染所有场景的物体,把场景的深度信息渲染到一张纹理上; b、 基于渲染得到的场景信息的纹理,分别渲染体积雾模型的背面和正面,得到体积雾 的正、背面深度并保存到两张渲染目标中同时结合场景的深度值计算得到可见像素的混合 因子; c、 基于计算得到的可见像素的混合因子,把场景颜色和雾的颜色以混合因子进行混 合,然后投射到屏幕空间最终颜色。2. 根据权利要求1所述的屏幕空间中体积雾的算法,其特征在于,所述步骤a,具体包 括: 在场景中,各点相对于摄像机的距离可以用深度图来表示,即深度图中的每一个像素 值表示场景中某一点与摄像机之间的距离; 在未放置雾模型之前,通过渲染场景的所有物体,利用多重渲染目标MRT技术渲染场 景同时把深度信息保存到一张纹理中;MRT是GPU编程中的像素着色器支持的渲染方式,通 过像素着色器能够返回多个渲染目标。3. 根据权利要求1或2所述的屏幕空间中体积雾的算法,其特征在于,所述步骤b,具 体包括: ⑴为了计算可见像素的混合因子,在放置体积雾模型之后,首先渲染不包含任何物体 的体积雾模型: 先渲染体积雾的正面,并把体积雾正面像素的深度保存到渲染目标中;再渲染体积雾 的背面,把体积雾的背面像素的深度保存到另一张渲染目标中,那么体积雾背面像素深度 和前面像素深度的差近似为屏幕空间上该像素点的雾的浓度,对于屏幕上的任意一点的像 素用同样的方式计算; ⑵视点与目标对象的距离简称视点距离,即:场景深度,能够从步骤a得到的纹理即 场景深度图中获取,它与体积雾模型正、背深度之间有着阶梯关系,且在体积雾的正面深度 值、背面深度值都小于1的条件下,有以下三种情况...

【专利技术属性】
技术研发人员:张翼
申请(专利权)人:无锡梵天信息技术股份有限公司
类型:发明
国别省市:江苏;32

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

1