gpt4 book ai didi

ios - 将 .jpg 和 .mtl 文件应用于 SceneKit 中的 .obj 文件

转载 作者:可可西里 更新时间:2023-11-01 03:31:31 36 4
gpt4 key购买 nike

设计者交付了三个文件:

  • 图片.jpg
  • 某事。mtl
  • 随便。obj

我可以像这样成功地将 .obj 文件加载到我的场景中:

  SCNView * sceneView = [SCNView new];
sceneView.frame = view.bounds;
[view addSubview:sceneView];

SCNScene * scene = [SCNScene sceneNamed:@"models.scnassets/whatever.obj"];
[sceneView setScene:scene];

我遇到的困难是将 .jpg 和 .mtl 文件应用到 .obj 文件。我试过使用以下代码应用图像,但没有爱:

SCNMaterial * material = [SCNMaterial material];
material.diffuse.contents = [UIImage imageNamed:@"image.jpg"];

SCNNode * materialNode = [SCNNode node];
materialNode.geometry.firstMaterial = material;
[scene.rootNode addChildNode:materialNode];

最佳答案

您好@Johnny 有多种方法可以在 .obj 文件上应用纹理文件。

  1. 如果你想加载一些具有出色自定义的 .obj 文件,你可以在 Xcode 中打开 .obj 文件并应用纹理(漫反射贴图、法线贴图等,环境和灯光相机),然后 .obj 文件将转换为 .obj 文件。在 SCNView 中使用的 scn 文件。

  2. 如果您想在 .obj 或 .scn 文件的特定节点上动态应用纹理/更改纹理,您可以使用模型 I/O 框架,它使用集成的通用基础设施提供导入、导出和操作 3D 模型MetalKit、GLKit 和 SceneKit。 SceneKit 为 ModelIO Assets 提供类 ex..+ (instancetype)sceneWithMDLAsset:(MDLAsset *)mdlAsset;(正如@Zeeshan 回答的那样)。

  3. 您的设计师可以导出 .dae 格式的 3D 模型文件。在 .dae 文件中,单个文件包含纹理、相机、光引用。在 .obj 中使用时不需要 .mtl 或其他文件。SCNKit 也支持 .dae

  4. 如果您使用金属渲染,您可以直接从 NSURL 加载纹理。

关于ios - 将 .jpg 和 .mtl 文件应用于 SceneKit 中的 .obj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493837/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com