强制 SCNView 使用 OpenGL
Force SCNView to use OpenGL
当使用 Xcode 7 并创建一个新的 SceneKit OS X 项目时,似乎默认使用 Metal 作为 SCNView。
如果我在 Xcode 7:
中创建一个新的游戏项目后尝试这样做
var 上下文 = gameView.context
结果为零。该视图使用的是 Metal 而不是 OpenGL。
然而,在 Xcode 6.4 中创建相同的内容,上下文如预期的那样存在。
如何强制我的 SCNView 使用 OpenGL 而不是 Metal?
创建 SCNView 时,您可以选择在初始化程序中设置渲染器:
这些是您可用的选项,Metal 或 OpenGL ES 2.0(3.0 可能会稍后推出):
所以设置为 SCNRenderingAPIOpenGLES2 将得到你想要的,强制 OpenGL ES 2.0 渲染的 SceneKit 视图
您可以使用下面的代码轻松完成
let scnView = SCNView(frame: .zero, options: [SCNView.Option.preferredRenderingAPI.rawValue : NSNumber(value: SCNRenderingAPI.openGLES2.rawValue)])
当使用 Xcode 7 并创建一个新的 SceneKit OS X 项目时,似乎默认使用 Metal 作为 SCNView。
如果我在 Xcode 7:
中创建一个新的游戏项目后尝试这样做var 上下文 = gameView.context
结果为零。该视图使用的是 Metal 而不是 OpenGL。
然而,在 Xcode 6.4 中创建相同的内容,上下文如预期的那样存在。
如何强制我的 SCNView 使用 OpenGL 而不是 Metal?
创建 SCNView 时,您可以选择在初始化程序中设置渲染器:
这些是您可用的选项,Metal 或 OpenGL ES 2.0(3.0 可能会稍后推出):
所以设置为 SCNRenderingAPIOpenGLES2 将得到你想要的,强制 OpenGL ES 2.0 渲染的 SceneKit 视图
您可以使用下面的代码轻松完成
let scnView = SCNView(frame: .zero, options: [SCNView.Option.preferredRenderingAPI.rawValue : NSNumber(value: SCNRenderingAPI.openGLES2.rawValue)])