2013-03-07 63 views
0

OpenGL中不變性和多邊形偏移之間的區別是什麼。我對這兩者都感到困惑。因爲兩者都與低歲差問題有關。OpenGL中不變性和多邊形偏移之間的差別

+1

你是什麼意思的「不變性」?不變性與精度無關。 – 2013-03-07 11:00:51

+0

非常感謝@NicolBolas我們在opengl es 2.0中有一個關鍵字不變。它用於保持來自頂點着色器(變量變量)的重複調用輸出的相同進動。 – Megharaj 2013-03-07 12:16:46

回答

2

從GLES 2.0規範:

[...]方差是指由不同的着色器相同的表達得到不同的值 的可能性。例如,假設兩個 頂點着色器在兩個着色器中均使用相同的表達式設置gl_Position,並且在着色器運行時 中的表達式輸入值相同。

由於兩個着色器的獨立編譯, 可能會在兩個着色器運行時分配給gl_Position的值不完全相同。在此示例中,這可能會導致多通道算法中幾何圖形的對齊問題。通常,這種着色器之間的差異是允許的。爲防止出現差異,變量 可以被聲明爲不變的,可以單獨使用,也可以使用全局 設置。

換句話說,不變的是GLES你(程序員)提供了一種機制來告訴實現,當某個着色器代碼進行編譯,生成的代碼的GPU必須相同每次

多邊形偏移是,ummm,完全不相關。我向你推薦官方FAQ https://www.opengl.org/archives/resources/faq/technical/polygonoffset.htm