ページ 11

DxlibにおけるMMDの表示に関して

Posted: 2015年11月17日(火) 08:02
by Ute
はじめまして、DxlibにおけるMMDモデル描写に関する質問です。
新・ゲームプログラミングの館様の3Dゲームプログラミング3d.1を参考に、schwarz氏作成の宇佐見菫子のモデル(http://3d.nicovideo.jp/works/td21019)を表示したところ、近くから見る分には問題ないのですが、遠くから見ると口に赤色のテクスチャ(舌?)のような記号が表示されてしまいます...
アンチエイリアスが上手く為されていないようなのですが、画質を向上させるのに何か良い方法はありませんか?
適切なフィルタ処理等の関数が御座いましたら是非お教え下さい

コード:


/***** main.cpp *****/

#include <DxLib.h>

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
    ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );
	    float cameraX=0, cameraY = 10,cameraZ=-20;    //カメラの座標
    const float targetX=0, targetZ=0;//カメラの視線の先ターゲットの座標
    //3Dモデルの読み込み
    int ModelHandle = MV1LoadModel( "dat/sumireko/sumireko.pmx" ) ;

    //奥行0.1~1000までをカメラの描画範囲とする
    SetCameraNearFar( 0.1f, 1000.0f ) ;



    while(!ScreenFlip()&&!ProcessMessage()&&!ClearDrawScreen()){
		  if( CheckHitKey(KEY_INPUT_Z) > 0 ){//Zキーが押されていたら
            cameraZ--;//接近
        }
        if( CheckHitKey(KEY_INPUT_X) > 0 ){//Xキーが押されていたら
            cameraZ++;//離れる
        }
		  if( CheckHitKey(KEY_INPUT_UP) > 0 ){//上キーが押されていたら
            cameraY++;//左へ
        }
        if( CheckHitKey(KEY_INPUT_DOWN) > 0 ){//下キーが押されていたら
            cameraY--;//右へ
        }
		  if( CheckHitKey(KEY_INPUT_LEFT) > 0 ){//左キーが押されていたら
            cameraX--;//左へ
        }
        if( CheckHitKey(KEY_INPUT_RIGHT) > 0 ){//右キーが押されていたら
            cameraX++;;//右へ
        }
        //第一引数の視点から第二引数のターゲットを見る角度にカメラを設
        SetCameraPositionAndTarget_UpVecY( VGet( cameraX, cameraY, cameraZ ), VGet( targetX, 15.0f, targetZ ) ) ;
        // 3Dモデルの描画
        MV1DrawModel( ModelHandle ) ;

    }

    DxLib_End();
    return 0;
}

Re: DxlibにおけるMMDの表示に関して

Posted: 2015年11月17日(火) 09:44
by softya(ソフト屋)
はじめまして。
試していませんが、SetCameraNearFarの設定が不適切でZバッファの精度が足りていない可能性が考えられます。
調整してみてください。

Re: DxlibにおけるMMDの表示に関して

Posted: 2015年11月20日(金) 00:41
by Ute
すみません!返信が遅れました。実際にZバッファを調整した所、綺麗に描写されました。お早いご回答ありがとうございます!