问题:
是否有一种方法不仅可以将着色器修改器应用于特定的SCNMaterial
或SCNGeometry
(因为这是唯一采用SCNShadable
协议的类),还可以应用于一组SCNNodes
,例如到选定一个子节点的所有子节点?
问题我正在尝试解决:
我有着色器代码,该着色器代码通过对统一参数进行计算来裁剪(discard
片段)几何。实际上,它可以按轴坐标或均匀传递的随机“盒”体来裁剪模型。
在SceneKit
中找不到有关裁剪模型的任何信息,因此我决定坚持使用着色器。将着色器修改器应用于每个节点似乎不正确。但是,它确实可以在模拟器上运行,但不能在实际设备上运行,因为它超出了资源限制。我也尝试过SCNTechnique
,但是我发现它似乎适合于后处理,而不是处理片段渲染。
将着色器修改器应用于场景的rootNode
将是恕我直言的一种方法,但我不确定是否可行。
我是否错过了一些在SceneKit中使用着色器的东西?还是有更好的方法来执行参数几何裁剪?