我有一个非常简单的2d正方形,可以从纹理渲染游戏精灵。所有这些都工作得很好,除了应将纹理中应透明的区域渲染为黑色。如何渲染这些透明区域以显示正方形后面的对象(在本例中为背景)?
如果相关,这是简单的片段着色器:
uniform sampler2D uTexture;
varying vec2 vImagePosition;
void main(){
gl_FragColor = texture2D(uTexture, vImagePosition);
}
和顶点着色器:
attribute vec4 aPosition;
attribute vec2 aImagePosition;
uniform mat4 uMVPMatrix;
varying vec2 vImagePosition;
void main(){
gl_Position = uMVPMatrix*aPosition;
vImagePosition = aImagePosition;
}
最佳答案
经过几个小时的搜索,我实际上偶然发现了答案。您必须打开混合。希望这对其他人有帮助。
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);