轉換建模矩陣
問題:
在GLM 中,儘管可以輕鬆設定ViewMatrix,但使用設定ModelMatrix glm::lookAt 會產生不正確的物件位置和旋轉。我們如何使用 glm::lookAt 將物件方向與相機定位對齊,還是需要建立自訂函數?
答案:
在電腦圖形學中,應用了變換3D 空間中的物件以準確定位它們。此過程涉及三個主要變換矩陣:ModelMatrix、ViewMatrix 和 ProjectionMatrix。
模型座標:
場景中的每個網格都有自己的本地空間,稱為模型空間。頂點座標在此空間內定義,模型矩陣定義物件在世界空間中的位置、方向和相對大小。
世界座標:
世界空間是座標放置多個物件的整個場景的系統。
視圖空間:
視圖空間是相對於觀看視角定義的,具有視圖的位置、視線,以及向上的方向。視圖座標系的逆矩陣是 ViewMatrix,將物件從世界空間轉換到視圖(眼睛)空間。
剪輯座標:
剪輯空間座標是同質的,使得場景的剪輯。如果一個點的 x、y 和 z 分量在由反轉的 w 分量和齊次座標的 w 分量定義的範圍內,則該點位於裁剪空間中。
投影矩陣:
ProjectionMatrix 描述了從場景的 3D 點到視口的 2D 點的映射,將視圖空間轉換為剪輯空間。
標準化設備座標:
透視分割變換剪輯將空間座標轉換為(-1, -1, -1) 到(1, 1, 1) 範圍內的標準化設備座標。
視窗座標:
標準化裝置座標為線性對應到視窗座標(螢幕座標)和深度緩衝區的深度,定義視窗和深度範圍。
以上是為什麼對 ModelMatrix 使用 glm::lookAt 會在 GLM 中產生不正確的物件定位和旋轉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!