Cocos2d:CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵?

2024-05-04

CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵?

或者它也考虑屏幕尺寸?换句话说。如果节点内的精灵位于屏幕之外,opengl 绘制调用的性能是否会反映这一点?


不,不。

CCSpriteBatchNode 始终绘制所有子精灵。我不确定到底是什么使可见 = NO 的精灵不出现在屏幕上,但从技术上讲,它每次都会绘制所有四边形。它还没有考虑屏幕区域。

未批量处理的精灵的行为有所不同。如果非批处理精灵不可见,则根本不会绘制它。然而,屏幕外的精灵会被绘制。 Cocos2D 没有跳过屏幕/窗口边界之外的节点绘制的功能。

以下是我过去几年读到的道听途说,因此请持保留态度:

太多的批处理精灵仍然会对性能产生负面影响,即使它们不可见或在屏幕之外。 GPU 负责取消由于完全位于屏幕之外而不可见的四边形的绘制。它仍然需要处理这些四边形。

这是cocos2d的tilemap实现的主要问题,也是为什么它在处理大tilemap时如此缓慢。内部图块地图也使用相同的精灵批处理技术。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cocos2d:CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵? 的相关文章

  • 如何将文本渲染为位图并绘制它

    我是 android 新手 我的小组目前正在使用 opengl es 2 0 使用 GlSurfaceView 创建图形应用程序 我们最近在绘图上显示了网格和刻度线 现在我被分配了实现数字刻度并将 x 和 y 轴标记为 X 和 Y 的任务
  • iPhone 的精灵表生成器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 到目前为止 我一直在制作自己的 1024 1024 精灵表 将图像放置在 64 x 64 网格中 以帮助轻松识别每个精灵的位置和大小 不用
  • 如何找到 OpenGL es 2.0 顶点着色器专业版中所有制服的列表

    我正在尝试学习如何对顶点着色器进行编程 在苹果的示例项目中 他们有一行来设置 glUniform1f uniforms UNIFORM TRANSLATE Glfloat transY 然后这个值被用在 value passt in f g
  • 执行eglSwapBuffer和eglMakeCurrent时性能低下

    我正在开发一个 Android Unity 插件 允许用户记录他 她的游戏玩法我的解决方案概述 使用 OpenGl FrameBufferObject FBO 使 Unity 离屏渲染到此 FBO Get the offscreen tex
  • Java嵌套内部类访问外部类变量

    嵌套内部类ABar和BBar是否可以访问主类的变量 例如 public class Foo public ABar abar new ABar public BBar bbar new BBar public int someCounter
  • android OpenGL ES简单图块生成器性能问题

    遵循这个问题 老式 2D 类似塞尔达传说游戏的最佳方法 https stackoverflow com questions 2125354 best approach for oldschool 2d zelda like game 感谢之
  • 如何处理 OpenGL ES 2.0 着色器中的 NaN 或 inf

    这是基于以下问题 在 OpenGL 着色器中检测 NaN 的最佳方法 https stackoverflow com questions 9446888 best way to detect nans in opengl shaders标准
  • 如何更改 OpenGL 中的旋转中心

    我有一个 3D 模型 OpenGL ES 1 1 iPhone SDK v3 0 这有点复杂 即数千个顶点和面 并且我想围绕模型中心或附近的 Y 轴旋转该模型 问题是 glRotate 围绕位于 附近的点旋转我的模型其底边之一的中心 不靠近
  • NSMutableArray 根本不工作

    我正在尝试将精灵添加到NSMutableArray但它没有添加它们 这就是我所拥有的 NSMutableArray tail CCSprite block int j void handleTail CCSprite pos CGPoint
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • 来自 gluUnProject 的 IllegalArgumentException

    我收到此错误消息 08 30 19 20 17 774 ERROR AndroidRuntime 4681 FATAL EXCEPTION GLThread 9 08 30 19 20 17 774 ERROR AndroidRuntime
  • 如何检测android中某个渲染器区域内的触摸事件?

    在android中我举了一个旋转球体的例子在这里给出 https bitbucket org jimcornmell opengltexturedsphere 它创建了一个简单的应用程序 显示一个旋转球体 地球 现在 如果在手机显示屏上按下
  • 在 Libgdx 中实现简单运动模糊的意外结果

    在所附的两张图片中 libgdx 的桌面屏幕截图按预期运行 不幸的是 我的 Galaxy Nexus 的屏幕截图与预期不符 我正在尝试创建一个简单的运动模糊或轨迹效果 Rendering as I expected on my deskto
  • WebGL:enablevertexattribarray索引超出范围

    这是我的顶点和片段着色器
  • 渲染脚本渲染在Android上比OpenGL渲染慢很多

    背景 我想根据Android相机应用程序的代码添加实时滤镜 但Android相机应用程序的架构是基于OpenGL ES 1 x 我需要使用着色器来自定义我们的过滤器实现 然而 将相机应用程序更新到OpenGL ES 2 0太困难了 然后我必
  • 重用cocos2d动作

    是否可以 并且是一个好的实践 为使用相同操作的多个 CCSprite 重用相同的操作 因为如果我有 10 个 CCSprite 所有这些都需要缩放 我创建了一个名为scaleAction 的缩放操作 是否可以对精灵重复使用相同的动作 当我尝
  • 开发iPhone游戏需要什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • LibGDX - 着色器适用于桌面但不适用于 Android

    我编写了一个简单的程序 可以在 3D 环境中渲染球体 并根据球体周围的四个光源为其着色 当我在桌面上运行该程序时 它工作得很好 但在 Android 设备上 球体只是纯色的 下面是一些图片来说明我正在谈论的内容 gt Desktop gt
  • 有没有任何工具可以将 PVR 纹理分割成一组图块?

    我有一张大的 png 纹理 4096x4096 我需要将其部分加载到内存中 我已经将大 png 纹理分割成 16 个 1024x1024 块 然后将它们转换为 PVR 压缩文件 问题是 当我绘制这些图块时 图块之间的边缘与 png 的边缘不
  • presentRenderbuffer :GL_RENDERBUFFER_OES 需要很长时间

    我在游戏中添加了一个分析器并隔离了此功能 有时 它会导致 FPS 下降 这是我的结果 Present buffer time 22 Present buffer time 1 Present buffer time 9 Present bu

随机推荐