在我以前的經驗中,gl_FrontFacing
的支持一直不穩定。有時它只是失敗,有時會導致軟件渲染回退。所以我嘗試使用GL_VERTEX_PROGRAM_TWO_SIDE
,設置不同的正面和背面二次色,並測試二次色。但是我發現至少在一張ATI顯卡上,這種方法會導致編譯着色器時發生間歇性故障。那麼,任何人都可以想出其他技術來判斷片段是否面向前方?片段着色器中有沒有gl_FrontFacing的可靠替代方案?
順便說一下,有些人似乎並不認爲gl_FrontFacing
可能會失敗,所以我在opengl.org論壇和Apple的OpenGL郵件列表上進行了一些搜索。我發現有十幾個這樣提到的gl_FrontFacing
以各種方式在各種卡上失敗,一些來自ATI,另一些來自NVidia。大多數這些提及是從2009年或更早。所以如果我能假設所有的用戶都使用過去5年製造的機器,那麼我可能會沒事。但我不認爲我可以這樣做。
你的意思是'gl_FrontFacing',對不對?我從未見過'gl_FrontFace'。你有什麼平臺遇到問題? –
@ReetoKoradi:感謝拼寫更正。雙面着色問題在Windows上,我認爲'gl_FrontFacing'問題可能在Mac上。 – JWWalker
如何才能支持這個缺點?光柵化器必須知道它是填充正面還是背面多邊形,所要做的就是將該狀態傳遞給片段着色器。也許你只是沒有在着色器中正確處理'bool'數據類型?然而,主要和次要的顏色是不贊成的 - 支持這一點絕對是多餘的。考慮插入你自己的輸出變量。 –