Cocos3D - 在后台截取各种截图

时间:2014-12-18 12:02:09

标签: cocos3d

使用Cocos3D,是否可以在用户不知情的情况下在后台截取3D模型?

出于预处理目的和其他用途,我想以各种角度拍摄3D模型的屏幕截图。在Render-To-Texture功能之后,我注意到当我的场景不可见时,drawSceneContentWithVisitor:方法只执行一次而不是在每个渲染周期。由于显而易见的原因,CC3GLFramebuffer*不会使用新数据进行更新,因此,我只能拍摄初始屏幕截图。

感谢。

1 个答案:

答案 0 :(得分:0)

Cocos3D 中,您可以将3D场景渲染到离屏曲面。有关如何执行此操作的示例,请参阅CC3DemoMashUp addTelevisiondrawSceneContentWithVisitor:方法。

重要的是在执行绘图时已经建立了3D绘图环境。最安全的地方是drawSceneContentWithVisitor:方法。但是如果要在其他地方渲染,则需要在渲染之前和之后调用CC3Scene open3DWithVisitor:CC3Scene close3DWithVisitor:方法。有关如何执行此操作的示例,请参阅CC3Scene processInitializeSceneopen方法的实现。

要从多个视点渲染场景,您需要在场景中添加多个摄影机,并在绘制前适当设置绘图访问者的camera属性以选择摄影机。了解如何在CC3DemoMashUpScene addTelevisiondrawToTVScreen方法中完成此操作。 drawToTVScreen方法还显示了如何处理清除曲面的颜色和深度缓冲区。