美文网首页
SceneKit初步了解

SceneKit初步了解

作者: 傍观者 | 来源:发表于2017-09-26 15:14 被阅读0次

    在了解ARKiT框架时,突然看到demo中有SceneKit引擎,由于都是在写应用app,没有涉及于是就拿来看看了。

    SceneKit是一个高性能的渲染游戏引擎,他能够将3D模型文件,用很简单的方式渲染出来。底层实践是Metal和OpenGL。

    在Xcode9中构建新的VR应用中会有引擎选择,一开始没有没有VR的应用,所以将其放置在普通应用中。

    Demo

    插入SceneKit框架

    #import <SceneKit/SceneKit.h>
    

    构建一个用来展示的view

    @property (nonatomic,strong)SCNView *scnView;
    
    _scnView = [[SCNView alloc]initWithFrame:self.view.bounds];
    _scnView.backgroundColor = [UIColor clearColor];
    [self.view addSubview:_scnView];
    

    因为sceneView中默认没有secene所以我们需要创建一个场景

    _scnView.scene = [SCNScene scene];
    

    tips:secene的用处就相当于一个摄影棚,里面放着所有的几何模型,灯光,摄像机和其他的属性,如果不加入场景那么,所有的元素将没有地方展示。

    添加摄像机,将元素展现在观众眼中

    //添加摄像机
        SCNCamera *camera = [SCNCamera camera];
        SCNNode *cameraNode = [SCNNode node];
        cameraNode.camera = camera;
        cameraNode.position = SCNVector3Make(-10,0,50);
        [_scnView.scene.rootNode addChildNode:cameraNode];
    

    这里要介绍一下SCNNode

    当我们把摄影棚搭建好之后,我们需要放置灯光,摄影机,模型等道具,但是这些东西不会自己放置,也不知道放置的位置,这时我们就要给他一个坐标来告诉摆放人,这个该放置在哪里。SCNNode就是起到坐标点的作用。同时这个坐标点中又可以放置其他的坐标点。
    在里面加入模型

    SCNBox *snow = [SCNBox boxWithWidth:with height:height length:0 chamferRadius:0];
    snow.firstMaterial.diffuse.contents = [UIImage imageNamed:@"snow.png"];
    SCNNode *snowNode = [SCNNode node];
    snowNode.position = SCNVector3Make(postionX,postionY , 0);
    snowNode.geometry = snow;
    [_scnView.scene.rootNode addChildNode:snowNode];
    

    当然我希望将❄️动起来,于是我在demo中添加SCNAction

    SCNAction *rotation = [SCNAction rotateByAngle:10 aroundAxis:SCNVector3Make(0, 0, 1) duration:speed];
    SCNAction *moveDown = [SCNAction moveTo:SCNVector3Make(moveX, moveY, 0) duration:speed];
    SCNAction *moveUp = [SCNAction moveTo:SCNVector3Make(0, moveUpY, 0) duration:0];
    

    demo执行效果

    雪花.jpeg

    用SceneKit写动画只是微不足道一部分,以后随着以后深入还会记录更多SceneKit的用法。顺带挖一个利用BaseAnimation动画的坑,这个是以前的学习的,为了防止忘记,抽空补全上来。

    附Demo地址:https://github.com/rickierYun/SceneKitDemo

    相关文章

      网友评论

          本文标题:SceneKit初步了解

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