【问题标题】:How can I speed up clipping CCSprite如何加快剪切 CCSprite
【发布时间】:2014-05-29 14:38:14
【问题描述】:

剪辑精灵的最佳方法是什么? 我使用 CCClippingNode 但它在 iPhone4 上太慢了.. 也许有办法做到这一点?使用模板缓冲区还是使用着色器?

我有一些 CCRenderTexture,我想用 CCSprite 剪辑它,那里没有 alpha 我不希望有一个可见的像素,而且我可能有 5-6 个这样的节点,它在 iPhone 上太慢了4 和一些安卓设备..

【问题讨论】:

  • 你也把它发到了 Cocos2d-x 论坛。着色器可以工作。
  • 剪辑在什么意义上?我认为这不是每个顶点剪辑?这些总是最快的,任何涉及着色器或模板缓冲区的东西都将是每个片段的,因为 iPhone 无法实现几何着色器。
  • 我有一些 CCRenderTexture,我想用 CCSprite 剪辑它,那里没有 alpha 我不希望有一个像素可见
  • 在这种情况下,着色器将是最简单的方法。测试纹理的alpha值,如果是discard。

标签: c++ opengl cocos2d-x


【解决方案1】:

激活模板:

EAGLView *__glView = [EAGLView viewWithFrame: [window bounds]
                                 pixelFormat: kEAGLColorFormatRGBA8
                                 depthFormat: GL_DEPTH24_STENCIL8_OES
                          preserveBackbuffer: NO
                                  sharegroup: nil
                               multiSampling: NO
                             numberOfSamples: 0];

见:http://www.cocos2d-x.org/forums/6/topics/20141

【讨论】:

  • 他还需要做glStencilFunc(GL_EQUAL, 1, 0xFF);glStencilMask(0x00); 之类的事情吗?
  • 是的,我已经用 CCClippingNode 完成了,但是当你有太多精灵时它太慢了。我有一些 CCRenderTexture,我想用 CCSprite 剪辑它,没有 alpha 我没有希望有一个可见的像素,一次我可能有 5-6 个这样的节点,而且在 iPhone 4 和一些 android 设备上太慢了..
猜你喜欢
  • 2013-01-25
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 2014-09-12
  • 1970-01-01
相关资源
最近更新 更多