Я не очень понимаю, как "камеры" работают с D3D9
Во-первых, как мне настроить камеру:
public Camera()
{
this.eye = new Vector3(0.0f, 0.0f, 0.0f);
this.lookAt = new Vector3(0.0f, 0.0f, 1.0f);
this.up = new Vector3(0.0f, 1.0f, 0.0f);
viewMatrix = Matrix.LookAtLH(eye, lookAt, up);
projectionMatrix = Matrix.OrthoLH(1 * zoomLevel, 1 * zoomLevel, 0.0f, 1.0f);
}
И мои вершины:
vertices = new VertexTexture[]
{
new VertexTexture()
{
Position = new Vector4(0.0f, 0.0f, 0.0f, 1.0f),
TextureCoord = new Vector2(0.0f, 1.0f)
},
new VertexTexture()
{
Position = new Vector4(0.0f, model.Height, 0.0f, 1.0f),
TextureCoord = new Vector2(0.0f, 0.0f)
},
new VertexTexture()
{
Position = new Vector4(model.Width, model.Height, 0.0f, 1.0f),
TextureCoord = new Vector2(1.0f, 0.0f)
},
new VertexTexture()
{
Position = new Vector4(model.Width, 0.0f, 0.0f, 1.0f),
TextureCoord = new Vector2(1.0f, 1.0f)
}
};
Это работает. Я могу двигать камеру, масштабировать и т. Д.
Но свойства камер кажутся мне странными! Я думал, что это будет что-то вроде:
public Camera()
{
this.eye = new Vector3(0.0f, 0.0f, 1.0f);
this.lookAt = new Vector3(0.0f, 0.0f, 0.0f);
this.up = new Vector3(0.0f, 1.0f, 0.0f);
viewMatrix = Matrix.LookAtLH(eye, lookAt, up);
projectionMatrix = Matrix.OrthoLH(1 * zoomLevel, 1 * zoomLevel, 0.1f, 100.0f);
}
но с этими параметрами это не работает. То же самое, если я изменю координату Z для моего плана (который должен быть установлен на 0, чтобы работать).
Теперь я пытаюсь визуализировать другие объекты. Я генерирую вершины для сферы (она отлично работает на D3D 10, сфера 1 радиуса, сгенерированная вокруг (0; 0; 0)), но на экране ничего не появляется
Я играл с параметрами eye и lookat, но я могу понять, как заставить его работать, так что я делаю не так?