我正在尝试使用纹理来修改SCNPlane的顶点数据。根据文档和WWDC 2013幻灯片,只需在平面或材质上使用-setValue:forKey:提供SCNMaterialProperty。这非常有效,但前提是材质属性的-contents设置为图像文件的字符串/ URL或NSImage对象本身。我得到了适当变形的网格(我将网格的Z值设置为输入纹理的R通道)。
我正在尝试使用自己的纹理数据,这最初是从AVFoundation生成的,并在CPU上完成了一些图像处理。我试图将它作为SKTexture提供,使用GLKTextureLoader构建MDLTexture对象(以及它需要的所有各种类),甚至将数据强制转换为GLKTextureInfo。使用NSImage加载图像,然后提取NSBitmapImageRep并从中填充各种纹理类也不起作用。金属不是一种选择,因为我不需要在任何需要工作的地方拥有最新的硬件。
将纹理数据导入SceneKit着色器修改器的最佳方法是什么?它适用于磁盘上的图像这一事实告诉我,我错过了一些东西,但我无法确定是什么。 class-dump没有提出我需要调用的任何直接明显的方法。
非常感谢!