【发布时间】:2018-04-21 15:42:25
【问题描述】:
试图弄清楚如何解决将着色器应用于我的 ARSCNView 的问题。 以前,当使用标准 SCNView 时,我已经能够通过以下方式成功应用失真着色器:
if let path = Bundle.main.path(forResource: "art.scnassets/distortion", ofType: "plist") {
if let dict = NSDictionary(contentsOfFile: path) {
let technique = SCNTechnique(dictionary: dict as! [String : AnyObject])
scnView.technique = technique
}
}
用 ARSCNView 替换 SCNView 会出现以下错误:
“错误:Metal 渲染器不支持零顶点函数名”
“错误:_executeProgram - 无管道状态”
我在想这是因为 ARSCNView 使用了与 SCNView 不同的渲染器。但是记录 ARSCNView.renderingAPI 并没有告诉我有关渲染器的任何信息,而且当我构建我的 ARSCNView 实例时,我似乎无法选择一个。我一定遗漏了一些明显的东西,因为在网上搜索参考资料时我似乎找不到单一资源。
我最初的想法是使用 SCNProgram 来应用着色器。但我找不到任何关于如何将其应用于 ARSCNView 的资源,或者如果它甚至是正确/可能的解决方案,SCNProgram 似乎是为材料保留的。
谁能给我任何有用的指导,告诉我如何解决 ARSCNView 的顶点+片段着色器?
【问题讨论】:
标签: ios swift opengl-es scenekit arkit