将SCNProgram与Metal一起使用时,我们如何将纹理传递给片段着色器?我们使用SCNProgram的handleBindingOfBufferNamed吗?如果是这样,有人可以举例说明如何?谢谢,
答案 0 :(得分:2)
最简单的方法是使用SCNMaterialProperty
。在设置自定义程序对象的同一SCNMaterial
上,可以使用键值编码按参数名称设置片段纹理的值:
[material setProgram:program];
SCNMaterialProperty *materialProperty = [SCNMaterialProperty materialPropertyWithContents:image];
[material setValue:materialProperty forKey:@"fragmentTextureName"];
image
可以是NSImage
或UIImage
,具体取决于您的平台。图像将作为纹理与相应的参数名称绑定,您可以在自定义片段函数中读取或采样。