Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 SceneKit或ARKit的动态纹理API_Ios_Swift_Textures_Scenekit_Arkit - Fatal编程技术网

Ios SceneKit或ARKit的动态纹理API

Ios SceneKit或ARKit的动态纹理API,ios,swift,textures,scenekit,arkit,Ios,Swift,Textures,Scenekit,Arkit,ARKit/SceneKit是否可以通过编程方式动态地对DAE/SCN模型进行纹理处理 用例是:我将有一个模型,我想“皮肤”与潜在的数千个相似但不同的纹理。我可以: 提前对模型进行纹理处理,并强制我的应用程序或我的后端托管数千个庞大的纹理模型文件(它们都使用相同的较重3D模型/网格文件,并且每个文件都与不同的较轻2D纹理文件相结合);或 允许我的应用程序/后端附带1个沉重/笨重的3D网格/模型文件和数千个较轻的2D纹理文件,然后使用一些SceneKit/ARKit API动态地将正确的纹理应用

ARKit/SceneKit是否可以通过编程方式动态地对DAE/SCN模型进行纹理处理

用例是:我将有一个模型,我想“皮肤”与潜在的数千个相似但不同的纹理。我可以:

  • 提前对模型进行纹理处理,并强制我的应用程序或我的后端托管数千个庞大的纹理模型文件(它们都使用相同的较重3D模型/网格文件,并且每个文件都与不同的较轻2D纹理文件相结合);或
  • 允许我的应用程序/后端附带1个沉重/笨重的3D网格/模型文件和数千个较轻的2D纹理文件,然后使用一些SceneKit/ARKit API动态地将正确的纹理应用于内存中的模型

这种动态纹理能力可能吗?如果是,怎么做?如果没有,那么为什么(奇怪!)?是的,当然可以通过编程更改模型的纹理。只需将纹理图像指定给指定给几何体的SCN材质的.diffuse.contents属性。例如,yourModel.firstMaterial.diffuse.contents=someImage


此外,“相似但不同”的纹理听起来像是着色器的工作。使用scenekit ShaderModifier,您可以使用GPU的处理能力动态修改纹理图像,可能性无穷。

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

简而言之,找到要更改的材质,并将其
漫反射设置为要使用的纹理图像

要获得更透彻的理解,请阅读中的资料,或返回和中介绍SceneKit基础知识的WWDC视频