我想让您注意以下图片。
首先是原始图片。
然后是在屏幕上的渲染效果。
如您所见,原始图片中所有都是漂亮的黄色,边缘有些透明度以显得更加平滑。但是当我进行渲染时,会出现一些变暗的像素点。
为了避免我通常得到的答案,我使用了:
首先是原始图片。
然后是在屏幕上的渲染效果。
如您所见,原始图片中所有都是漂亮的黄色,边缘有些透明度以显得更加平滑。但是当我进行渲染时,会出现一些变暗的像素点。
为了避免我通常得到的答案,我使用了:
gl.glTexImage2D(GL10.GL_TEXTURE_2D, level, GL10.GL_RGBA, width, height, 0, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixelBuffer);
而不是glutil工具
此外
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
有人有解决方法吗?
谢谢。
Jason
编辑
我做了一些调查。在原始图像中,我的背景颜色已经与硬币的颜色相同,并且我使用了一个alpha掩码。我也检查过,当我加载位图时,似乎所有alpha为0的位图都会自动设置为0,0,0,0。这可能是问题所在。
编辑
实际上,这似乎是个问题。我检查了我打开的位图的值,透明像素的值为0,0,0,0,而不是我设置的颜色。这是位图的问题还是我创建图像的问题?
// Load up, and flip the texture:
Bitmap temp = BitmapFactory.decodeResource(context.getResources(), resource, opts);
Bitmap bmp = Bitmap.createBitmap(temp, 0, 0, temp.getWidth(), temp.getHeight(), flip, true);
temp.recycle();