![](/img/trans.png)
[英]Clipping in clipping coordinate system and normalized device coordinate system (OpenGL)
[英]relation from normalized device coordinate to screen coordinate?
我對ndc與屏幕坐標系之間的關系感到困惑。 我所做的是
選擇屏幕坐標(例如屏幕上的觸摸點)。
然后將屏幕坐標傳遞給gluUnproject。 我將深度變量(gluUnproject的第三個變量)設置為0.0f。
然后我將對象坐標乘以modelviewmatrix和projectionmatrix。
之后,我修剪了空間。 然后我將剪輯空間坐標除以W
之后,我將gluUnproject的第三個變量更改為1.0f,我認為結果等於0.0f。 但是結果是1.0f。
所以這是一個問題,歸一化坐標系和屏幕坐標系之間是什么關系。 如何設置gluUnproject函數的depth變量?
歸一化坐標系和屏幕坐標系之間有什么關系?
歸一化的設備坐標在[-1,+ 1]范圍內表示,並且是從剪輯空間坐標除以它們的W分量獲得的。
它們通過視口參數和深度范圍參數在“窗口空間”坐標中轉換。
如何設置gluUnproject函數的depth變量?
如果要將“窗口空間”坐標轉換回“規范化”設備坐標,則需要在要轉換的點處獲得“窗口空間z”值。 因此,直接來自OpenGL常見問題解答 :
GLdouble z;
glReadPixels (x, y, 1, 1, GL_DEPTH_COMPONENT, GL_DOUBLE, &z);
請注意,OpenGL將非線性深度存儲在深度緩沖區中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.