Я только что прочитал следующее:
Скажем, мы хотим, чтобы игрок просматривал объект, расположенный в мировом происхождении (0, 0, 0). Мы хотим, чтобы игрок просматривал объект из координат (100, 100, 100). Для этого нам нужно построить матрицу, содержащую эти данные. Мы строим эту матрицу с помощью функции XMMatrixLookAtLH(). Вот как вы его используете:
XMVECTOR vecCamPosition = XMVectorSet(100, 100, 100, 0); XMVECTOR vecCamLookAt = XMVectorSet(0, 0, 0, 0); XMVECTOR vecCamUp = XMVectorSet(0, 1, 0, 0); XMMATRIX matView = XMMatrixLookAtLH(vecCamPosition, vecCamLookAt, vecCamUp);
от: http://www.directxtutorial.com/Lesson.aspx?lessonid=111-6-1
Я не понимаю, почему, если вы хотите посмотреть на объект, расположенный в 0, 0, 0, вы должны поместить камеру в 100, 100, 100... конечно, это означало бы, что камера прошла мимо нее... а затем оглядываясь назад?
вещь, если я установил свою камеру в 0.0, 0.0, -1.0 и у меня есть объекты с индексом az 1.0... моя камера больше не может видеть мои объекты...
Я не понимаю?
Похоже, у вас есть 2D-объекты, "обращенные" от камеры, когда они расположены на (0, 0, -1). Если вы измените порядок заказов на вершины треугольника, они должны появиться.
Вы в порядке, чтобы поместить камеру, где бы вы ни пожелали. Если вы смотрите на 3D-объекты, у вас не должно быть проблем.
В DirectX 2D-объекты могут быть видны только тогда, когда их вершины находятся в порядке по часовой стрелке, как видно из камеры (хотя вы можете отключить это или изменить его, чтобы отклонить треугольники против часовой стрелки, если хотите). DirectX использует по часовой стрелке против против часовой стрелки для отбрасывания лиц, чтобы он не рисовал обратные стороны трехмерных объектов.