我正在尝试使用相机创建等距(35 度)视图。
我正在绘制一个围绕 Z 轴旋转的三角形。
由于某种原因,三角形在旋转的某个点被切割,给出了这个结果
我使用此站点通过角度和 z 距离计算相机位置:http ://www.easycalculation.com/trigonometry/triangle-angles.php
这就是我定义相机的方式:
// isometric angle is 35.2º => for -14.1759f Y = 10 Z
Vector3 camPos = new Vector3(0, -14.1759f, 10f);
Vector3 lookAt = new Vector3(0, 0, 0);
viewMat = Matrix.CreateLookAt(camPos, lookAt, Vector3.Up);
//projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Game.GraphicsDevice.Viewport.AspectRatio, 1, 100);
float width = GameInterface.vpMissionWindow.Width;
float height = GameInterface.vpMissionWindow.Height;
projMat = Matrix.CreateOrthographic(width, height, 1, 1000);
worldMat = Matrix.Identity;
这就是我重新计算世界矩阵旋转的方式:
worldMat = Matrix.CreateRotationZ(3* visionAngle);
// keep triangle arround this Center point
worldMat *= Matrix.CreateTranslation(center);
effect.Parameters["xWorld"].SetValue(worldMat);
// updating rotation angle
visionAngle += 0.005f;
知道我可能做错了什么吗?这是我第一次从事 3D 项目。