OpenGL 2d水模拟

时间:2012-06-23 23:07:00

标签: android graphics opengl-es shader fragment-shader

我正在开发一款带有opengl2的Android游戏,我希望得到这样的效果: https://lh6.ggpht.com/RF0R32tKjDhQcjNTtW51xd-giuXp-FlsDJaqscilDetI7cMpNQwUDjCryT2qyyBzT6PZ

我认为光是用法线贴图完成的(我是对的吗?)

但我认为在behing纹理上存在某种类型的扭曲,以模拟de wave。

我可以使用哪种数学函数来模拟图像中出现的噪点?

感谢

1 个答案:

答案 0 :(得分:1)

是的,使用普通地图。为了使效果更有说服力,使用多个法线贴图(两个或三个)以不同的速度在不同的方向上转换。使用Google查找一些模拟水的法线贴图。

您不需要数学函数来模拟失真。从法线贴图中非常简单地计算折射和反射失真。

PowerVR的描述和水效果的实现。 http://www.imgtec.com/powervr/insider/docs/POWERVR.Shader%20Based%20Water%20Effects.1.0.14.OGLES2External.pdf

以下是关于实现折射的NVIDIA文章。这是针对DirectX的,但高级解释非常好。阅读有关水的部分。 http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter19.html