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