0

我有一個場景如下:OpenGL ES中的攝像頭

一個3D盒子,其基部以原點爲中心,四個矩形圍繞盒子的底部。我們可以把它看作是一個四面都有街道的建築。我想獲得投影視圖模型矩陣。我已經準備好基於相機設置的投影和視圖矩陣,但我不確定模型矩陣。場景中的每個對象是否會有一個不同的模型矩陣或整個場景只有一個模型矩陣?

立方體和矩形的模型矩陣是什麼?

我希望在建築物的所有四面的街道上移動攝像機。

回答

0

它可以以任何方式完成,但我建議爲每個建築物(立方體)分別建立一個模型矩陣,這可能只包含翻譯。每個翻譯都有不同的來源翻譯。然後,在使用glDrawArrays()繪製每個模型矩陣之前,將每個這些模型矩陣依次傳遞給頂點着色器。您的相機位置應進入也傳遞給頂點着色器的視圖投影矩陣,但僅在相機實際移動時更新。您的頂點着色器必須將模型和視圖投影矩陣相乘。這將工作的必要條件放到着色器中,它應該放在哪裏。

+0

譯文應該從哪裏出發,盒子和矩形的中心到原點? – Hellboy

+0

是的,確切地說。這樣可以輕鬆縮放或旋轉整個場景,例如,通過將所有模型矩陣乘以單個比例或旋轉矩陣,或者兩者兼而有之。 – ClayMontgomery

+0

所以,我會做這樣的事情。 PVRTMat4 ViewMatrix = PVRTMat4 :: LookAtRH(vFrom,vTo,vUp); PVRTMat4 ProjectionMatrix = PVRTMat4 :: PerspectiveFovRH(DEG2RAD(fFOV),AspectRatio,CameraNear,CameraFar,PVRTMat4 :: OGL,rotate);對於(i = 0; i Hellboy