我想让我的点精灵显示正确的不透明度。在Android上使用OpenGL ES 2.0的雪碧不透明度
最初,我在一个黑色的正方形上得到了我的精灵纹理。
所以,我增加了以下我的片段着色器:
"if(color.a < 0.5) "+
"discard;"+
现在,这似乎工作,在我的精灵显示没有黑色的背景,但是,我的质地本身是“部分透明” - 并没有表现出这种局部透明度,它显得坚实。这有点难以解释,但我希望你明白我的意思。如果我使用canvas/surfaceview绘制相同的纹理,它将正确显示。
基本上我试图让我的纹理以原始格式显示(即他们在创建它们的软件中 - 即Gimp/photoshop等)。
希望得到任何帮助 - 感谢
谢谢@Jave,我用你的建议,我已经删除了碎片着色器的丢弃部分,虽然现在没有黑盒,但它看起来不正确 - 纹理现在是'透明',但有它周围的黑色轮廓和图像是比它应该更沉闷 - (太透明??)将不胜感激,如果您有任何其他建议 - 谢谢 – Zippy 2013-03-22 12:55:31
我想通了 - 我需要使用GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);连同你的建议 - 谢谢你指出我在正确的方向! – Zippy 2013-03-22 13:44:41
是的,我忘了这一步,但更新了我的答案:) – Jave 2013-03-22 14:18:07