

openGLで物体を半透明にして表示させたいです。
現在、openGLを使って画像を半透明にし重ね合わせて比較するプログラムを作成しています。
ほかの人が作成したプログラムなのですべて理解していないのが現状ですが、半透明にするところで詰まっています。
画像を透明にするにはアルファ値をつかうのはなんとなく分かったのですが、それはglColor4f()を使いますよね??
現在改良しているプログラムにはglColor4f()ではなくglfloatで書かれているんです。
あまり、いじりすぎるとまずいらしいので、glColor4f()を使わない形で透明にできれば一番良いのですがなんとか方法はないでしょうか??
自分でも透過について調べては見たのですがglColor4f()を使っての透過だったので・・・
方法がなければもう書き換えてもいいかな、と思っていますが方法があれば教えていただけないでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
まず、ブレンドモードを設定して、ブレンドパラメーターを教えてから出ないとアルファを入れても
無効なのでそこは先に注意です。
glColor4f()とglfloatは、同じです。
glfloatは1つの値を持った「型」であり、glColor4fは4つの値をもった関数です。
最後の「F]はglfloatのFですので
で、
>glColor4f()を使わない形で透明にできれば一番良いのですがなんとか方法はないでしょうか??
これを拒否する理由はわかりませんが、どうしてもというならさらにひどい方法でやれはします。
テクスチャーそのものを透明にすればいいのですが、お勧めできませんよ。
ちなみに、glColor4f()はプリミティブの面に対して発行しています。
それと、「物体を半透明」は難しいですよ。
プリミティブの半透明だけで最初はやってみてくださいね。
ある物体を透明にしても、ある物体にある形状上の面も半透明になることを忘れないでくださいね。
サンプルであればティーポットがありますが、抜きをすると、
ティーポットの手前から見えるのは奥ではなく、ティーポットの中ですよ
いつか、この問題にぶちあたりますので、がんばってねw
この回答への補足
回答ありがとうございます!
また、質問なのですが・・・
glColor4fとglfloatは同じ、ということはglfloatの型の4番目にアルファ値を指定できるのでしょうか??
全く分からないので変な質問だと思いますが教えていただけないでしょうか。
glColor4fを使いたくない理由としては色の指定がすべてglfloatでされているからなんです。
書き直しても良いのですが初心者の私が全て書き換えるのに抵抗があったので・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 画質を落とさず切り取って透過したいです 2 2022/06/08 12:28
- 化学 呼び塩と浸透圧の関係が分かりません。教えてください。 2 2022/07/05 08:42
- HTML・CSS 角丸画像の背景色を透明にしたいです 1 2023/06/23 23:15
- Photoshop(フォトショップ) 【至急】 ウェブサイトやアプリとかでよく見かける、添付画像のように背景にあるものをぼかしつつ透過する 2 2023/07/17 10:57
- プラモデル・鉄道模型・模型製作 透明な接着剤、または特殊な接着方法について教えて下さい 2枚の透明なアクリル板を重ねて接着するのに接 2 2022/06/10 16:21
- Illustrator(イラストレーター) Illustratorで白い部分のみを透過させたいです。 2 2022/10/10 22:27
- その他(ソフトウェア) ペイントで切り抜いた画像の背景を透明に 2 2022/09/15 10:20
- その他(料理・グルメ) わらび餅 透明にしておく方法 形よくする方法を教えてください。 4 2023/05/19 10:13
- 地球科学 この石はなんですか? 1 2023/05/24 23:33
- Photoshop(フォトショップ) 塗りつぶした画像を透過させない方法について。上からレイヤーで塗った場合は透過できると聞きましたが、レ 1 2022/10/22 13:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
世界一美しいソースコード
-
vba listviewにおけるtextのAli...
-
マイコンからプログラムを読み...
-
2値化した画像の黒い部分のピク...
-
C言語primeについて
-
DirectShowでのカメラ画像
-
COBOLのS9タイプからXタイプへ...
-
fscanf(),scanf()とBuffer Over...
-
共分散行列を求めるプログラム
-
gccでスタックオーバーフローの...
-
c言語についてで、星占いをswit...
-
Macターミナルで実行中のプログ...
-
Excel VBAにて、2GB超の点群デ...
-
C# シリアル通信でデータ受信...
-
sendkeysにてALT+CTRL+INSERTを...
-
Mac 乗数の入力方法
-
パソコンの演算速度について
-
WaitForMultipleObjectのイベン...
-
gprofとスレッドについて
-
プロセスのアタッチ・デタッチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
プロダクションコードとは?
-
マイコンからプログラムを読み...
-
指定したフォルダーを最前面表...
-
初級者の質問――time_tについて
-
COBOLのS9タイプからXタイプへ...
-
Arduino nano(アルドゥイーノ ...
-
i-mode
-
無限ループ中にある任意のキー...
-
三次元のグラフを書きたいので...
-
2値化した画像の黒い部分のピク...
-
XPathの関数「text()="value"」...
-
DCOMのアプリで配布用プロ...
-
マウスカーソルの表示・非表示
-
C言語primeについて
-
世界一美しいソースコード
-
gccでスタックオーバーフローの...
-
VBAのプログラムが動いているか...
-
openGLで物体を半透明にして表...
-
cとVisual Basic
おすすめ情報