现在的位置: 首页 > 综合 > 正文

El游戏引擎-2. 水

2013年09月05日 ⁄ 综合 ⁄ 共 810字 ⁄ 字号 评论关闭

2.

游戏中对水的表现,从初期的简单表示到如今的高仿真,渲染的方法一直是层出不穷。

 

2.1 wow经典水

         相信玩过魔兽世界的玩家对于wow里波光粼粼的水一定印象深刻,这种水效果虽然简单,但是放在游戏场景中的表现即使在现在也毫不逊色。网上也有不少对wow水渲染方法的研究,基本上为采用30张纹理轮换交替形成水波荡漾状,这里贴出ArtsyLee2007年给出的demo《吉安娜的远征》的下载链接,大家可以在源码中清楚地看到仿wow经典水的效果是如何实现的。

         http://bbs.gameres.com/showthread.asp?threadid=87645

 

2.2 实时渲染水

         随着硬件水平日新月异的提高,实时渲染的水被越来越多的游戏所采纳。魔兽世界也在最新的资料片《大灾变》中采用了这一技术。El中实现的就是实时渲染的水。

这一做法基本上分为两步:

1.  渲染场景到纹理;

2.  将纹理作为贴图贴的水体模型上。

其中,步骤一中需要在绘制场景时将相机参照水平面翻转,以得到一个“倒过来”的世界。

步骤二倒影贴图在被采样时使用的纹理坐标是水体模型顶点投影后的位置,即要使用类似tex2Dproj的纹理坐标。在ps中对顶点投影坐标除以齐次坐标系的w,然后转换到纹理坐标的[0,1]区间即可。

另外,在采样时加入Perlin噪声扰动即可产生效果很好的起伏水面。

详细论述可以在下述链接中找到,更高级的水体效果如折射等,在该作者的blog中也有很好的阐述。

http://hi.baidu.com/shallow_sleep/blog/item/4a16d0818eb87cd3bd3e1e03.html

另有示例代码下载,该源码的水shader梢有纰漏,相信读者在理解后可自行更正。

http://show.gameres.com/ParallelWorld/ParallelWorld.zip

Water

2.1

抱歉!评论已关闭.