【DXライブラリ】SetDrawScreenで3Dがうまく表示されない

公開日: : 最終更新日:2014/08/14 DXライブラリ

スポンサーリンク

グラフィックハンドルを用いて描画を行いたいという場合があるかもしれないのですが、その際3次元が描画されないというバグ?があったので書いておきます。

まずSetDrawScreenを用いるとカメラ関係が一度リセットされてしまうようで、使う場合はもちろんカメラ関係にも気を使う必要があります。
そうじゃない場合でもなぜか3Dがうまく表示されない場合がありました。

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
	int ModelHandle ;
	int Screen ;
	SetMainWindowText( "test" ) ;		//ウィンドウ名
	ChangeWindowMode( TRUE ) ;
	SetWindowSizeChangeEnableFlag( TRUE ) ;
	// DXライブラリの初期化
	if( DxLib_Init() < 0 )
	{
		// エラーが発生したら直ちに終了
		return  -1;
	}
	SetGraphMode( 640,480 , 32 ) ;
	// 3Dモデルの読み込み
	ModelHandle = MV1LoadModel( "model.mqo" ) ;
	// 画面に映る位置に3Dモデルを移動
	MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ;
	// 描画可能なグラフィックの作成
	Screen = MakeScreen( 640, 480, FALSE ) ;
	//// 画面を初期化
	//ClearDrawScreen() ;//←①
	// 描画先を描画可能がグラフィックに設定
	SetDrawScreen( Screen ) ;
	//// 画面を初期化
	//ClearDrawScreen() ;//←②
	// 3Dモデルの描画
	MV1DrawModel( ModelHandle ) ;
	DrawString(10,10,"TEST",GetColor(255,0,0));
	// 描画先を裏画面に変更
	SetDrawScreen( DX_SCREEN_BACK ) ;
	// 描画可能なグラフィックを描画
	DrawGraph( 0, 0, Screen, FALSE ) ;
	// 裏画面の内容を表画面に反映
	ScreenFlip() ;
	// キーの入力待ち
	WaitKey() ;
	// DXライブラリの後始末
	DxLib_End() ;
	// ソフトの終了
	return 0 ;
}

ちょっと見ずらいかもしれませんが、例えば上のような場合でコメントアウトされているClearDrawScreenが①,②の二つがあると思います。
ここでのほうにClearDrawScreenを書く(①のコメントアウトをはずす)と2Dは描画されるのですが3Dは表示されない場合があります。

その場合はSetDrawScreenの後にClearDrawScreenを書く(②のほうのコメントアウトを外す)とうまく3Dが表示されるようになります。

ただ、おそらく環境によって描画ができる、できないが分かれているのだと思います。①にしてもパソコンによっては描画されました。一方、なぜかグラボを積んでいるパソコンでは①の場合は2D描画のみとなってしまいました。(使用したパソコンのOSは両方win7)

ちょっと原因は明確ではありませんが、同じ症状の方は試してみてください。

スポンサーリンク
  • このエントリーをはてなブックマークに追加

関連記事

Comment

  1. tigershark より:

    DXライブラリを 3.08⇒3.10c にUPしたら突然動かなくなって、
    5時間くらい四苦八苦してました。
    ②の後に書いたら3.10cでも描画できました。
    なんなのですかねえ・・・。
    情報ありがとうございます。

  2. ががんぼ より:

    解決されたようでよかったです。

WordPressサイトのSSL対応(HTTPS化)手順のまとめ【さくらサーバー】

先週頃にこのサイトをSSL対応しましたのでその流れについてまとめておき

【Google Charts】動的にグラフを更新する方法

はじめに Webサイト上でグラフを描こうと思った場合、いくつかのJa

体重変化量計算シミュレータ【ダイエット/肥満】

ツール本体 入力 カロリー入力 1日の余剰摂取/消費カロリー

おサイフケータイ対応ストレージ32GBのSIMフリースマホまとめ【2017年秋版】

はじめに SIMフリーの格安スマホのおサイフケータイ機能付きのもので

リクルート期間限定ポイントの有効な使い道

はじめに  先日クレジットカードの見直し活動の一環でポイント還元率の

初心者がお金を貯めるための節約・財テク手法まとめ【ポイント還元・投資・税金対策】

はじめに  最近なるべく節約しようと思い、お金周りに関して色々調べて

動画講座を効率的にキャプチャして復習する方法

はじめに  最近、動画媒体の講座などをたまに視聴しています。独学だと

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑