我正在制作一个场景工具包应用程序,并且确实可以很好地工作。我唯一的烦恼是加载后的一秒钟内,我的SCNView对象完全空白。我认为这是因为场景尚未加载或渲染,但我想尽可能避免它。
我尝试将模仿应用程序加载屏幕的蒙版视图放置在SCNView前面,并在开始使用renderer:didRenderScene:atTime渲染后将其淡出,但可惜的是,没有发生用于淡出蒙版视图的动画(它会立即闪烁而不是淡出)。因此,作为实验,我将遮罩视图放在了应用程序的主窗口中,并给了它短暂的延迟。但是,即使在删除该遮罩之前存在延迟,SCNView在场景出现之前的一瞬间仍然还是完全空白。
谁能告诉我如何避免这种烦人的图形伪像?
最佳答案
像往常一样,有一个简单的修复程序,直到现在我还是找不到。场景完全设置好后,只需执行以下操作:
sceneView.prepareObject(scene, shouldAbortBlock:nil)
...还有宾果游戏!没有延迟这是因为场景像SCNView中的所有对象一样被延迟加载的缘故。调用prepareObject可让您提前缓存它们。
关于ios - 使用SceneKit避免简短的“空屏幕”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32138550/