美文网首页iOSiOS DeveloperiOS 开发技巧
iOS使用SeneKit展示3D模型并施加动画

iOS使用SeneKit展示3D模型并施加动画

作者: Jalynn葸 | 来源:发表于2017-04-10 10:41 被阅读2569次

    SceneKit是一个高性能的渲染游戏引擎,它能够将3D模型文件用简单的方式渲染出来,不像Metal或OpenGL需要开发者自己写算法实现渲染3D文件的渲染功能,虽然他的底层也是Metal和OpenGL。

    基本用法:

    1、导入SceneKit框架

    #import <SceneKit/SceneKit.h>
    

    2、创建展示3D专用的视图

        SCView *scnView= [[SCNView alloc]initWithFrame:self.shoseView.bounds];
        scnView.allowsCameraControl = YES;
        scnView.showsStatistics = YES;
        scnView.backgroundColor = MyColor(255, 236, 190);
        [self.view addSubview:scnView];
    
    

    3、创建一个3D场景

        //外部导入的模型可直接使用.dae和.obj
        SCNSceneSource *sceneSource = [SCNSceneSource   sceneSourceWithURL:[[NSBundle mainBundle] URLForResource:@"vans-authentic-shoe-low-poly" withExtension:@".dae"] options:nil];
        SCNScene *scene  = [sceneSource sceneWithOptions:nil error:nil];
        scnView.scene = scene;
    

    4、创建一个节点用来放置光源

        SCNNode *lightNode = [SCNNode node];
        lightNode.light = [SCNLight light];
        lightNode.light.type = SCNLightTypeOmni;
        lightNode.position = SCNVector3Make(0, 0, 100);
        [scene.rootNode addChildNode:lightNode];
    

    5、创建一个节点用来放置照相机

        SCNNode *cameraNode = [SCNNode node];
        cameraNode.camera = [SCNCamera camera];
        cameraNode.camera.automaticallyAdjustsZRange = true;
        cameraNode.camera.zFar = 400;//视距
        [scene.rootNode addChildNode:cameraNode];
    

    当然,也可以用SCNNode来绑定一个几何形状,SceneKit中的基本操作都是对节点进行操作。
    因为你设置了scnView的allowsCameraControl为YES,所以,你就可对这个模型进行旋转看其整体3D效果,并查看细节特征。

    所以通过以上几步就可以展示出3D模型到手机界面上。如下图:

    以下demo不单是展示3D模型,还对模型进行了简单的换装操作和骨骼动画。
    展示3D模型demo地址
    对3D模型加动画demo地址

    有帮助记得给颗❤️哦。

    9EB51F64-ECD9-4DEF-A9B2-877392F4FAFF.png FE605468-38ED-45DE-8D0E-0E35D5F74349.png

    相关文章

      网友评论

        本文标题:iOS使用SeneKit展示3D模型并施加动画

        本文链接:https://www.haomeiwen.com/subject/hjihattx.html