0
我想在我的程序中将我的小四角的角落变暗。我有以下的顶点着色器:GLSL - 设置顶点颜色
#version 130
varying vec4 v_color;
varying vec2 v_texcoord;
void main()
{
v_color = gl_Color.rgba;
v_texcoord = gl_MultiTexCoord0.xy;
gl_FrontColor = vec4(v_color.r, v_color.g, v_color.b, 1.0f);
gl_Position = ftransform();
}
我的片段着色器:
#version 130
uniform sampler2D u_texture;
varying vec4 v_color;
varying vec2 v_texcoord;
void main()
{
gl_FragColor = v_color * texture2D(u_texture, v_texcoord);
}
我读的地方,gl_FrontColor
可用于“颜色”的顶点,但无论怎样我改变值,它似乎总是保持不变。
我的问题是,我可以使用什么函数来设置我的顶点的颜色?我希望顶点比四边形的其余部分稍暗,所以看上去有点“更好”。
那么gl_Color在片段着色器中看起来如何? – user3316633
我不明白你在问什么。 'gl_Color'在不同的地方有不同的含义。在顶点着色器中,它是来自'glColorPointer'的属性。在片段着色器中,根据多边形的方向,它可以根据“gl_FrontColor”或“gl_BackColor”(插值在顶点之间)进行变化。所以,基本上,你可以在片段着色器中使用它来代替'v_color',并且完全移除'v_color'。 – keltar