在我正在处理的Cocos3d应用程序中,我在CC3Layer中添加了几个sprite。这些精灵在3d内容后面呈现,每次触摸屏幕时,2D内容都会闪烁。我试过开启CC3Scene上的prorpety,self.shouldClearDepthBuffer = YES;并在同一CC3Scene中告诉导演setDepthTest [[CCDirector sharedDirector] setDepthTest:YES] ;.但是没有办法,它仍然闪烁,并且在Ipod touch 4等旧设备中的效果更明显。我已经放弃使用CC3BillBoards,因为它不能满足应用程序的需求。但是,如果内容呈现为覆盖3d内容,则触摸发生时不会发生闪烁。有没有人经历过这样的事情?有办法解决吗? 谢谢。 卡洛斯。
答案 0 :(得分:0)
如果您只想在背景中使用一堆纹理矩形,则只需使用populateAsCenteredRectangleWithSize:
或CC3MeshNode
上的类似方法创建它们即可。了解addGround
中的CC3DemoMashUpScene
方法如何创建基础。
尽量避免使用CC3Billboards
。 CC3Billboards
用于存放 cocos2d sprite或2D粒子生成器。除非您已经拥有必须在3D场景中使用的2D精灵或粒子生成器,否则您应该直接在3D世界中创建网格 更多 更高效,因为在2D和3D渲染之间来回切换会产生开销。
你的相机是移动还是静止?
如果您需要这些背景图像来跟踪摄像机,您可以在每个图像上使用asCameraTrackingWrapper
,或者只需将摄像机设置为图像矩形节点的目标,并将shouldTrackTarget
属性设置为YES
。