moo*_*cle 7 iphone alphablending opengl-es
我正在开发iPhone游戏.我有下面的源图像将其绘制到背景.源图像具有alpha 0x00和边缘周围的渐变,背景的alpha为0xff.当我将源图像绘制到背景时,我会看到黑色,就像您可以看到结果图像一样.我正在使用OpenGL ES glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)方法.我已经改变了所有可能的论点,但每次都没有被移动.
为什么我在源图像的边缘有黑色?问题是什么?iPhone中的每个游戏都不会使用渐变吗?
我是否需要制作渐变的源图像?
有谁知道解决方案?
来源图片:

结果图片:

det*_*zed 14
你的图像是否预先乘以alpha?然后你应该使用
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)
以下是对它的解释.
注意:我做了一些研究后重写了答案.所提到的文章rotoglup对正在发生的事情有一些了解,它比我原来的公式更有意义.我还试着看看其他人在他们的代码中使用了什么,看起来这个公式是最常用的.令人惊讶的是,像3D混合这样的3D图形这样的基本功能可能会引起争议,每个人似乎都在重新发明轮子并提出自己的解决方案.
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |