作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从单个顶点/索引缓冲区绘制一个具有多个网格的完整对象,并且它们具有不同的纹理。因此,我想到将纹理 ID 与顶点一起从顶点着色器传递到片段着色器中的片段。问题是禁用插值。我正在使用 GLSL ver 3.3
和 SDL2,并在 MingW 上 glew。
我已经在顶点着色器中尝试了 flat out uint frag_MeshID;
而不是 out uint frag_MeshID;
,但是在编译片段着色器时我仍然遇到这个错误:
'frag_MeshID':变化的 int/uint 不是平面插值
这是我对应的片段着色器片段:in uint frag_MeshID;
我错过了什么吗?
最佳答案
好吧,这似乎是我做出的错误假设。片段着色器也需要 flat 关键字。 (我认为顶点着色器平面属性将使下一级的单位平面)
因此,这作为片段着色器工作:flat in uint frag_MeshID;
(使用顶点着色器:flat out uint frag_MeshID;
)
关于c++ - GLSL无法编译没有插值的着色器(平面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854910/
我是一名优秀的程序员,十分优秀!