2015-04-24 81 views
0

我使用單個頂點/索引緩衝區繪製了多個網格的完整對象,並且它們具有不同的紋理。因此,我想到了將紋理的ID與來自頂點着色器的頂點一起傳遞給片段着色器中的片段。問題是禁用插值。我在使用SDL2時使用GLSL ver 3.3,並在MingW上使用。GLSL無法在沒有內插的情況下編譯着色器(平面)

我試過flat out uint frag_MeshID;,而不是out uint frag_MeshID;在頂點着色器,但我仍然得到這個錯誤在編譯片段着色器:

'frag_MeshID' : int/uint varying in is not flat interpolated

這是我的相應片段着色器的代碼片段:in uint frag_MeshID;

我錯過了什麼嗎?

回答

0

好吧,所以這似乎是一個錯誤的假設,我做了。片段着色器也需要flat關鍵字。 (我以爲頂點着色器扁屬性將使UINT平整,下一級)

所以,這是片段着色器的工作原理:flat in uint frag_MeshID; (與頂點着色器:flat out uint frag_MeshID;

相關問題