以前游戏水面的做法都是用很多张图的序列帧实现的纹理动画,这种固定渲染管线的方式,在最低画质的时候采用特别好,但是对于更高级别的画质,就应该采用更好效果的水面。
水面渲染,Ogre有个插件叫Hydrax,效果很不错,但是效率也低的很,没任何实用价值。只好自己做一个。
一个漂亮3D游戏水面的,一般有水波模拟,bump mapping,倒影,折射,菲捏尔效果,水下效果等,我准备做一些取舍,实现高效率。
1)只保留倒影,去掉折射,菲捏尔效果,水下效果,因为2.5D游戏,视角比较固定,也不需要深入到水下。
2)优化倒影的RTT渲染,手动选择哪些物体需要产生倒影,这样就极大减少渲染批次。
3)bump mapping采用法线贴图方式,计算水面光照。
4)