2012-03-06 5 views
0

2つのポリゴンを表示するアプリがあります。私は、ポリゴンのうち、目に見えないものを徐々に作る必要がありますが、もう1つは目に見える必要があります。私はOpenGL ES 1.1で作業しています。私はAndroid用に開発していますが、私は他のプラットフォームでも同じコードをいくつかのマイナーチェンジで実行すると思います。ブレンドを使用してポリゴンを透明にするにはどうすればよいですか?

どうすればいいですか?

glEnable (GL_BLEND); 
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

しかし、私はそれらを配置する必要があり、どのように私のポリゴンが徐々に透明にするためにそれらを使用する場所を知らない:

は、私は私がこれらの機能でそれを行う必要があることを知っています。

答えて

1

右のブレンド機能のように見えますが、半透明のポリゴンを描画する前にそれらを呼び出す必要があります。アルファ値は通常、カラーまたはテクスチャマップ(赤、緑、青、アルファ)で供給され、アルファの範囲は上記のブレンディング関数を指定すると0.0(透明)〜1.0(不透明)です。

また、半透明オブジェクトはレンダリングの順序に敏感です。通常は、通常は深度バッファを使用して不透明オブジェクトをすべて描画する必要があります。その後、ブレンディングをオンにして、デプスバッファを読み取り専用に設定し、半透明のオブジェクトをバックツーフロントで描画します(最初にカメラから最も遠くに描画します)。この方法では、フラグメントブレンディングは最も近いものから最も近いものまで発生します。

+0

私にアンドロイドで透明なテクスチャポリゴンを行うコード例を教えてください。私はチュートリアルやGoogleの例を見つけることができません – NullPointerException