2009-10-06 252 views

回答

2

這真的取決於你所說的縮放。

在典型的照相機設置中(例如,從視角獲得),通過減小視場(就像在真實照相機上一樣!)來實現變焦。請參閱gluPerspective的文檔以瞭解從視場到標準透視矩陣的實際數學運算。

glOrtho不會生成透視相機,因此您並不真正模擬標準縮放。它看起來更像是圖片的2-D縮放(您目前使用glOrtho嗎?它不是3D渲染,是嗎?)

1

如果您已經設置了glOrtho的平行投影,那麼您可以通過將參數更改爲glOrtho或使用glScale來放大和縮小。

我傾向於使用glScale,因爲通過縮放1.2而不是重新計算左/右/上/下平面來設置20%縮放比較容易。

雖然我不認爲這是「最佳實踐」。

0

glOrtho通常用於設置投影矩陣; glScale通常用於設置模型視圖矩陣以及其他各種變換。

大多數開發人員僅在每天開始或調整窗口大小時設置投影矩陣。 「縮放」意味着每幀都會改變矩陣,所以它看起來應該屬於模型視圖。

總結:放大模型視圖並使用glScale。