我想爲我的遊戲創建一個霧效果,但我找不到任何有關如何使用OpenGL ES 2.0的教程。如果任何人有鏈接教程,可以提供解釋或源代碼,我將不勝感激。如何使用Open GL ES 2.0或WebGL創建霧?
3
A
回答
4
在OpenGL ES 2.0編程指南(第202頁)中,有一節介紹使用着色器複製固定功能霧。源代碼可在谷歌代碼項目(MIT許可證)上找到。這是一個巨大的rendermonkey XML文件,但是the shader source embedded in it is pretty straightforward(我會直接在這裏複製它,但不知道是否可以)。
這個想法是使用特定像素的距離作爲霧函數的輸入。在這個例子中,他們計算頂點着色器中的眼到頂點的距離,然後通過將其作爲變量傳遞給每個片段來提供插值的距離。
然後他們做一個簡單的線性霧功能。有一些最小距離,即零霧色和最大距離,其中輸出全部是霧色。您可以通過像素距離落在最大值和最小值之間的位置混合(線性內插)霧顏色和碎片顏色。如書中提到的,一旦你有了這個工作,就沒有理由限制自己的線性霧。您可以很容易地使其成爲指數,取決於其他變量(例如到地面的距離,由於紋理查找或噪聲函數而導致的變量),通過它使上帝的光線等。
從您的問題中不清楚你究竟是什麼因爲如果你想要真正充滿活力,那就是另一場球賽(並不總是值得你獲得效果的開發工作和性能成本)。對於現有的WebGL代碼,您可能會嘗試類似Three Dreams of Black的加載屏幕,您可以在source code中找到某處,或者您可以更多地使用基於模擬的實際modeling the fog as a 3d fluid。
相關問題
- 1. 如何將Open GL ES 2.0轉換爲WebGL和/或Open GL?
- 2. Webgl GLSL/Open GL ES 2.0
- 3. Open GL ES 2.0 Android底紋
- 4. Open GL ES 2.0廣告牌
- 5. Open GL ES 2.0協調系統
- 6. OPEN GL ES 2.0 - glGetAttribLocation返回-1
- 7. 問題glTexGen中的Open GL ES 2.0
- 8. GL ES 2.0無法創建opengl對象
- 9. 如何測試基於Open GL ES 2.0的應用程序?
- 10. Sketch Up and Open GL ES
- 11. 在iPhone上使用open gl es 2.0顯示圖像
- 12. Open GL ES內存管理
- 13. Open GL ES 2.0:如何查詢着色器中的值?
- 14. Android Canvas或Open GL ES for 2D遊戲?
- 15. 在Open GL ES 3.0中使用GL_PRIMITIVE_RESTART_FIXED_INDEX
- 16. 沒有OPEN GL 2.0
- 17. 使用Open Gl的Iphone 3D遊戲Es
- 18. Android open gl es 2.0高度圖(實用程序員)book
- 19. 帶Open GL ES的UIKit粒子系統?
- 20. 的Open GL ES 1.1和iPhone遊戲
- 21. 如何使用Open GL ES裁剪圖像?
- 22. Android - open gl es 1.1 - 繪製效率
- 23. 標準化頂點和法線座標Open GL ES 2.0
- 24. 在Open GL ES 2.0中從深度緩衝區獲取黑色
- 25. 的Open GL - ES 2.0:動態更改顏色
- 26. Open GL - ES 2.0:畫一條簡單的線
- 27. Open GL ES 2.0多重繪製元素和繪製順序
- 28. 在Open GL ES 2.0中繪製一條線
- 29. 上的Open GL ES渲染到風景模式默認爲2.0
- 30. 在紋理中畫一條線Open GL ES 2.0 Android
「一霧效果」霧效果有什麼樣*種* – 2012-07-27 23:24:17
[使用着色器在opengl中繪製深度值]的可能重複(http://stackoverflow.com/questions/6408851/draw-the-depth-value-in-opengl-using-shaders) – bobobobo 2013-07-12 18:46:48