如何创建逼真的.scn文件?

38

观察苹果的示例AR应用程序,有许多逼真的物体(杯子,蜡烛等)。然而,在Xcode上使用场景工具编辑器时,很明显它只允许创建基本对象。

我的问题是,有什么软件/文件可以用来创建逼真的scn对象?我确信有软件可以创建3D模型并将其转换为scn文件。我只是不知道要使用哪个软件或哪些文件可以转换为scn

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

4个回答

25
为了让一些现有的模型可以使用,以下是我所知道的基础知识。
  1. 我前往 Turbosquid 找到了一个适合我的 3D 模型。
  2. 确保它具有 OBJ 文件。购买并下载该文件。
  3. 接下来下载 Blender。导入刚才购买的 OBJ 文件。
  4. 导出 DAE 文件。
  5. 将 DAE 文件和任何纹理(png 文件)拖到项目的 .scnassets 文件夹中。
  6. 单击.scnassets 文件夹中的 DAE 模型。单击场景图中的对象进行选择。
  7. 单击右上角的球体。
  8. 单击漫反射并选择其中一个 PNG 来应用于该模型。

您还可以跳过 Blender 转换,只需使用免费在线 OBJ 到 DAE 转换工具之一即可。Google 它。然后尝试在 Turbosquid 上购买一个便宜的 $5 的模型,该模型只具有 OBJ 文件而没有其他很多组件。无论如何,作为起步方法,它们都太大且会产生其他问题。

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

更新 2018 年 12 月:我一直在使用 3D 文件。以下是关于此问题的一些增量性帮助。

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

  1. http://www.meshlab.net/
  2. 如果你的源3D模型是.OBJ格式的文件,那么应该有两个相关的文件与.OBJ文件在同一个文件夹中,它们是*.mtl文件和*.jpg或*.BMP文件。MTL文件可以用TextEdit打开。 打开MTL文件并确保它有一行写着:map_Kd *.jpg。JPG文件是包裹在3D网格文件周围的纹理图像。我发现最好将纹理文件保存为.jpg格式。如果不是,可以通过如预览之类的软件将其转换为.jpg格式,然后编辑.mtl文件以适应新的.jpg文件名。
    如果你有一些.bmp格式的纹理文件,只需将其转换为.jpg格式,然后编辑.mtl文件即可准备就绪。
    第二个问题是.OBJ文件中节点的名称。OBJ文件也可以用TextEdit打开。OBJ文件应该引用同一文件夹中的.MTL文件。如果没有,就会出现问题。
    这里有个棘手的部分。当你要将一个子节点添加到SceneKit场景中的根节点时,你必须填写“withName:”文本名称。打开你从.obj + .jpg + .mtl创建的转换后的.DAE文件(在导入到MeshLab时三个文件都会被使用,但是在导出为.DAE文件后,只剩下.DAE文件),并搜索“node id =”。它可能会说:“node id=”node“。如果是这样,那么“node”这个词就是你在场景.rootNode.childNode(withName:“node”,recursively:true)调用中输入的子节点的文本名称。
    如果你的节点名称ID尚未命名为node,则可以将其更改为node。希望这能帮助到你。花费了许多时间和其他人的帮助,才理解这一轮与3D模型打交道的工作。

15
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中看起来更真实。WWDC的ARKit会话(以及附加到该会话的示例代码项目中的ReadMe文件)包含了一些提示:

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

4

你可以使用许多工具来创建以 .DAE 格式为支持的逼真 3D 模型。然后在 Xcode 中,你可以将 .DAE 文件转换为 .SCN 格式。有关转换,请查看此链接:

如何将 .DAE 转换为 .SCN


1
请问您能否列出一些适合初学者使用的简单工具,用于创建3D DAE模型? - 14wml
创建模型本身就是一段旅程。我曾经使用过Blender(http://blender3d.com/),因为它是免费的。对于概念证明和尝试,我偶尔会从TurboSquid等网站购买资产。我想自己能够建模,但如果价格合适,购买资产可能更有效率。有时,我确实需要将3D模型加载到Blender中,然后将其导出到DAE;注意设置导出UV纹理映射设置。 - M. Bedi
Maya的价格很贵,大约每月180美元,但它比Blender更好,而且更加直观易用。 - drewster

0

SceneKit 2023

在构建SceneKit应用程序时,您可以加载具有逼真动画和基于物理的材料的USDZ资产。创建动画模型的正确方法是使用专业的三维制作工具,如Autodesk Maya、Blender或SideFX Houdini。这些应用程序不仅允许您导出完美的几何形状,还包含了漫反射、金属度、粗糙度、遮挡和自发光等PBR材质的逼真UV映射纹理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接