#3175 Score: 2
Angus
Participant
23 pts

其实在我的测试中,如果完全按照PPT中老师推理的矩阵来写代码的话,只需注意一下求t时要对zNear取绝对值,不需要针对zNear和zFar的正值负值对代码有任何特别调整。输入的zNear和zFar改为负值后,三角形就是顶点朝上的。因此老师的推导我认为是正确的,但确如如你所说,如果把zNear和zFar的定义误解的话,是会对老师的推导过程产生怀疑。

另外,当三角形顶点朝上后,按D键是绕z轴顺时针渲染(-10°),按A键是绕z轴逆时针渲染(+10°),也是符合认知的。
我当时没有仔细看其他部分的代码,不过这让我有些怀疑是否zNear和zFar为负值,才是正确的。原来二者为正值的写法是bug呢?

当zNear和zFar为正值时,按照老师的推导,Frustum是没有包含三角形的,且此时三角形在摄像机的“后面”。但是如果没有做z方向上的裁切,也就是没有depth Clamp,我们还是看得见摄像机“后面”的三角形的。这一点可以从提高部分的「绕x轴旋转」看出,无论如何绕x轴旋转该三角形,它始终都在我们的视野之内。

This post has received 2 votes up.