我想提请您注意以下图片
首先是原图
那么它是如何在屏幕上呈现的
正如你在原版上看到的那样,一切都很好,呈黄色,边缘有轻微的透明度,看起来很光滑。
但是当我渲染时,会出现一些变暗的像素。
为了避免我得到的通常答案
我用
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);
有人有解决方案吗?
谢谢
杰森
编辑
我做了一些挖掘。在原始图像中,我的背景已经与硬币颜色相同,并且我使用了 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();