我正試圖移除圍繞其自身對角軸旋轉的立方體上的隱藏表面以及圍繞一般的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