如何使显示正确?一个例子是在一个矩形中放置一个圆形球,并能够在背景中看到另一种纹理。
编辑:目前,当我加载纹理时,源图像中的透明像素会显示为黑色。
如何使显示正确?一个例子是在一个矩形中放置一个圆形球,并能够在背景中看到另一种纹理。
编辑:目前,当我加载纹理时,源图像中的透明像素会显示为黑色。
对于 iPhone 和 N95,这个方法可行:
如果你正在从原始数据中加载纹理,将内部格式和源格式设置为 GL_RGBA。
glTexImage2D(GL_TEXTURE_2D, 0,
GL_RGBA,
textureWidth,
textureHeight,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
pointerToPixels);
在渲染时,启用alpha混合:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
@Virne 提供的答案是正确的,而我成功地在 Android 设备上进行了一些小修改后使用它。我使用的 myImage
对象是一个带有透明度的标准 .png 图像。
我使用以下代码创建了纹理:
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, myImage, 0);
和Virne一样,我在渲染时启用了Alpha混合:
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL10.GL_BLEND);