使用Cocos3D,是否可以在用户不知情的情况下在后台截取3D模型?
出于预处理目的和其他用途,我想以各种角度拍摄3D模型的屏幕截图。在Render-To-Texture功能之后,我注意到当我的场景不可见时,drawSceneContentWithVisitor:
方法只执行一次而不是在每个渲染周期。由于显而易见的原因,CC3GLFramebuffer*
不会使用新数据进行更新,因此,我只能拍摄初始屏幕截图。
感谢。
答案 0 :(得分:0)
在 Cocos3D 中,您可以将3D场景渲染到离屏曲面。有关如何执行此操作的示例,请参阅CC3DemoMashUp addTelevision
和drawSceneContentWithVisitor:
方法。
重要的是在执行绘图时已经建立了3D绘图环境。最安全的地方是drawSceneContentWithVisitor:
方法。但是如果要在其他地方渲染,则需要在渲染之前和之后调用CC3Scene open3DWithVisitor:
和CC3Scene close3DWithVisitor:
方法。有关如何执行此操作的示例,请参阅CC3Scene processInitializeScene
和open
方法的实现。
要从多个视点渲染场景,您需要在场景中添加多个摄影机,并在绘制前适当设置绘图访问者的camera
属性以选择摄影机。了解如何在CC3DemoMashUpScene addTelevision
和drawToTVScreen
方法中完成此操作。 drawToTVScreen
方法还显示了如何处理清除曲面的颜色和深度缓冲区。