0

FBX としての球と、球の内部にテクスチャを作成できるシェーダーがあります。球体の内側にもカメラがあります。目標は、ヘッドトラッカーによって駆動される単純なパノラマ ビューアを作成することです。

テクスチャが表示されていますが、カメラは奇妙な方法で反応しています:

ヘッドトラッカーを回転させると、画像はあちこちに散らばり、ぎくしゃくし、実際の動きとはまったく相関しません。ただし、ヘッドトラッカーの入力自体は正しいです。

詳細については、このビデオを参照してください。最初はトラッカーを動かさずに動かします。後半では、最初の 3 つの数字が評価されます。他の 3 つの値はジャイロです。

問題は次のコードにあると思います.Vectors(Vector3.whatever)に関する何かがオフになっている可能性があります:

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.CornflowerBlue);

        foreach (ModelMesh mesh in skyDome.Meshes)
        {
            foreach (BasicEffect ef in mesh.Effects)
            {
                float aspectRatio = (float)graphics.GraphicsDevice.PresentationParameters.BackBufferWidth / (float)graphics.GraphicsDevice.PresentationParameters.BackBufferHeight;

                Vector3 camPosition = Vector3.Transform(Vector3.Up, Quaternion.CreateFromYawPitchRoll(drehung, neigung, rollen));
                ef.View = Matrix.CreateLookAt(Vector3.Zero, camPosition,Vector3.Forward);
                ef.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 0.1f, 10000.0f);
                ef.TextureEnabled = true; //Textur zulassen
                ef.Texture = panoramaTextur; //Textur auf Model darstellen
            }
            mesh.Draw();
        }
        base.Draw(gameTime);
    }
4

0 に答える 0