程序中创建一个移动的云纹理
还是通过我们的Perlin Noise
1. 创建4个纹理,大小分别为256,256,256,256
2. 创建一个临时纹理,大小为32.
3. 向临时纹理中添加随机数,并将其压缩到0-255范围内(相对于D3DFMT_A8R8G8B8格式)
4. 分别使用1步中创建的纹理作为RenderTarget,将3中的纹理渲染到一个大小和RenderTarget相等的矩形上,注意纹理坐标每次在上一次的基础上乘以2。线性过滤,
环绕模式。
5. 使用一个Shader将4张图合成,并添加动画,即将纹理坐标进行移动,高频率的比低频率的移动得快,高频率的比低频率的振幅大2倍。
6.使用pow(sharpness, c)是云更加蓬松,c为[0,255]
较小的噪音纹理尺寸
较大的噪音纹理尺寸
本来是打算写Game Programming Gems5上的那种云光照渲染,但是始终没把算法搞明白,先把这个弄好在慢慢解决吧。
前面还有一篇,大家可以看看。介绍个网站:http://www.vterrain.org/ 这个网站不错,室外场景渲染,包括了各方面。有很多资源连接。
Reference:
http://freespace.virgin.net/hugo.elias/models/m_clouds.htm
下载:
/Files/ttthink/CloudRendering.rar