纠正相机移动 - 使用演示视频

时间:2013-09-22 03:21:17

标签: c# xna xna-4.0

我有一个球体作为FBX和一个着色器,使我能够在球体内部有一个纹理。在球体内部,我有一个相机。目标是拥有一个由头部追踪器驱动的简单全景观察器。

正在显示纹理,但相机却以一种奇怪的方式作出反应:

当旋转头部追踪器时,图像遍布整个地方,抖动并且根本不与实际运动相关联。但是,headtracker输入本身是正确的。

有关进一步说明,请参阅this video。每次我保持跟踪器稳定,然后我移动它。在下半部分,评估前三个数字。其他三个值是陀螺仪。

我认为问题出现在下面的代码中,关于向量(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);
    }

0 个答案:

没有答案