我正在寫一個簡單的陀螺測試應用程序,我希望能夠通過將手機傾斜到不同的方向來實現多邊形的不同側面。它與頭部跟蹤渲染技術類似,但我假設眼睛位置固定,只有手機相對於眼睛(相機)移動。在左/右方向傾斜的平截頭體的Android opengl問題
爲此,我在opengl es中使用了傾斜的平截頭體技巧。我可以毫無問題地抵消頂部/底部/近/遠方向的平截頭體。如果我將偏移值除以2,則只有左/右方向起作用時纔會出現真正奇怪的部分。有效地將「平截頭體」從真正應該是「縮小」的。
這裏是工作示例代碼與除以2的錯誤在左/右方向:
// xEyePhone is the transform of eye relative to the screen, note the /2.0f for the 3rd and 4th params.
Matrix.frustumM(_ProjMatrix, 0, -ratio-xEyePhone[12]/2.0f, ratio-xEyePhone[12]/2.0f, 1-xEyePhone[13], 1-xEyePhone[13], xEyePhone[14], xEyePhone[14]+10);
Matrix.setLookAtM(_VMatrix, 0, xEyePhone[12], xEyePhone[13], xEyePhone[14],
XEyeCenterWorld[12], xEyeCenterWorld[13], xEyeCenterWorld[14],
XUpVectorWorld[12], xUpVectorWorld[13], xUpVectorWorld[14]);
任何人碰到這個來了?
可能與http://stackoverflow.com/questions/11697728/why-does-the-matrix-generated-by-androids-frustumm-differ-from-the-redbooks –