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

时间:2017-06-29 00:10:41

标签: ios scenekit arkit

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

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

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

4 个答案:

答案 0 :(得分:17)

要获得一些现有的模型,这就是我所做的......只是我所知道的基础知识。

  1. 我去了Turbosquid并找到了适合我的3D模型。
  2. 确保它具有OBJ文件。购买和下载。
  3. 下次下载Blender。导入刚刚购买的OBJ文件。
  4. 导出DAE文件。
  5. 将DAE文件和任何纹理(png文件)拖到项目的.scnassets文件夹中。
  6. 单击.scnassets文件夹中的DAE模型。单击以选中“场景”图中的对象。
  7. 点击右上角的地球。
  8. 我点击了漫反射并选择了我拖入的其中一个PNG以将其应用到模型中
  9. 您也可以跳过Blender转换,只使用免费的在线OBJ到DAE转换工具之一。谷歌一下。并尝试在Turbosquid上购买便宜的5美元范围型号,它只有一个OBJ文件,而不是很多其他零件。它们太大了,无论如何都会产生其他问题。

    更新在Xcode中观看模型IO上的Apple WWDC演示后,我现在看到您可以将OBJ文件放入.scnassets文件夹中。选择该文件,转到编辑器并选择转换为SCN文件。这也应该有效,但我还没试过。值得尝试一下你的OBJ文件。

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

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

    1. http://www.meshlab.net/
    2. 如果源3D模型是.OBJ文件,则有两个相关文件应与.OBJ文件位于同一文件夹中。这些是* .mtl文件和* .jpg或* .BMP文件。可以使用TextEdit打开.mtl文件。

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

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

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

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

      您可以将节点名称ID更改为节点(如果尚未更改)。

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

答案 1 :(得分:14)

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

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

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

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

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

  • 使用基于物理的材料
  • "烘烤"环境遮挡和其他静态照明效果
    • 添加隐形阴影平面

答案 2 :(得分:4)

您可以使用许多工具支持的.DAE格式创建逼真的3D模型。然后在Xcode中,您可以将.DAE文件转换为.SCN格式。如需转换,请查看

How to convert .DAE to .SCN

答案 3 :(得分:0)

制作逼真的3D模型的最佳方法是使用以下任何软件包:

  

Autodesk Maya,Autodesk 3DS Max,Maxon Cinema 4D,The Foundry Modo或Blender。

这些3D创作工具允许您创建多边形和NURBS几何体。但任何逼真的3D物体不仅需要理想的形状,还需要完美的纹理。因此,每个上述包都包含自己的UV纹理编辑器,允许您以交互方式查看,放置和编辑对象的纹理。在UV纹理编辑器中,您可以选择,移动,缩放和修改表面的UV拓扑,这与使用其他建模工具非常相似。您还可以在此类UV纹理编辑器中查看与指定纹理贴图关联的图像作为背景,并根据需要修改UV布局以匹配。

着色器,属于对象的3D表面,可能包含许多不同的纹理(通常位于jpegpngtiff)。这些纹理是:漫反射颜色,透明度,粗糙度,凹凸,金属度,反射率,折射率,镜面反射度,半透明度等。这些纹理使3D对象看起来逼真。看下面的图片,有28个渲染过程,其中一些可以是着色材料插槽中的纹理:

enter image description here

您可以在这里找到Pluralsight的Maya modeling courses

您可以在这里找到Maya shading and texturing course

我个人更喜欢Autodesk Maya。它具有用于插件的模块化系统以及各种输入和输出2D和3D格式。这是真实环境中虚拟3D汽车的绝佳示例:

enter image description here

  

当您的3D模型和纹理准备好导出时,您需要在Maya中保存.DAE文件。

     

在Xcode中,只需在.SCN文件夹中创建新的.scnassets文件,然后将此.DAE文件拖到场景中。

     

或者您可以在iOS 12中使用皮克斯的Xcode 10全新.USDZ文件格式。只需将其拖放到您的SCENE中即可。