游戏实时渲染技术体积光的表现形式探究

游戏实时渲染技术体积光的表现形式探究

ID:9054640

大小:20.48 KB

页数:10页

时间:2018-04-16

游戏实时渲染技术体积光的表现形式探究_第1页
游戏实时渲染技术体积光的表现形式探究_第2页
游戏实时渲染技术体积光的表现形式探究_第3页
游戏实时渲染技术体积光的表现形式探究_第4页
游戏实时渲染技术体积光的表现形式探究_第5页
资源描述:

《游戏实时渲染技术体积光的表现形式探究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、游戏实时渲染技术体积光的表现形式探究散射是一种非常美丽的自然现象,在自然界中光穿过潮湿或者含有杂质的介质时产生散射,散射的光线进入人眼,让这些介质看起来像拢住了光线一样,也就是所谓的体积光。在游戏中体积光是很常用的一种光照特效,主要用来表现光线照射到遮蔽物体时,在物体透光部分泄露出的光柱。由于视觉上给人很强的体积感,所以称之为体积光。体积光特效在现今的中高端游戏中非常常见,优秀的体积光特效在烘托游戏氛围,提高画面质感方面发挥了很大的作用。图中清晨透过树林间隙射出的体积光为游戏增色不少作为一种常用特效,体积光的制作方式多种多样,不同游戏对于处理性能,画面要求和渲染质量

2、要求各不相同,也会使用不同的体积光表现方式。早期游戏中由于机能限制经常使用的是BillBoard贴片和径向模糊这两种方式。在这里简单介绍一下两种方式,重头戏还是后面最新的基于光线追踪的方式。BillBoard贴片BillBoard贴片很容易理解,用PHOTOSHOP生成一个随机的明暗条文,加上遮罩,让它看起来有光条的感觉。将BillBoard放置在场景中光线会泄露出来的区域,这就是最简单的体积光效果。做得精细一点的会再加上UV动画,粒子和远景透明的效果。径向模糊径向模糊是一种后处理的方法。主要用来表现天空中日月星光散射的效果。所谓后期处理就是在游戏画面渲染完毕之后,

3、另外加一次渲染,类似于PHOTOSHOP,但处理的对象是每一帧游戏画面,因为速度要求多使用GPU计算。径向模糊体积光主要流程如下:1:渲染出整个画面2:抽取出画面中高亮的部分3:对高亮部分进行径向模糊4:将径向模糊后的高亮层和原图合并这个流程可以在PS中轻松实现,有兴趣的朋友可以打开PS试一试,我很多时候也会先在PS上试验一些效果,然后再用代码实现。这里简单介绍一下径向模糊的GPU实现,实现非常简单,就是从原本像素的位置开始,向画面中心移动坐标,每移动一次就采样一次,将所有采样叠加在一起就可以了。代码如下:vec2position=gl_FragCoord.xy/r

4、esolution.xy;Position=(position-0.5)*2.;position.y=position.y*resolution.y/resolution.x;vec2uv=position;//最后颜色vec4color=vec4(vec3(0.),1.);//采样次数ConstintstepNum=12;//每次采样衰减floatdecay=0.9;//采样权重floatweight=1.;//坐标移动方向vec2direction=normalize(uv);for(inti=0;i

5、on/float(stepNum);vec4sample=texture2D(iChannel0,uv);sample*=weight;color+=sample;weight*=decay;}这里可以调整移动步幅,采样的数量,移动的方向,会得到不同的效果。因为实现简单,消耗小,效果也不错,径向模糊在很多游戏中都有广泛应用。当然径向模糊的缺点十分明显,如果光源不在画面内,显然径向模糊是没办法执行的。新的视野上面两种方式在游戏制作中已经使用了很长时间,但这绝对不表示体积光效果只能做到这个程度,其实还有很大的进步空间。近期伴随着渲染技术的进步,业界已经开始使用基于光线追

6、踪、阴影贴图等更为精细的渲染技术来实现体积光的效果。尤其是最近几年,Nvidia、寒霜引擎等几家大厂连续在Siggraph和GDC上发表了多篇关于实时体积光渲染的技术论文。这些算法不论是在模型的精密程度还是计算效率,相较于之前都有了质的飞跃,新一代的体积光已经成为3A游戏的标准配置。PS:大厂现在做什么都号称是基于物理,实际和真正的物理学、光学比起来精度差得还是千山万水,个人觉得现在实时渲染的技术基本就和古典绘画的光影分析和制作法差不多,非要谈基于物理就有点牵强了。下面终于要进入正题了,这里会从建模开始一步步深入分析基于光线追踪的体积光算法的各个方面。我们先从如何描

7、述体积光,也就是为算法建立模型开始。因为体积光是我们生活中能看到的现象,我们可以从分析自然现象开始,看能不能得到建模的灵感。首先光自身显然是没有体积的,我们也不可能看见光的形状。那在日常生活中看到的光柱到底是什么,答案很简单其实就空气中的尘埃。空气中布满大量微小的尘埃,我们看到的光柱就是光线击中尘埃后散射到我们眼睛中的。这时候有人就说了,那只要把尘埃模拟出来,放到现在的渲染引擎中就万事大吉了。这当然是最正确的做法,同时却也是最不切实际的做法,因为实时渲染显然不可能在几毫秒内模拟光线在空气中上亿灰尘分子间发生的各种折射、反射、散射。打个比方这就像是让牛顿只用自己的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。