Я не очень понимаю, как "камеры" работают с 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)), но на экране ничего не появляется.
Я играл с параметрами глаза и взгляда, но я могу понять, как заставить его работать, так что же я делаю неправильно?