Tiny.x を静止して描画する

DirectX のサンプルモデル(Tiny.x)をアニメーション無しで描画します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. DirectX のサンプルモデルとして格納されている Tiny.x を回転しながら描画します。
    アニメーションデータが含まれている Tiny.x ですが、アニメーション無しで描画することも出来ます。
    基本的には コーンのメッシュ(cone.x)を描画する と同じです。
    ベースとなるソースコードは、こちらから取得して下さい。
  2. "cone.x" に代えて、"tiny.x" を入力します。
    "c:\data\xfile\" のフォルダーに "tiny.x" と Tiny_skin.bmp(dds?) を格納して下さい。
    "tiny.x" は DirectX のサンプルモデルとして添付されています。
        Directory.SetCurrentDirectory(@"c:\data\xfile\");
        mesh = Mesh.FromFile("tiny.x", MeshFlags.SystemMemory, device, out materials);
        
  3. "tiny.x" をそのまま描画すると頭を奥にしてうつ伏せに描画されます。
    そこで正面から描画するように World 座標を回転します。
        device.Transform.World = Matrix.RotationX((float)(-Math.PI/2)) *
            Matrix.RotationY(Environment.TickCount/1000.0f);
        
  4. cone.x やティーポットに比べてモデルのサイズが相当大きいようなので調整が必要です。
        device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f,3.0f,-1000.0f), 
            new Vector3(0.0f,0.0f,0.0f), new Vector3(0.0f,1.0f,0.0f));
        device.Transform.Projection = Matrix.PerspectiveFovLH((float)(Math.PI/4),
            1.0f,1.0f,5000.0f);
        
  5. DirectX9 でも同様のプログラムを作成しています。
    「超初心者のプログラム入門(DirectX9)/Mesh を描画/X_FILE Object Class & Tiny.x」を参照して下さい。

超初心者のプログラム入門(C# Frame Work)