2012-12-21 58 views
0

我有一些網格,嘗試類似於一個水族館。我可以移動視點或附帶燈光的相機。只有前面的玻璃是完全透明的,它被稱爲屏幕玻璃。OpenGL ES 1.1 - 水族館的現實渲染

我用攪拌機功能glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)瀰漫材料的一些組合嘗試,但它總是看起來像一個CAD圖紙,儘管一些逼真的紋理可以幫助改善一下,它只是看起來不正確。

我可以通過更改glBlendFuncglMaterialfv的所有可能組合來強制實現所需結果,但可能需要一段時間。所以我在這裏發佈了這個問題,看看是否有人完成了這種視覺效果,任何幫助或評論也是值得讚賞的。

+0

如果您可以發佈您的渲染圖片的樣子,以及您不喜歡/試圖達到的效果,這可能會有所幫助。 (只是擺弄混合模式可能不夠) – JasonD

+0

@JasonD增加了一些截圖,外觀有些現實,但仍然可以改進 – rraallvv

回答

1

看起來它缺乏任何反射,水和玻璃都會表現出來。水面上的鏡面反射術語可能沒有問題,或者因爲您可以添加混合環境貼圖而失敗。我實際上會淡化水的不透明度,使邊界變得不那麼明顯,並讓鏡面反射顯示定義。

玻璃本身也應該有某種環境反射,如果你在黑色房間以外的地方渲染它。再次,一個簡單而巧妙的環境地圖可能就足夠了。

你可能想嘗試其他的事情(記住你已經在ES1.1無着色器):

焦散。那些是你在游泳池底部看到的明亮的波浪線,這是由於表面的運動使光線散射到不同的方向。您可以僞造具有alpha紋理並擺動頂點的元素。

折射。您可以將水下場景渲染爲輔助緩衝區,然後將其用作紋理,使您可以在某種程度上扭曲/動畫化圖像。一個魚缸不會展現太多,如果透過頂部表面看,你應該只能看到它搖擺不定,但也許它會很有趣。