代码之家  ›  专栏  ›  技术社区  ›  faulty

Direct3D相机纵横比/缩放问题

  •  2
  • faulty  · 技术社区  · 17 年前

    我正在使用slimdx/c编写Direct3D应用程序。我按照文本框方式配置摄像头:

    private float cameraZ = 5.0f;
    camera = new Camera();
    camera.FieldOfView =(float)(Math.PI/2);
    camera.NearPlane = 0.5f;
    camera.FarPlane = 1000.0f;
    camera.Location = new Vector3(0.0f, 0.0f, cameraZ);
    camera.Target = Vector3.Zero;
    camera.AspectRatio = (float)InitialWidth / InitialHeight;
    

    绘图和旋转方法都不错 Matrix.RotationYawPitchRoll mesh.DrawSubset(0) . 其他一切看起来都很正常。

    我的问题是,我的三维网格(薄方形框),当从侧面看,并站垂直,它看起来比它的水平厚。我试图改变 AspectRatio 比1更糟。所以经过反复试验,我发现当 纵横比 大约是2.6。为什么会这样?可能有什么问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   faulty    17 年前

    我已经找出问题并回答了。

    显然,我缩放了网格,并匹配了纵横比,然后我应用了矩阵。在矩阵后缩放。旋转yawpitchroll。当我朝前旋转网格时,我意识到无论垂直还是水平,网格看起来都是一样的,缩放比例是将它向侧面拉伸,而不是我如何旋转。交换2个矩阵可以解决我的问题。 无论如何谢谢

    推荐文章