采用flat着色时,OpenGL将使用图元中某个顶点的颜色来渲染整个图元,通常情况下会选择图元的第一个或最后一个顶点的颜色作为该图元的颜色。
在使用smooth着色时,OpenGL会独立的处理图元中各个顶点的颜色。对于线段图元,线段上各点的颜色将根据两个顶点的颜色通过插值得到。对于多边形图元,多边形内部区域的颜色将根据所有顶点的颜色插值得到。
1、smooth的glsl
顶点
smooth out vec3 FrontColor;
smooth out vec3 BackColor;
片段
smooth in vec3 FrontColor;
smooth in vec3 BackColor;
效果
2、flat的glsl
顶点
flat out vec3 FrontColor;
flat out vec3 BackColor;
片段
flat in vec3 FrontColor;
flat in vec3 BackColor;
效果