我正在尝试一个非常基本的 OpenGL 示例:渲染单个三角形。三角形有三个点和三种不同的颜色。
现在 OpenGL 将这些颜色混合在一起以创建类似渐变的效果。我想关闭它,但不知道该怎么做。
这是我的片段着色器,它非常基础:
#version 150
in vec4 color;
out vec4 outColor;
void main()
{
outColor = color;
}
最佳答案
有两个选项,您选择哪个将更多地取决于您在做什么。
首先,在将多边形提供给 OpenGL 时,您可以简单地使多边形的每个顶点的颜色保持不变。
其次,您还可以将变量标记为flat
:
flat in vec4 color;
它将从激发顶点获取颜色。参见 this man page .
关于OpenGL 着色器 : don't interpolate color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450996/