【问题标题】:How to pass texture to Metal's fragment shader with SCNProgram?如何使用 SCNProgram 将纹理传递给 Metal 的片段着色器?
【发布时间】:2016-05-08 13:27:20
【问题描述】:

在使用 SCNProgram 和 Metal 时,我们如何将纹理传递给片段着色器?我们使用 SCNProgram 的 handleBindingOfBufferNamed 吗?如果是这样,有人可以提供一个例子吗?谢谢,

【问题讨论】:

    标签: scenekit metal


    【解决方案1】:

    最简单的方法是使用SCNMaterialProperty。在您设置自定义程序对象的同一SCNMaterial 上,您可以使用键值编码通过参数名称为片段纹理设置值:

    [material setProgram:program];
    
    SCNMaterialProperty *materialProperty = [SCNMaterialProperty materialPropertyWithContents:image];
    [material setValue:materialProperty forKey:@"fragmentTextureName"];
    

    image 可以是 NSImage 或 UIImage,具体取决于您的平台。图像将绑定为具有相应参数名称的纹理,您可以在自定义片段函数中对其进行读取或采样。

    【讨论】:

    • 您能否提供一个简短的 sn-p 说明如何在片段着色器中使用 fragmentTextureName?
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2018-05-24
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多