Yur*_*riy 7 android blending opengl-es
我有下一个过程:
- draw background
- draw objects and blend with background (1)GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA
- draw particle effect with blending (2)GL10.GL_SRC_ALPHA, GL10.GL_ONE in order to highlight overlapping particles
Run Code Online (Sandbox Code Playgroud)
问题 - 当我绘制粒子时,它们还与背景混合并变得非常明亮.
我只需要将颗粒与(2)混合在一起,然后使用(1)与背景混合.
不工作解决方案:
这是显示差异的屏幕.在正确的期望结果上,左侧粒子与背景混合.
IMG:

我将不胜感激任何帮助......
最新更新: 我能够得到我想要的颜色......但是......(似乎这种方式会让我无处可去)我渲染了alpha = 0的背景,而不是使用GL11Ext的混合函数:glBlendFuncSeparate(GL10.GL_SRC_ALPHA, GL10.GL_DST_ALPHA,GL10.GL_ONE,GL10.GL_ONE);
GL10.GL_SRC_ALPHA,GL10.GL_DST_ALPHA - 颜色只有在有alpha时才会混合(bg现在没有)
GL10.GL_ONE,GL10.GL_ONE - 对于所有书写粒子,alpha设置为最大值以模拟添加剂混合

它可以很好地工作,你可以看到...除了黑色填充区域,其中粒子图像具有alpha 0 ..并且有什么不好,结果图像中黑色有alpha 1所以我无法以任何方式替换它...
EDIT_2 简单的一般问题:我需要绘制一个红色(0xff0000)发光(添加混合)效果.在黑色背景上它是好的,但如果我采取绿色(0x00ff00)比结果颜色将接近0xffff00
有任何想法吗?
小智 3
GL10.GL_SRC_ALPHA、GL10.GL_ONE 为了突出显示重叠的粒子
除了添加混合之外,没有其他方法可以避免对颗粒进行分类。如果您仍然想坚持这样做以避免粒子重叠,我建议您在渲染中注入出血控件,以便可以降低渲染粒子的亮度,或者可以降低粒子纹理的亮度。
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |