2014-10-30 58 views
0

我正在使用opengles渲染我的2D背景。我怎樣才能扭曲我的紋理隨着時間的推移?我只知道用sin(時間)或cos(時間)來實現這一點。但我很窮,我不知道該怎麼做。我是否隨時間改變了x,y協調?我怎樣才能避免重複移動整個紋理? 任何幫助謝謝。如何使用opengles在水下渲染我的2D背景

回答

1

您可能會扭曲紋理座標以期達到此目的,但您需要一些參數。

例如,您可以通過少量移動X紋理座標來使用正弦函數或餘弦函數(兩者之間差異不大)來水平變形。所以你插入例如一個統一的(strength)這應該是相對於紋理例如.1將扭曲最多10%。然後這個想法是設置X=sin(Y)*strength。由於Y的範圍是從0到1,所以您需要添加另一個參數,例如density以獲得「更多波浪」,它應該在20的範圍內,例如獲得幾個波浪(可以根據您的要求進行更改以測試效果不錯)。那麼等式變成X=sin(Y*density)*strength。這仍然會產生一個靜態的失真圖像,但您想要隨時間移動,因此您需要一些垂直時間因子delta,應該隨時間變化,範圍在.02*PI之間,然後等式爲X=sin(Y*density + delta)*strength。在每一幀你應該增加delta,如果它大於2*PI簡單地減少2*PI得到一個流暢的動畫。您增加delta的值將控制效果的速度。

所以,現在你有3個統一的參數,你應該試着玩,以獲得預期的效果。我希望你找到它。

+0

知道了!謝謝你。 – 2014-10-31 06:15:09