トップページ > 過去ログ > 記事閲覧
グラフをモデルいっぱいに描画する
名前:ポップコーン 日時: 2012/11/19 14:43

長方形のモデルの表面一杯に動画を描画したいのですが、現在は MovieHandle = LoadGraph( "○○○○.avi" ) ; で読み込んだ動画を TexIndex = MV1GetMaterialDifMapTexture( ScreenHandle, 0 ) ; で読み込んだモデルに MV1SetTextureGraphHandle( ScreenHandle, TexIndex, MovieHandle, FALSE) ; でモデルに動画を描画しています。 しかしこの方法だとモデルの左隅に動画が映っている状態になってしまいます。(拡大ができません) これをモデルいっぱいに描画する方法を教えてください。

Page: 1 |

Re: グラフをモデルいっぱいに描画する ( No.1 )
名前:管理人 日時:2012/11/20 01:51

MV1SetTextureGraphHandle でモデルのテクスチャとして設定できる画像は縦横のサイズが 2のn乗( 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... )である必要があります なので、動画のサイズが2のn乗ではないと2のn乗のサイズで余分な分だけ空白ができます 解決策としては、MakeScreen で2のn乗サイズの描画対象にできる画像を作成して、 その画像を動画ハンドルの変わりに MV1SetTextureGraphHandle でモデルに設定します あとは、モデルを描画する前に MakeScreen で作成した描画対象にできる画像に対して 動画の画像を DrawExtendGraph で描画対象にできる画像一杯に拡大描画します ( このとき SetDrawMode( DX_DRAWMODE_BILINEAR ) ; で、バイリニアフィルタリング設定に しておくとニアレストネイバー方式より綺麗に拡大描画できます ) <準備> // グローバル変数としてグラフィックハンドルを格納するための変数を一つ用意 int Screen ; 〜〜〜〜〜〜〜〜 // 2のn乗サイズの画像を作成 Screen = MakeScreen( 1024, 1024 ) ; // モデルが使用するテクスチャとして設定 MV1SetTextureGraphHandle( ScreenHandle, TexIndex, Screen, FALSE ) ; <毎フレームの処理> // モデルを描画する前に描画対象にできる画像に動画を拡大描画 SetDrawScreen( Screen ) ; SetDrawMode( DX_DRAWMODE_BILINEAR ) ; DrawExtendGraph( 0, 0, 1024, 1024, MovieHandle, FALSE ) ; SetDrawScreen( DX_SCREEN_BACK ) ; // カメラの設定などがリセットされるので、ここでカメラの設定を行う 〜〜〜〜〜〜 〜〜〜〜〜〜 // モデルを描画 MV1DrawModel( ScreenHandle ) ; よろしければお試しください
Re: グラフをモデルいっぱいに描画する ( No.2 )
名前:ポップコーン 日時:2012/11/21 13:26

無事解決することができました。 ありがとうございました。

Page: 1 |