【DirectXプログラミング】描画について2点
Posted: 2010年8月29日(日) 20:04
お世話になります。シエルです。
現在、シューティングゲームを作成中なのですが、
DirectXプログラミングの描画について、質問があります。
【質問①】画面の綺麗なぼやけについて
ゲームオーバー時の画面や途中でストップしたときに、現在のプレイ中の画像を少し
ぼやかしたような描画をしたいのですがどのような方法を行えばよろしいでしょうか?
現在私が行っている方法として、現在プレイ中の画面をその画面より小さなテクスチャにレンダリングし、
そのテクスチャを拡大して、再度画面に描画するという方法を取っているのですが、たしかにぼやけはするものの
拡大してるので画像が少し粗くなってしまいます。
どうすれば綺麗にぼやけを表現できるでしょうか?
目標としては、東方地霊殿の体験版でプレイ中にエスケープキーを押して
ストップしたときのあのぼやける感じが目標です。
(東方関連はこの体験版しか持ってません><)
【質問②】テクスチャに描画した際の画像の粗さについて
上の質問と少しかぶりますが、ステージクリアから次ステージに行くまでの間に
現在のプレイ画面をテクスチャに描画して、ロード中の文字と共に数秒間表示させているんですが、
そのテクスチャを描画すると実際のプレイしてる画面よりやや画像が粗くなってしまいます。
これはどのような原因が考えられるでしょうか?
方法としては、
下記のようにまず空のテクスチャを作っといて、そのサーフェイスを取得し、
バックバッファからそのテクスチャのサーフェイスに書き込んでいます。
当然ですが、StretchRectに指定しているRECT構造体の大きさとテクスチャのサイズは同じにしてます。
この処理が終わった後は、作成されたテクスチャをバックバッファにロード中の間、描画しているだけです。
D3DXCreateTexture(lp3ddev,450,610,1,D3DUSAGE_RENDERTARGET,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&fade);
fade->GetSurfaceLevel(0,&fades);
lp3ddev->StretchRect(backbuf,&rect,fades,NULL,D3DTEXF_LINEAR);
何かパラメータに問題がありますでしょうか?
以上の2点です。
ご教授のほど、よろしくお願い致します。
現在、シューティングゲームを作成中なのですが、
DirectXプログラミングの描画について、質問があります。
【質問①】画面の綺麗なぼやけについて
ゲームオーバー時の画面や途中でストップしたときに、現在のプレイ中の画像を少し
ぼやかしたような描画をしたいのですがどのような方法を行えばよろしいでしょうか?
現在私が行っている方法として、現在プレイ中の画面をその画面より小さなテクスチャにレンダリングし、
そのテクスチャを拡大して、再度画面に描画するという方法を取っているのですが、たしかにぼやけはするものの
拡大してるので画像が少し粗くなってしまいます。
どうすれば綺麗にぼやけを表現できるでしょうか?
目標としては、東方地霊殿の体験版でプレイ中にエスケープキーを押して
ストップしたときのあのぼやける感じが目標です。
(東方関連はこの体験版しか持ってません><)
【質問②】テクスチャに描画した際の画像の粗さについて
上の質問と少しかぶりますが、ステージクリアから次ステージに行くまでの間に
現在のプレイ画面をテクスチャに描画して、ロード中の文字と共に数秒間表示させているんですが、
そのテクスチャを描画すると実際のプレイしてる画面よりやや画像が粗くなってしまいます。
これはどのような原因が考えられるでしょうか?
方法としては、
下記のようにまず空のテクスチャを作っといて、そのサーフェイスを取得し、
バックバッファからそのテクスチャのサーフェイスに書き込んでいます。
当然ですが、StretchRectに指定しているRECT構造体の大きさとテクスチャのサイズは同じにしてます。
この処理が終わった後は、作成されたテクスチャをバックバッファにロード中の間、描画しているだけです。
D3DXCreateTexture(lp3ddev,450,610,1,D3DUSAGE_RENDERTARGET,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&fade);
fade->GetSurfaceLevel(0,&fades);
lp3ddev->StretchRect(backbuf,&rect,fades,NULL,D3DTEXF_LINEAR);
何かパラメータに問題がありますでしょうか?
以上の2点です。
ご教授のほど、よろしくお願い致します。