【问题标题】:How to create realistic .scn files?如何创建逼真的 .scn 文件?
【发布时间】:2017-12-02 12:29:57
【问题描述】:

看看苹果示例 AR 应用,有许多看起来很逼真的物体(杯子、蜡烛等)。但是,在 Xcode 上使用场景工具包编辑器很明显,这只允许您创建基本对象。

我的问题是,可以使用什么软件/文件来创建逼真的scn 对象?我确信有软件可以让您创建 3D 模型并将它们转换为 scn 文件。就是不知道用什么软件或者什么文件可以转成scn

注意:我知道这个问题对于 Stackoverflow 指南来说可能过于模糊/宽泛。我只是不知道在哪里提出我的问题,这似乎是最好的地方

【问题讨论】:

    标签: ios scenekit arkit


    【解决方案1】:

    为了让一些现有的模型可以使用,这就是我所做的......只是我所知道的基础知识。

    1. 我去了Turbosquid,找到了一个适合我的 3D 模型。
    2. 确保它有 OBJ 文件。购买和下载。
    3. 下次下载Blender。导入刚购买的 OBJ 文件。
    4. 导出 DAE 文件。
    5. 将 DAE 文件和任何纹理(png 文件)拖到项目中的 .scnassets 文件夹中。
    6. 单击 .scnassets 文件夹中的 DAE 模型。单击以选择场景图中的对象。
    7. 单击右上角的地球仪。
    8. 我单击了漫反射并选择了我拖入的一个 PNG 以将其应用于模型

    您也可以跳过 Blender 转换,只需使用免费的在线 OBJ 到 DAE 转换工具之一。去谷歌上查询。并尝试在 Turbosquid 上购买一个便宜的 5 美元范围的模型,它只有一个 OBJ 文件,没有很多其他零件。它们太大了,无论如何作为入门方法都会产生其他问题。

    更新 在观看了有关 Xcode 中 Model IO 的 Apple WWDC 演示后,我现在看到您可以将 OBJ 文件放入您的 .scnassets 文件夹中。选择该文件,转到编辑器并选择转换为 SCN 文件。这也应该有效,但我没有尝试过。值得尝试使用您的 OBJ 文件的副本。

    2018 年 12 月更新: 我一直在更多地处理 3D 文件。以下是有关此问题的一些增量帮助。

    尝试使用 MeshLab 导入您的 3D 模型并将其转换为 .DAE 文件。将 .DAE 文件拖到 Xcode 中的文件夹中。这就是您要在应用程序中显示的内容。

    1. http://www.meshlab.net/

    如果您的源 3D 模型是 .OBJ 文件,则有两个相关文件应与 .OBJ 文件位于同一文件夹中。它们是 *.mtl 文件和 *.jpg 或 *.BMP 文件。 .mtl 文件可以用 TextEdit 打开。

    打开并确保它有一行写着:map_Kd *.jpg。 .jpg 是环绕 3D 网格文件的纹理图像。我发现最好确保您的纹理文件是 .jpg 格式。如果不是,请将其更改为 .jpg 格式(例如在预览中,将其重新保存为 jpeg),然后编辑 .mtl 文件以获取新的 .jpg 文件名。

    我有一些 .bmp 的纹理文件,我刚刚转换为 .jpg,编辑了 .mtl 文件,结果很好。

    第二个问题是 .obj 文件中节点的名称。 .obj 文件也可以用 TextEdit 打开。 .obj 文件应引用同一文件夹中的 .mtl 文件。如果没有,你就有问题了。

    这是棘手的部分。当您在 SceneKit 场景中将 childNode 添加到 rootNode 时,您必须填写“withName:”文本名称。打开您从 .obj + .jpg + .mtl 制作的转换后的 .DAE 文件(导入 MeshLab 时会使用这三个文件,但导出到 .DAE 后,只有 .DAE 文件),然后搜索“node编号 = 。它可能会说:“node id="node”。如果是这样,那么单词“node”就是您在 scene.rootNode.childNode(withName:" 的“withName:”属性中为文本名称输入的 childNode 的名称节点”,递归:true) 调用。

    如果还没有,您可以将节点名称 ID 更改为 node。

    希望这会有所帮助。许多小时的工作和其他人的帮助来理解下一轮使用 3D 模型的工作。

    【讨论】:

      【解决方案2】:

      Xcode 的 SceneKit 编辑器不是 3D 艺术创作包 — 就像它的 SpriteKit 编辑器和 Interface Builder 组件不等同于 Photoshop、Illustrator、Pixelmator、Affinity Designer 等。要自己创建 3D 艺术资产,您需要学习 Blender、Maya、3DS Max 或其他主要的 3D 创作工具之一。请注意,成为 3D 艺术家的学习曲线比学习如何在 2D 中绘画要陡峭一些。

      SceneKit 编辑器的目的是从 3D 艺术家那里获取输出并准备或组合它以在基于 SceneKit 的应用程序或游戏中使用 - 调整材质定义,使它们与 SceneKit 的渲染器看起来正确,安排单独的资产来创建游戏关卡或其他场景,添加动态 SceneKit 特定的功能,如粒子效果和物理等。

      您可以通过将 3D 艺术工具中的资源以 SceneKit 可以导入的格式之一导出,从而在这两个世界之间架起一座桥梁。数字资产交换 (.dae) 是这里最好的选择之一,但通过 SceneKit 的较低级别对应物Model I/O,您还可以导入其他格式,如 OBJ 或 Pixar USD。

      当您在 Xcode 中打开它们时,您将获得 SceneKit 编辑器,因此您可以开始标记特定于 SceneKit 的编辑并将结果保存为 .scn 文件以供在您的应用中使用。


      在创作和准备 3D 资产的过程中,您可以做一些事情,使它们在 ARKit 中看起来更逼真。 ARKit session from WWDC(以及附加到该会话的示例代码项目中的自述文件)包括一些这样的提示:

      • 使用基于物理的材料
      • “烘焙”环境光遮蔽和其他静态光照效果
        • 添加不可见的阴影平面

      【讨论】:

        【解决方案3】:

        您可以以许多工具支持的 .DAE 格式创建逼真的 3D 模型。然后在 Xcode 中,您可以将该 .DAE 文件转换为 .SCN 格式。要进行转换,请检查此

        How to convert .DAE to .SCN

        【讨论】:

        • 能否请您列出一些可以创建 3D DAE 模型的简单工具供初学者使用?
        • 创建模型本身就是一段旅程。我使用过 Blender (blender3d.com),因为它是免费的。为了概念验证和尝试,我有时会从 TurboSquid 等网站购买资产。我希望能够自己进行建模,但如果价格合适,购买资产会更有效率。有时,我确实需要将 3D 模型加载到 Blender 中,然后将它们导出到 DAE;注意设置导出UV纹理贴图设置。
        • Maya 的价格约为 180 美元/月,但比 Blender 好得多,而且更直观。
        【解决方案4】:

        在 SceneKit 的 Scene graph 中,您可以导入带有动画的 3D 资源(来自 Blender、Maya 或 Houdini),创建 3D 图元(SCNBox、SCNSphere、SCNPlane、SCNCylinder 等)并在 5 个 SceneKit 的着色器(Blinn)上分配 UV 映射纹理、Lambert、Phong、Constant 和 PBR)。

        创建栩栩如生的动画模型的正确方法是使用专业的 3D 创作工具,例如 Autodesk Maya、Autodesk 3dsMax、Maxon Cinema 4D、The Foundry Modo、Blender 或 SideFX Houdini。这些应用程序不仅可以让您创建完美的几何体,还可以创建逼真的 UV 映射纹理,其中包含 SceneKit 材质编辑器的漫反射、透明度、金属度、凹凸和遮挡槽的渲染通道。

        当您的 3D 模型和一组 UV 映射纹理准备好使用时,您需要做的就是保存一个 .dae.usdz 文件。格式 .dae 必须转换为 .scn。为此选择一个.dae 文件并从菜单应用命令:

        // Editor - Convert to SceneKit file format...
        

        然后对于转换后的.scn 模型,您可以在Material Inspector 中选择Physically Based 着色器(PBR)。 Physically Based .scn.usdz 的着色器使您的模型看起来真实可信。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-24
          • 2020-02-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-24
          • 2019-06-27
          • 1970-01-01
          相关资源
          最近更新 更多