我正在使用OpenGL ES 2.0制作程序。我需要在另一个上面渲染纹理,就像钟针一样。纹理都是1024 x 1024并且是透明的。透明度始终呈现黑色,这使我无法在时钟上覆盖时钟指针纹理。
simple_fragment_shader.glsl
precision mediump float;
varying vec4 v_Color;
void main()
{
gl_FragColor = v_Color;
}
simple_vertex_shader.glsl
uniform mat4 u_Matrix;
attribute vec4 a_Position;
attribute vec4 a_Color;
varying vec4 v_Color;
void main()
{
v_Color = a_Color;
gl_Position = u_Matrix * a_Position;
gl_PointSize = 10.0;
}
texture_fragment_shader.glsl
precision mediump float;
uniform sampler2D u_TextureUnit;
varying vec2 v_TextureCoordinates;
void main()
{
gl_FragColor = texture2D(u_TextureUnit, v_TextureCoordinates);
}
texture_vertex_shader.glsl
uniform mat4 u_Matrix;
attribute vec4 a_Position;
attribute vec2 a_TextureCoordinates;
varying vec2 v_TextureCoordinates;
void main()
{
v_TextureCoordinates = a_TextureCoordinates;
gl_Position = u_Matrix * a_Position;
}
我是OpenGL的新手,我使用过纹理,但我不知道如何获得透明度。
此外,如果这有帮助,我可以按照 OpenGL ES 2 for Android
中的Kevin Brothaler的 The Pragmatic Programmers
中的方法进行操作。
答案 0 :(得分:1)
如果没有以下设置,可能会忽略Alpha值。
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
我希望这可以帮助你:)。