我正在尝试使用 Google-VR iOS SDK。我有一个非常简单的 SceneKit 场景,其中包含一个纹理对象。这是使用 SCNRenderer 在 GVRCardboardViewDelegate drawEye 方法中呈现的。当 GVRCardboardView 上的 vrModeEnabled 设置为 false 时,对象会正确渲染,但设置为 true 时,纹理不会正确应用。见下图。
经过更多调查,我发现从 SceneKit .scn 文件加载包含纹理对象的场景可以正常工作。使用 ModelIO 将 OBJ 文件(以及它的 .mtl 文件和 jpg 纹理)加载到 SCNNode 时会出现问题,如下所示:
let stageURL = NSBundle.mainBundle().URLForResource("newStage", withExtension: "obj", subdirectory: "Art.scnassets")
let stageAsset = MDLAsset(URL: stageURL)
let stageObject = asset.objectAtIndex(0)
let stage = SCNNode(MDLObject: stageObject)
scene.addChildNode(stage)
看起来这可能是一个 OpenGL 状态问题(也可能是 ModelIO 中的一个错误),但我一直无法找到解决方案或解决方法。有什么建议么?