iphone - OpenGL,具有不透明度且没有可见重叠的图元

标签 iphone opengl-es cocos2d-iphone

我正在尝试使用 Cocos2d 在 OpenGL ES 中绘制半透​​明图元(直线、圆形),但无法避免可见的重叠区域。有谁知道如何解决这个问题吗?

Desired vs unwanted results

最佳答案

这是您经常遇到的问题,即使在 3D 环境中也是如此。

我对 Cocos2D 不太熟悉,但在通用 OpenGL 中解决此问题的一种方法是用所需的 Alpha channel 填充帧缓冲区,将混合模式切换为 glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA)并绘制矩形。这背后的想法是,您绘制一个具有所需透明度的矩形,该透明度取自帧缓冲区,但在进度中屏蔽您所绘制的区域,以便后续的矩形将被屏蔽在那里。

另一种方法是将整个事物渲染为纹理或使用不重叠的多边形组装形状。

我不确定 Cocos2D 是否支持其中任何一个......

关于iphone - OpenGL,具有不透明度且没有可见重叠的图元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972338/

相关文章:

iphone - Cocos2d 删除所有带有标签的Children

iphone - 我如何在 ViewController 中使用 appDelegate 中声明的字符串?

ios - 如何在 IB 中使用带有 XIB 的 UIContainerView?

ios - 如何将静态 UIButton 覆盖在 UITableView 上

ios - Metal或OpenGLES中的片段着色器中的共享变量

iphone - cocos2d 和 box2d : sprite touch not get properly

iphone - Cocos2d 调度间隔减少器

iphone - 如何从应用程序发送短信/电子邮件

graphics - OpenGL ES - 是否可以在 VBO 上执行转换(缩放、平移、旋转)

android - OpenGL (ES) -- 截锥体和正视体有什么区别?