アプリ版:「スタンプのみでお礼する」機能のリリースについて

openGLで物体を半透明にして表示させたいです。

現在、openGLを使って画像を半透明にし重ね合わせて比較するプログラムを作成しています。
ほかの人が作成したプログラムなのですべて理解していないのが現状ですが、半透明にするところで詰まっています。

画像を透明にするにはアルファ値をつかうのはなんとなく分かったのですが、それはglColor4f()を使いますよね??

現在改良しているプログラムにはglColor4f()ではなくglfloatで書かれているんです。
あまり、いじりすぎるとまずいらしいので、glColor4f()を使わない形で透明にできれば一番良いのですがなんとか方法はないでしょうか??

自分でも透過について調べては見たのですがglColor4f()を使っての透過だったので・・・

方法がなければもう書き換えてもいいかな、と思っていますが方法があれば教えていただけないでしょうか。

よろしくお願いします。

A 回答 (1件)

まず、ブレンドモードを設定して、ブレンドパラメーターを教えてから出ないとアルファを入れても


無効なのでそこは先に注意です。
glColor4f()とglfloatは、同じです。
glfloatは1つの値を持った「型」であり、glColor4fは4つの値をもった関数です。
最後の「F]はglfloatのFですので
で、
>glColor4f()を使わない形で透明にできれば一番良いのですがなんとか方法はないでしょうか??
これを拒否する理由はわかりませんが、どうしてもというならさらにひどい方法でやれはします。
テクスチャーそのものを透明にすればいいのですが、お勧めできませんよ。
ちなみに、glColor4f()はプリミティブの面に対して発行しています。
それと、「物体を半透明」は難しいですよ。
プリミティブの半透明だけで最初はやってみてくださいね。
ある物体を透明にしても、ある物体にある形状上の面も半透明になることを忘れないでくださいね。
サンプルであればティーポットがありますが、抜きをすると、
ティーポットの手前から見えるのは奥ではなく、ティーポットの中ですよ
いつか、この問題にぶちあたりますので、がんばってねw

この回答への補足

回答ありがとうございます!
また、質問なのですが・・・
glColor4fとglfloatは同じ、ということはglfloatの型の4番目にアルファ値を指定できるのでしょうか??
全く分からないので変な質問だと思いますが教えていただけないでしょうか。

glColor4fを使いたくない理由としては色の指定がすべてglfloatでされているからなんです。
書き直しても良いのですが初心者の私が全て書き換えるのに抵抗があったので・・・

補足日時:2010/06/16 11:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!