强制SCNView使用OpenGL

时间:2015-08-26 12:28:47

标签: macos opengl scenekit metal

使用Xcode 7并创建一个新的SceneKit OS X项目时,似乎默认使用Metal作为SCNView。

如果我在Xcode 7中创建一个新游戏项目后尝试这样做:

var context = gameView.context

结果是零。视图使用的是Metal而不是OpenGL。

但是,在Xcode 6.4中创建相同的内容,上下文就像预期的那样存在。

如何强制我的SCNView使用OpenGL而非Metal?

2 个答案:

答案 0 :(得分:1)

创建SCNView时,您可以选择在初始化器中设置渲染器:

https://developer.apple.com/library/prerelease/ios/documentation/SceneKit/Reference/SCNView_Class/index.html#//apple_ref/occ/instm/SCNView/initWithFrame:options

这些是您可用的选项,Metal或OpenGL ES 2.0(3.0可能会在以后出现):

https://developer.apple.com/library/prerelease/ios/documentation/SceneKit/Reference/SCNSceneRenderer_Protocol/index.html#//apple_ref/c/tdef/SCNRenderingAPI

因此设置为SCNRenderingAPIOpenGLES2将为您提供所需的强制OpenGL ES 2.0呈现的SceneKit View

答案 1 :(得分:0)

您可以使用下面的代码轻松实现

let scnView = SCNView(frame: .zero, options: [SCNView.Option.preferredRenderingAPI.rawValue : NSNumber(value: SCNRenderingAPI.openGLES2.rawValue)])