投影矩陣
回答
如果屏幕是圓形的,FOV就足夠了......但它們是矩形的,所以只有FOV是不夠的。 FOV設置爲屏幕高度,另一個是FOV乘以屏幕寬度與高度的比率。
m11雖然可以用來縮放寬度方向上的FOV。可以認爲m22是在高度方向上縮放FOV的一種方式。
感謝您的快速反應,但規模窗口擬合是當你轉移到窗口空間並用這個方程乘以每個x,y時完成的:'xwin =(xndc + 1)* width * 0.5 + x ywin =(yndc + 1)* height * 0.5 + y' – 2012-03-10 18:13:38
no,該代碼看起來像是根據屏幕尺寸將位置分量(-1到+1空間,WVP輸出WVP考慮後)轉換爲屏幕位置,並提供平移移位以將原點參考放置在左上角。這與X和Y方向上的FOV差異無關。通常,您剛剛展示的calc在頂點着色器和像素着色器之間的GPU管道中爲您完成,因爲您的圖形設備知道您的視口尺寸。你是否手動確定3D位置的2D屏幕位置? – 2012-03-11 00:34:09
不,我只是想了解「投影矩陣」是如何工作的,當我們理解某些東西時,更容易與之合作。我的問題是爲什麼我需要縮放x,如果它已經完成,當我們轉換到屏幕位置 – 2012-03-11 16:53:31
您可以通過縮放得到的x和y座標來改變視野:您可以縮放它們,獲得更小的視野(放大),然後縮小它們,您將獲得更大的視野查看(縮小)。 3D軟件中使用的透視投影是直線的,所以如果你的視野足夠大,邊緣的變形將變得很嚴重,而且視場不能超過180°。
因爲OpenGL和Direct3D中的剪輯座標從-1運行到1,所以需要縱橫比。在水平方向上-1是左側,1是右側。垂直方向-1是底部,1是頂部。所以,如果你想讓你的方塊真的出現一個正方形,你需要用縱橫比縮小X座標。
- 1. 投影矩陣
- 2. OpenGL投影矩陣
- 3. 使用MATLAB投影矩陣反投影
- 4. Three.js投影矩陣不投影
- 5. OpenGL中的投影矩陣真的是「投影矩陣」嗎?
- 6. 基本矩陣的投影矩陣
- 7. WebGL透視投影矩陣
- 8. OpenGL獲取投影矩陣
- 9. 擴展投影矩陣
- 10. 查找投影矩陣
- 11. 瞭解投影矩陣
- 12. OpenGL 3.0+:正投影矩陣
- 13. 投影和視圖矩陣
- 14. openGL - 正交投影矩陣
- 15. 非對稱投影矩陣
- 16. 旋轉矩陣的投影
- 17. 瞭解libGDX投影矩陣
- 18. 矩陣乘法 - 視圖/投影,世界/投影等
- 19. 正交相機的投影矩陣
- 20. 投影矩陣的用途是什麼?
- 21. 透視投影矩陣不工作openGL
- 22. 投影矩陣和z戰鬥
- 23. 攝像機標定:投影矩陣
- 24. 的OpenGL 3.3投影矩陣錯誤
- 25. OpenGL中的透視投影矩陣
- 26. 投影矩陣似乎是錯誤
- 27. 設置Three.JS投影矩陣參數
- 28. 計算視圖投影矩陣
- 29. 投影矩陣 - 如何獲得它
- 30. OpenGL 2D投影矩陣問題
投影矩陣圖片的鏈接是這樣的:http://medialab.di.unipi.it/web/IUM/Waterloo/img284.gif – 2012-03-10 13:13:54
這個答案可能有幫助嗎? http://stackoverflow.com/questions/28286057/trying-to-understand-the-math-behind-the-perspective-matrix-in-webgl/28301213#28301213 – gman 2015-06-25 09:26:41