Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用金属顶点和碎片着色器将MTLTexture传递到SCNProgram_Ios_Swift_Scenekit_Metal - Fatal编程技术网

Ios 使用金属顶点和碎片着色器将MTLTexture传递到SCNProgram

Ios 使用金属顶点和碎片着色器将MTLTexture传递到SCNProgram,ios,swift,scenekit,metal,Ios,Swift,Scenekit,Metal,我有一个图像阵列,我必须根据顶点随机选取一个图像,用金属我可以实现这个MTLTexture2DArray 但我使用的是SceneKit和自定义SCNProgram,问题是我无法将MTLTexture传递给Metal fragment函数 如果我将图像设置为“SCN材质”,它会工作,如果我设置了金属纹理,它会引发异常 let material = SCNMaterial() material.program = program material.setValue(metalTexture, for

我有一个图像阵列,我必须根据顶点随机选取一个图像,用金属我可以实现这个MTLTexture2DArray

但我使用的是SceneKit和自定义SCNProgram,问题是我无法将MTLTexture传递给Metal fragment函数

如果我将图像设置为“SCN材质”,它会工作,如果我设置了金属纹理,它会引发异常

let material = SCNMaterial()
material.program = program
material.setValue(metalTexture, forKey: "customTexture")
这个问题和这个问题完全一样

但它使用着色器修改器,这里我使用自定义着色器


是否可以将金属的texture2d数组传递给自定义SCN程序,或者是否有其他方法将图像数组传递给SCN程序中的着色器函数?

将金属纹理包裹在
SCN材质属性
对象中即可

let imageProperty = SCNMaterialProperty(contents: metalTexture)
material.setValue(imageProperty, forKey: "customTexture")

非常有用,也适用于立方体贴图纹理