3d 在SCNView上添加三维模型

3d 在SCNView上添加三维模型,3d,scenekit,collada,3d,Scenekit,Collada,我已经开始使用SceneKit构建一个超级puper游戏:)但有一件事我不能决定 所以。。。我使用第三方工具创建三维模型,然后将其导出到.dae文件中,然后在SCNView上添加.dae文件 例如,假设我需要在SCNView上添加2个3d模型。如我所见,有两种方法可以从SCNView上的.dae文件添加三维模型: 1-创建一个包含两个模型的.dae文件,然后在SCNView上添加一个场景 2-在单独的.dae文件中导出每个三维模型,并在SCNView上添加两个.dae文件 我认为这两种方法都很有

我已经开始使用SceneKit构建一个超级puper游戏:)但有一件事我不能决定

所以。。。我使用第三方工具创建三维模型,然后将其导出到.dae文件中,然后在SCNView上添加.dae文件

例如,假设我需要在SCNView上添加2个3d模型。如我所见,有两种方法可以从SCNView上的.dae文件添加三维模型:

1-创建一个包含两个模型的.dae文件,然后在SCNView上添加一个场景

2-在单独的.dae文件中导出每个三维模型,并在SCNView上添加两个.dae文件


我认为这两种方法都很有效,但我想知道是否有从SCNView上的.dae文件添加多个3d模型的最佳实践。

根据您拥有的模型类型,这两种方法都是很好的选择

如果你有很多类型的模型,比如角色、环境、道具等,我会选择每个文件。这并不是最优化的方法,但在创建和编辑资产时,它将为您节省大量时间

如果您使用的是2D中的单个精灵表,例如道路的一部分、建筑物的集合、过山车轨道;我将创建一个文件并从中查询所需的节点


更重要的是它对您有多方便,因为在加载和准备场景后,这无关紧要。

我尝试限制.dae文件的数量,但我仍然使用不止一个

如果计划将任何纹理与.dae文件一起导出,最好尝试限制.dae文件的数量,以便更易于维护(和重用)用作纹理的任何图像文件。我会使用.dae文件

我使用一个.dae文件来表示“静态”世界,当我阅读这个文件时,我会生成一个.flattedClone()来进行优化

然后我从其他.dae文件中拾取动态对象,如: (仅示例代码)

我个人更喜欢创建和控制自己的SCNScene对象,并使用导入的.dae文件,更像库,每个文件都对相同类型的对象进行分组

let importedDae = SCNScene(named: "3d.scnassets/units.dae")!
let warrior = importedDae.rootNode.childNodeWithName(
    "Warrior", recursively: true)!.clone() as! SCNNode
myRealGameScene.rootNode.addChildNode(warrior)