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