簡體   English   中英

OpenGL 在哪個階段左撇子?

[英]At which stage OpenGL goes left-handed?

我知道 OpenGL 在用戶空間中以右手模式運行(實際上它不關心我們在哪個系統中工作)並且僅在每個用戶階段完成后才使用左手。 learnopengl說(強調我的)

請注意,在規范化的設備坐標中,OpenGL 實際上使用左手系統(投影矩陣切換手性)。

但是,我看不出這句話怎么可能是真的。 用這個簡單的例子:假設 ModelViewProjection = Identity,投影矩陣什么都不做,所以最終的頂點仍然是右手的。

如果我們測試一下,我們可以看到在 az = -0.5 處渲染的一個對象將被另一個在 az = -0.1 處的對象隱藏,這應該意味着該剪輯空間仍然是右手的,對吧?

規范化的設備空間和剪輯空間是左手的。 裁剪規則是-w <= x, y, z <= w 模型和視圖坐標系通常是右手的,這只是常見的對流。 但是“OpenGL”既不是左手也不是右手(傳統的 OpenGL 矩陣函數產生右手矩陣除外)。 甚至 OpenGL 也不會改變系統。 使用glm::orthoglm::perspective (或glOrthoglFrustum )生成的通常正交或透視投影矩陣反轉 z 軸。 也就是說,它將右手系統變成左手系統,將左手系統變成右手系統。 使用投影矩陣的單位矩陣不會反轉 z 軸,也不會改變系統。
但是,一個對象是否被另一個對象遮擋取決於深度測試和深度函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM