我从单个顶点/索引缓冲区中绘制了一个包含多个网格的完整对象,它们具有不同的纹理。因此,我想到将纹理的ID与顶点着色器中的顶点一起传递到片段着色器中的片段。问题是禁用插值。我使用GLSL ver 3.3
使用SDL2并使用MingW。
我在顶点着色器中尝试了flat out uint frag_MeshID;
而不是out uint frag_MeshID;
,但在编译片段着色器时仍然出现此错误:
'frag_MeshID' : int/uint varying in is not flat interpolated
这是我对应的片段着色器片段:in uint frag_MeshID;
我错过了什么吗?
答案 0 :(得分:0)
好的,所以这似乎是我做出的错误假设。片段着色器还需要flat关键字。 (我认为顶点着色器平面属性会使uint在下一级变平)
所以,这就像片段着色器一样:flat in uint frag_MeshID;
(使用顶点着色器:flat out uint frag_MeshID;
)