我正在尝试一个非常基本的OpenGL示例:渲染一个三角形。这个三角形有三个点,每个点有不同的颜色。 现在OpenGL将这些颜色混合在一起,创建出一种类似于渐变的效果。我想关闭这个功能,但是我不知道如何做到。 这是我的片段着色器,它非常基础: #version 150 in vec4 color; out vec4 outColor; void main() { outColor = color; }
有两个选项,你的选择取决于你要做什么。 首先,当你将多边形传递给OpenGL时,你可以简单地使每个顶点的颜色保持不变。 其次,你还可以将一个变量标记为flat: flat in vec4 color; 它将从触发顶点获取颜色。参见此手册页面。