如何将.ply,.stl,.dae文件转换为Apple SceneKit框架支持的.scn文件格式?

时间:2018-04-09 05:09:05

标签: swift scenekit arkit

我正在寻找一个移动SDK或任何可以将.ply,.dae,.stl文件转换为Apple的SceneKit框架支持的.scn文件的代码。

我尝试使用AssimpKit,但它为提供的对象提供动画。我希望提供的文件以.scn格式转换并保存在文档目录中。

我使用了以下代码,它使用SceneKit动画提供的文件。我想知道是否有办法使用AssimpKit框架或任何其他SDK以.scn格式将文件目录中的目标文件导出。

任何帮助将不胜感激。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *docsDir = [paths objectAtIndex:0];
    NSString *bob = [docsDir stringByAppendingString:@"/Bob.md5mesh"];////Bob.md5mesh
    if([[NSFileManager defaultManager] fileExistsAtPath:bob]) {
            // load model
        SCNAssimpScene *scene =
        [SCNScene assimpSceneWithURL:[NSURL URLWithString:bob]
                    postProcessFlags:AssimpKit_JoinIdenticalVertices |
         AssimpKit_Process_FlipUVs |
         AssimpKit_Process_Triangulate];

        NSLog(@"SCENE NODE: %@",scene.rootNode);

            // load animation
        NSString *bobAnim = [docsDir stringByAppendingString:@"/Bob.md5anim"];
        [SCNScene assimpSceneWithURL:[NSURL URLWithString:bobAnim]
                    postProcessFlags:AssimpKit_JoinIdenticalVertices |
         AssimpKit_Process_FlipUVs |
         AssimpKit_Process_Triangulate];
        NSString *bobId = @"Bob-1";
        SCNAssimpAnimSettings *settings =
        [[SCNAssimpAnimSettings alloc] init];
        settings.repeatCount = 3;
        SCNScene *anim = [scene animationSceneForKey:bobId];
        [scene.modelScene.rootNode addAnimationScene:anim forKey:bobId
                                        withSettings:settings];

            // retrieve the SCNView
        SCNView *scnView = (SCNView *)self.view;

            // set the scene to the view
        scnView.scene = scene.modelScene;

            // allows the user to manipulate the camera
        scnView.allowsCameraControl = YES;

            // show statistics such as fps and timing information
        scnView.showsStatistics = YES;

            // configure the view
        scnView.backgroundColor = [UIColor blackColor];

        scnView.playing = YES;

请帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用XCode打开文件。从顶部栏中,选择“编辑器”->“转换为Scene Kit场景文件格式”。我知道这适用于.stl和.dae,但我尚未尝试使用.ply。