SceneKit 或 ARKit 的动态纹理 API

Dynamic texturing API for SceneKit or ARKit

是否可以使用 ARKit/SceneKit 以编程方式即时对 DAE/SCN 模型进行纹理处理?

用例是:我将有 1 个模型,我想 "skin" 可能有数千个相似但不同的纹理。我可以:

这种动态纹理功能是否可行?如果是这样,如何?如果不是,那么为什么(好奇!)?

是的,您当然可以通过编程更改模型的纹理。只需将纹理图像分配给分配给几何体的 SCNMaterial 的 .diffuse.contents 属性。 IE。 yourModel.firstMaterial.diffuse.contents = someImage

此外,“相似但不同”的纹理听起来像是着色器的工作。使用 scenekit shaderModifiers,您可以使用 GPU 的处理能力实时修改纹理图像,具有无限的可能性。

是的,在运行时更改 3D 对象的纹理图像是几乎所有高级 3D 引擎(包括 SceneKit)的基本功能。

总之,找到你要改变的material,将它的diffuse.contents设置为你要使用的贴图

为了更透彻地理解,请阅读 SceneKit documentation, or go back to the WWDC videos from 2013 and 2014 中介绍 SceneKit 基础知识的 material。