我正试图移除围绕其自身对角轴旋转的立方体上的隐藏表面以及围绕一般的y
轴。隐藏表面删除C++
我使用gluLookAt(0, 0, 20, 0, 0, 1, 0, 10, 0)
作为视图的东西。
但是,它并没有完全产生一个很好的去除表面。
我通过计算法向量:
GLfloat CalculateVectorNormal(GLfloat fVert1[], GLfloat fVert2[], GLfloat fVert3[], GLfloat fNormalZ)
{
GLfloat Qx, Qy, Qz, Px, Py, Pz;
Qx = fVert2[0]-fVert1[0];
Qy = fVert2[1]-fVert1[1];
Qz = fVert2[2]-fVert1[2];
Px = fVert3[0]-fVert1[0];
Py = fVert3[1]-fVert1[1];
Pz = fVert3[2]-fVert1[2];
fNormalZ = (Px*Qy - Py*Qx);
return fNormalZ;
}
,我检查,如果fNormalZ
值小于0,我认为我作出这样的观点的东西是错误的。我相信我只从-z
轴看。这就是为什么我只是检查fNormalZ
。
我不能玩很多景观,因为从那时起我就失去了立方体。
任何帮助表示赞赏。我真的需要一些紧急的帮助。 非常感谢您提前。
(家庭作业的问题,GL功能不允许的。)
我的视图向量是(0,0,20)?我是否也应该考虑其他向量来查找视图向量,我将与法向向量交叉产生? – Sammy 2011-03-25 10:37:12
我没有OpenGL可玩,但我看到4个问题:1)你不会说结果有什么问题,2)你似乎不知道你的相机和对象在哪里,或者是什么视图向量是,3)你正试图优化一些还没有工作的东西*(一个经典的),4)你的'CalculateVectorNormal'不遵循数学约定,所以结果是它应该是的负面因素(应该('2'-'1')×('3'-'2'),而不是('3'''''')('2'''''')。 – Beta 2011-03-25 12:38:41