[過去ログ] 【3Dエンジン】Irrlicht初心者質問スレその4 (172レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
72
(4): 2011/07/27(水)23:36 ID:bNPHEdBs(1) AAS
テクスチャの透過色(完全に透明)を設定した上で
実際に表示するときに全体的な透過率を設定できるようにしたいんですが全く手立てがつかめません
MaterialTypeの設定だけでは無理そうな感じだとは思うのですが、何か良い方法はありませんか

具体的には、黒を透過色とした画像ファイルをテクスチャに読み込んで
表示させるときに黒以外の部分の透過率を0〜100%で設定したいんです
73
(1): 72 2011/07/28(木)17:51 ID:G6+n8kg0(1/2) AAS
texture->lock()でピクセルを調べて、カラーキーでなければアルファ値を設定することで実現可能な感じがしました
でも手元の環境で想定できるフォーマットはA8R8G8B8のみ・・・他も考えなきゃならないんだろうか
テクスチャ生成フラグにETCF_ALWAYS_32_BITを指定しても常にA8R8G8B8になる保障はないのかな
74
(1): 2011/07/28(木)22:34 ID:PCcpUSxP(1) AAS
>>72-73
透過色を設定するというか、指定した色を投下したテクスチャを新たに作るメソッドなのだが

IVideoDriver::makeColorKeyTexture
外部リンク[html]:irrlicht.sourceforge.net

・アルファテストを有効にしたままマテリアルカラー(または頂点カラー)のアルファを使う
・テクスチャのアルファとマテリアルカラー(または頂点カラー)のアルファを乗算する
マテリアルタイプがあれば良かったんだが、どうやら無さそうだな・・・
省7
75: 72 2011/07/28(木)23:31 ID:G6+n8kg0(2/2) AAS
>>74
調べてくださってありがとうございます
その通りのマテリアルタイプがあれば万々歳でしたね
テクスチャ書き換えでは毎フレーム行うと相当な負荷がかかるようで工夫が要りそうでした

試しに同じ結果になる処理をDXライブラリにやらせたらCPU使用率3%以下で毎フレーム余裕orz
ソースいじる自信もないので保留か
78
(1): 72 2011/07/29(金)12:52 ID:YxVVrSXe(1) AAS
>>76
仰るとおりにやってみたら上手くいきました
結果的には以下のようなコードで確認できました(テストではスプライトを意識したものです)

material.MaterialType = EMT_ONETEXTURE_BLEND;
material.MaterialTypeParam = pack_texureBlendFunc( // texureってなんぞ
EBF_SRC_ALPHA,
EBF_ONE_MINUS_SRC_ALPHA,
省8
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s