2012-04-05 26 views
1

私はOpenGLを初めて使っており、グラデーションを適用したテクスチャを描画する際に助けが必要です。opengl:フェードグラデーションを使用したテクスチャの描画

今、私は次のコードでテクスチャを描いています:上記のコードglColor4f(1.0,1.0,1.0,0.4);

glPushMatrix(); 
glBindTexture(GL_TEXTURE_2D,fcr.texture); 
glTranslatef(trans, 0, 0); 
glScalef(sc,sc,1.0); 
glColor4f(1.0,1.0,1.0,0.4); 
glDrawArrays(GL_TRIANGLE_STRIP,0,4); 
glColor4f(1,1,1,1); 

が描画された画像に透明度を適用します。透明な透明色の代わりに、画像に透明なグラデーションを適用して、フェードアウト効果をシミュレートしたいと思います。

このスレッドはiPhone OpenGL - How to gradient fade out a texture?です。これは私の質問と同じですが、反射の代わりにメイン画像自体にグラデーションを適用したい場合を除きます。しかし、私は答えから答えを見つけ出すことができませんでした。

私はglTexEnviを使用する必要がありますが、次にグラデーションで別の画像を描画する方法は?

+0

左側が不透明で、右側が完全に透明(または上/下、topleft/bottomrightなど)している、左から右のグラデーションのように、時間がたつにつれてフェードアウトすることを意味しますか? – Tim

+0

は時間の経過とともにフェードアニメーションを必要としませんが、ちょうど静的フェーディング効果は、あなたが言ったように.. – saiy2k

答えて

1

クワッドを描画する前にglColor4fを呼び出す代わりに、クワッドの4つの頂点のアルファ値が異なるようにglColorPointer(またはglVertexAttribPointer)を設定できますか?

すなわちRGBA値:

(x,x,x,1)  (x,x,x,0) 
    ----------------- 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
    |    | 
    ----------------- 
    (x,x,x,1)  (x,x,x,0) 

これはあなたに右から左へのアルファ勾配を与えるだろう。

+0

は、華麗な、たくさん働いた:) – saiy2k

関連する問題