我想制作如下图片右侧的三角形,需要从顶点1和2投影出一个颜色渐变到C。但据我所知这是不可能的,因为顶点C必须有自己的颜色,这也会混合到顶点1和2的颜色中,就像图片左侧的三角形。如果将C设置为中间点的颜色,则会产生不良结果,因为三角形越高,其他顶点的颜色就越不明显。 C1线应该是黑色,C2线应该是白色。在OpenGL中有没有实现这个的方法?
y
1 +-----+
|\ |
|#\ |
|##\ |
|###\ |
|####\|
0 +-----+ x
0 1
y
1 +-----+
|\ |
|.\ |
|#c\ |
|#.#\ |
|##.#\|
0 +--f--+ x
0 1
现在假设您有uniform vec4 colour1
和uniform vec4 colour2
来分别定义点1和点2的颜色。那么简单地混合它们:取colour2
的f
部分和colour1
的1-f
部分并将它们加在一起。GLSL的mix
函数正是这样做的。