使用iOS9的SceneKit中的新过滤器功能有点令人头疼。为了尽可能简化案例,如果我添加以下行:
ship.filters = [CIFilter(name: "CIPixellate", withInputParameters: [kCIInputScaleKey: 30])!]
对于默认的SceneKit项目,构建并运行模拟器,船舶按预期进行像素化。如果我在设备上构建并运行相同的项目,则该船将消失。我已经尝试了各种排列,多个设备,甚至博客帖子上的几个SceneKit演示,它们都有同样的问题。我不确定我错过了什么。
答案 0 :(得分:1)
使用Metal时,SceneKit不支持CIFilter(这是设备上的默认设置)。请参阅SCNNode / filters文档。
如果您需要CIFilter,您必须显式请求基于GL的渲染器(使用InterfaceBuilder或SCNView的“renderingAPI”属性)。