我試圖通過使用glFrustum
限制查看量來剪輯屏幕上的圖像。在Glfrustum
的官方文檔中提到,left, right, top, bottom, near, far
是裁剪的座標。我認爲他們是屏幕座標,並試圖做到:OpenGL的標準化座標
glFrustum(100, 924, 100, 668, 3, 1000);
上面沒有顯示任何東西給我在屏幕上。所以,我只是看着某處,看到一些代碼如下(但爲什麼這些座標負):
glFrustum(-1, 1, -1, 1, 0.5, 1000);
我用excat同樣的事情,並開始在屏幕上獲得圖像的某些部分。隨後,我開始撥弄near
的座標,並注意觀看音量如何變化。
glFrustum(-10,10,-10,10,10,1000);
glFrustum(-100,100,-100,100,100,1000);
glFrustum(-0.5,0.5,-0.5,0.5,0.5,1000);
所有上面的方法給圖像用相同的輸出到我在屏幕上。但是我觀察到大多數使用glFrustum的地方,我注意到這些值是從[-1,1]
(如here)和人們在規範化的範圍內討論計算的地方使用的。爲什麼在歸一化值方面對left, right, bottom, top, near, far
的計算很重要(近遠還包括在歸一化值中?)?是否可以使用屏幕座標中的值執行相同的操作?