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);
}