找了很久的相关资料,关于水面渲染的还真不好找呢,突然发现了一个地方有介绍纹理动画,于是就试着做了做,效果还真是不错呢。
只是还没有实现倒影,下次再做。
虽然大虾很多,但像我这样自己捣鼓的也同样存在,那我就说说怎么实现的吧,也顺便理清自己的思路
我说说我的实现方法吧
std::vector<IDirect3DTexture9 *> vecTexture(0); //这个就是用来存储我们的几十张纹理。
先把他们全部加载进去。
然后我们先画一个矩形(略)
然后我们根据下面这个来动态切换纹理
Direct3DTexture9* Texture = NULL;
float timeElapsed = 0;
DWORD dwFrameSpeed = 0;
timeElapsed += timeDelta*FrameSpeed;//timeDelta是两次渲染的间隔时间
if(timeElapsed>vecTexture.size()) timeElapsed = 0;
Texture = vecTexture[(int)timeElapsed];
接下来我们就可以设置纹理,然后渲染那个矩形就可以了。
如果要使水呈透明效果,只要和地形进行ALPHA混合就行了,混合参数自己多调两下。