この度3Dモデルの描画を試していて気づいたのですが
以下のモデルの回転方法1と2で2の場合MV1SetScaleが無効になっています。
これは仕様なのでしょうか?
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int ModelHandle ;
MATRIX mat1,mat2;
// DXライブラリの初期化
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 3Dモデルの読み込み
ModelHandle = MV1LoadModel( "DxChara.x" ) ;
//回転方法1
{
MV1SetRotationXYZ( ModelHandle,VGet( 0.f, DX_PI_F/2, 0.f ) ) ;
// 画面に映る位置に3Dモデルを移動
MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ;
}
//回転方法2
{
//mat1=MGetRotY(DX_PI_F/2);
//mat2=MGetTranslate(VGet( 320.0f, -300.0f, 600.0f ));
//MV1SetMatrix(ModelHandle,MMult(mat1,mat2));
}
// 3Dモデルのスケールをz軸方向に2倍にする
MV1SetScale( ModelHandle, VGet( 1.0f, 1.0f, 2.0f ) ) ;
// 3Dモデルを描画
MV1DrawModel( ModelHandle ) ;
// キーの入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}