一、文献综述
国内外研究现状
天空盒
skybox指用巨大的盒子或者球体将场景包含在其中,然后利用渲染技术把这个巨大的包围体当作场景的外部环境,以增加场景的气氛和玩家的代入感。简单的天空盒一般会将一些高清的立方体纹理(cubemap)映射到天空盒的6个面,而一些具有特殊美术风格的游戏,会考虑利用简单公式和因素叠加,来产生可以动态调节参数的过程化天空盒。学术上也有一些考虑散射模型并用预计分来做实时渲染的方法。
云层
CG 中的云建模是指创建外观类似于真实云的形状。 已经提出了各种类型的技术来面向云建模。 这包括基于网格和体积的方法,从纹理或噪声甚至图像生成形状。
粒子系统
粒子系统是游戏物理、运动图形和计算机图形学中的一种技术,它使用许多微小的精灵、3D 模型或其他图形对象来模拟某些类型的“模糊”现象,否则这些现象很难用传统的渲染技术重现 – 通常是由化学反应引起的高度混乱的系统、自然现象或过程。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。在 1982 年的电影《星际迷航 II:可汗之怒》中为虚构的“创世纪效应”引入[14],粒子效果的实现也有二维和三维的区别。
研究主要成果
天空盒
立方体天空盒
这是最简单的一种天空盒解决方案,将立方体贴图映射到场景中,就可以大致模拟出天空场景了;在渲染的时候可以将天空盒的深度值设为1,即最大深度,这样做可以减少overdraw来提高渲染速度,是一种常见的优化方案;早期的3D游戏天空盒一般都使用这种解决方案,由于硬件性能的紧张这是最适合的解决方案;但是它最大的缺点就是贴图永远是静态的,无法通过参数来动态调整环境效果,虽然可以在多个贴图之间通过插值来实现通过转变,但是仔细看还是比较僵硬,变化有限。这种显然已经不能满足玩家对游戏真实感的需求了。随着GPU性能的提升和技术的突破,新的解决方案出现了。
程序化天空盒
这种解决方案不再使用固定的贴图来生成天空盒,而是通过编写shader生成材质来实现完全自定义的动态天空盒,在[21] 中就介绍了如何通过这种方式来生成高质量的天空盒材质,包括在总体环境颜色上叠加太阳,月亮层,光晕层,地平线光晕层来最终输出高质量的天空盒材质,然后通过参数控制来动态改变整个天空效果;还可以添加星辰,动态云层来模拟更丰富的效果;如今大部分大型游戏的昼夜系统都采用了这种解决方案,这一功能也成了现代游戏引擎的必备之一,比如unity的ProcedualSky[22]
预积分天空盒
前面两种是工业上关于天空盒的常见解决方案,在学术上,还有一些考虑散射模型的天空盒技术方案,比较经典的是这篇[15],这篇文章利用预先积分的方式,把瑞利散射和米氏散射模型的一些复杂计算结果提前算好并存储在纹理中,在实时渲染过程中进行采样得到最终计算结果。从论文的demo可以看到,由于考虑了瑞利散射和米氏散射模型,渲染效果跟真实天空已经非常接近,尤其是黄昏时分接近地平面的效果。虽然利用的预计分的方式来达到实时渲染效果,但是预计分过程中需要计算大量数据,对显存还是有一定的影响
以上是文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。