【3Dエンジン】Irrlicht初心者質問スレその4at GAMEDEV【3Dエンジン】Irrlicht初心者質問スレその4 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト72:名前は開発中のものです。 11/07/27 23:36:11.28 bNPHEdBs.net テクスチャの透過色(完全に透明)を設定した上で 実際に表示するときに全体的な透過率を設定できるようにしたいんですが全く手立てがつかめません MaterialTypeの設定だけでは無理そうな感じだとは思うのですが、何か良い方法はありませんか 具体的には、黒を透過色とした画像ファイルをテクスチャに読み込んで 表示させるときに黒以外の部分の透過率を0~100%で設定したいんです 73:72 11/07/28 17:51:20.52 G6+n8kg0.net texture->lock()でピクセルを調べて、カラーキーでなければアルファ値を設定することで実現可能な感じがしました でも手元の環境で想定できるフォーマットはA8R8G8B8のみ・・・他も考えなきゃならないんだろうか テクスチャ生成フラグにETCF_ALWAYS_32_BITを指定しても常にA8R8G8B8になる保障はないのかな 74:名前は開発中のものです。 11/07/28 22:34:43.64 PCcpUSxP.net >>72-73 透過色を設定するというか、指定した色を投下したテクスチャを新たに作るメソッドなのだが IVideoDriver::makeColorKeyTexture http://irrlicht.sourceforge.net/docu/classirr_1_1video_1_1_i_video_driver.html#aed772902f4fe1185b44ce81b9b0b9add ・アルファテストを有効にしたままマテリアルカラー(または頂点カラー)のアルファを使う ・テクスチャのアルファとマテリアルカラー(または頂点カラー)のアルファを乗算する マテリアルタイプがあれば良かったんだが、どうやら無さそうだな・・・ >>73で言うようにテクスチャを書き換えるか、シェーダーを使うしか無いかも 固定機能でテクスチャ書き換えずにやるにはIrrlicht本体のソースをいじるしかない CD3D9Texture.cppを見てみた テクスチャ生成フラグにvideo::ETCF_NO_ALPHA_CHANNELが指定されていると、 ETCF_ALWAYS_32BITでもR8G8B8になるよ あと、生成に失敗すると16bitでリトライしているようだ。 テクスチャのカラーフォーマットが指定されたものになっているかは確認したほうがいいと思う。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch