我正在使用opengles渲染我的2D背景。我怎樣才能扭曲我的紋理隨着時間的推移?我只知道用sin(時間)或cos(時間)來實現這一點。但我很窮,我不知道該怎麼做。我是否隨時間改變了x,y協調?我怎樣才能避免重複移動整個紋理? 任何幫助謝謝。如何使用opengles在水下渲染我的2D背景
0
A
回答
1
您可能會扭曲紋理座標以期達到此目的,但您需要一些參數。
例如,您可以通過少量移動X
紋理座標來使用正弦函數或餘弦函數(兩者之間差異不大)來水平變形。所以你插入例如一個統一的(strength
)這應該是相對於紋理例如.1
將扭曲最多10%。然後這個想法是設置X=sin(Y)*strength
。由於Y
的範圍是從0到1,所以您需要添加另一個參數,例如density
以獲得「更多波浪」,它應該在20的範圍內,例如獲得幾個波浪(可以根據您的要求進行更改以測試效果不錯)。那麼等式變成X=sin(Y*density)*strength
。這仍然會產生一個靜態的失真圖像,但您想要隨時間移動,因此您需要一些垂直時間因子delta
,應該隨時間變化,範圍在.0
和2*PI
之間,然後等式爲X=sin(Y*density + delta)*strength
。在每一幀你應該增加delta
,如果它大於2*PI
簡單地減少2*PI
得到一個流暢的動畫。您增加delta
的值將控制效果的速度。
所以,現在你有3個統一的參數,你應該試着玩,以獲得預期的效果。我希望你找到它。
相關問題
- 1. Android OpenGLES 2.0 2D渲染
- 2. OpenGLES - 只渲染一次背景圖片而不擦除它
- 3. 在opengles中使用多線程渲染場景
- 4. 使用C++和Java的Android OpenGLES渲染
- 5. 如何使用WebGL渲染2D Sprite?
- 6. IE6不渲染格背景
- 7. C渲染面板背景#
- 8. Android OpenGLES渲染到紋理
- 9. 渲染到紋理仍渲染到OpenGLES中的屏幕
- 10. IE渲染背景:透明的洞?
- 11. 如何以編程方式將平面背景UIColor渲染爲UIToolbar的背景?
- 12. 使用savefig導出圖形()在matplotlib中渲染軸背景
- 13. 在Android下預覽OpenGLES渲染緩衝區
- 14. 如何在Android上使用OpenGL渲染2D圖形/圖形?
- 15. 如何渲染背景網址CSS:在VueJS中修改後
- 16. 什麼渲染JavaScript的優化背景下架
- 17. 使用DirectX管道進行2D渲染
- 18. 背景顏色不重新渲染
- 19. 將背景圖像渲染到畫布
- 20. 壞IE11 SVG渲染 - 背景圖像
- 21. 背景線程渲染紋理
- 22. Rails SCSS背景圖像不渲染
- 23. Android ViewFlipper動畫不渲染背景?
- 24. 如何使用OpenGLES擦除前景圖像以使背景可見?
- 25. WEBGL/OPENGLES - 如何在一箇中加入多個渲染?
- 26. 如何使用SQLAlchemy在此背景下
- 27. 爲什麼glDrawpixels不渲染我的透明背景?
- 28. 我的背景是在navbar下。如何在導航欄下方設置背景?
- 29. Safari在iPad上渲染背景色作爲背景圖像的邊框
- 30. FullCalendar.js:使用時間標籤渲染背景?
知道了!謝謝你。 – 2014-10-31 06:15:09