我刚刚阅读了以下内容:
我们想让玩家查看位于该处的对象 世界的起源(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并且我的对象的z索引为1.0 ......我的相机再也看不到我的对象...
我不明白吗?
答案 0 :(得分:1)
当位于(0,0,-1)时,听起来像2D物体“面向”远离相机。如果你反转你的三角形顶点的排序,它们应该出现。
你可以将相机放在任何你想要的地方。如果您正在查看3D对象,则应该没有问题。
在DirectX中,只有在从相机看到它们的顶点按顺时针顺序时才能看到2D对象(尽管你可以关闭它,或者如果你愿意,可以改变它以丢弃逆时针三角形)。 DirectX使用顺时针和逆时针排序来丢弃面,因此它不会绘制3D对象的背面。