2012-06-23 110 views
1

我開發Android與opengl2 ES II遊戲要這樣的效果: https://lh6.ggpht.com/RF0R32tKjDhQcjNTtW51xd-giuXp-FlsDJaqscilDetI7cMpNQwUDjCryT2qyyBzT6PZOpenGL的2D水模擬

我supposse的光與法線貼圖做(是嗎?)

但我認爲在behing紋理上存在某種類型的變形,以模擬de波。

我可以使用哪種數學函數來模擬圖像中出現的噪聲?

謝謝

+2

可能的重複:[this thread](http://stackoverflow.com/questions/5012905/glsl-for-simple-water-surface-effects)...還有,如果你[ Google it](https://www.google.ca/search?q=opengl+simulate+water+waves)。 – Eric

回答

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

+0

感謝,非常有趣的信息。 – seipey

+1

關於POWERVR Shaders的URL不起作用。我能夠在github上找到pdf:https://github.com/anonymousjustice/pvr-pi/blob/master/SDKPackage_OGLES2/Documentation/POWERVR.Shader%20Based%20Water%20Effects.1.0.14.OGLES2External.pdf – Prizoff