トップページ > 過去ログ > 記事閲覧
最新バージョンのライブラリで描画可能な画面を透過できない
名前:稲塚 日時: 2010/07/08 03:57

いつもお世話になっております。 描画可能な画面を使用した際、バージョン2.25では背景が透過されるのに対し、 3.02eでは背景が真っ黒になってしまいます。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if(DxLib_Init()==-1) return -1; DrawBox(0,0,640,480,GetColor(255,255,255),1); int img=MakeScreen(128,128); SetDrawScreen(img); SetDrawBlendMode(DX_BLENDMODE_ALPHA,255); ClearDrawScreen(); SetDrawScreen(DX_SCREEN_FRONT); DrawGraph(0,0,img,1); WaitKey(); DxLib_End(); return 0; } (↑のプログラムを実行した際に、3.02eの場合のみ画像が黒く表示される) これはDXライブラリのバグなのか、自分のグラボとの相性問題なのか、どっちなのでしょうか 後者だったら、透過に依存しない組み方にしようと思ってるのですが……

Page: 1 |

Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.1 )
名前:管理人 日時:2010/07/11 14:05

すいません、描画可能な画像の透過処理は Ver3.00 以降では無くなりました これは Direct3D 9 の仕様によるもので、Direct3D 7 まで存在した透過色の機能が Direct3D 8 から無くなってしまったので、Direct3D 9 を使用している Ver3.00 以降は 描画可能画像の透過色の機能はありません ( 普通の画像はテクスチャに転送する前に透過色の部分の透明度を最大にして擬似的に 透過色を実現しています ) ピクセルシェーダーを使用することで透過色処理を実現することもできますが、 そうするとピクセルシェーダーが使用できない環境では正常に動作しないことになってしまいますので 申し訳ありませんが透過職機能は無いものとしてお考えください m(_ _;m
Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.2 )
名前:稲塚 日時:2010/07/12 08:05

> 管理人さん うまく伝わらなかったかもしれません、すいません…… 私がやりたかったのは、カラーキーのような特定の色の部分の透過ではなく、 描画可能な画像を、背景を透明にして、アルファ値を持った画像として使いたかったんです それも現在のバージョンでは不可能なのでしょうか?
Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.3 )
名前:ミルク 日時:2010/07/12 18:06

こんにちは。 SetDrawScreen(img); ClearDrawScreen(); まず上記の行を消すかコメント化します。 SetDrawBlendMode(DX_BLENDMODE_ALPHA,255); その後で上記の255の値を100などに変えると恐らく稲塚さんの仰る処理になると思います。
Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.4 )
名前:いっち 日時:2010/07/12 18:52

SetDrawValidAlphaChannelGraphCreateFlag を使ってみてはどうでしょうか? > int img=MakeScreen(128,128); ↓↓↓↓ > SetDrawValidAlphaChannelGraphCreateFlag( TRUE ); > int img=MakeScreen(128,128); > SetDrawValidAlphaChannelGraphCreateFlag( FALSE );
Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.5 )
名前:稲塚 日時:2010/07/12 19:05

> ミルクさん 助言ありがとうございます! でもちょっと違いました…… > いっちさん 回答ありがとうございます! ちゃんと背景を透過することができました! SetDrawValidAlphaChannelGraphCreateFlag関数を使う必要があったのですね…… 見逃していました(汗 管理人さんも、対応ありがとうございました!
Re: 最新バージョンのライブラリで描画可能な画面を透過できない ( No.6 )
名前:ミルク 日時:2010/07/12 19:15

なるほど、αチャンネル付き画像を作成するという事だったのですね。 勘違いしてたみたいでごめんなさいです。

Page: 1 |