1-Hello-SceneKit

作者: 095b62ead3cd | 来源:发表于2020-06-06 23:14 被阅读0次

    文章选自掘金苹果API搬运工的文章[SceneKit专题]1-Hello-SceneKit
    主要记录自己在学习ARKit的过程中看到的好的文章,避免到时候链接失效无法找到原文的情况,非常感谢原博主的辛勤付出,也在此分享出来跟大家一起学习。

    Scenes:SCNScene

    自带一个定义了坐标系的root node(根节点),使用scene gragh来组织场景,可以向内部增加树状结构的内部节点(node),例如 lights光源, cameras相机, geometry几何体, particle emitters粒子发射源. 需要放到SCNView的实例中呈现,SCNView在OSX(macOS)中是NSView的子类,在iOS中是UIView的子类;

    左侧树状结构

    坐标系,屏幕外是+Z方向,坐标使用向量表示,示例SCNVector3(x: 0, y: 5, z: 10)


    坐标系

    Nodes:SCNNode

    游戏中的每个元素都被称为node(节点),存放在树状结构scene gragh中,例如 lights光源, cameras相机, geometry几何体, particle emitters粒子发射源.每个scene graph中包含一个特殊的基础节点:root node(根节点),可以把其他节点添加到节点下面,变成它的子节点.

    添加到scene中的node,默认在(x:0, y:0, z:0),即相对于父节点的位置.要想调整节点在父节点的位置,应该调整local coordinates(本地坐标系),而不是调整world coordinates(世界坐标系).

    注意 默认情况下,如果一个场景中没有任何改变时,Scene Kit会进入"paused"(暂停)状态,为了防止这种情况,需要在创建SCNView实例时设置playing属性为true如

    scnView.playing = true
    

    camera

    摄像机的显示范围控制,小于zNear不显示,大于zFar不显示.添加到一个空节点的camera属性里


    相机
    func setupCamera() {
      // 1.创建空的节点
      cameraNode = SCNNode()
      // 2.创建相机,添加到节点中
      cameraNode.camera = SCNCamera()
      // 3.设置相机节点的位置
      cameraNode.position = SCNVector3(x: 0, y: 0, z: 10)
      // 4.添加到根节点中
      scnScene.rootNode.addChildNode(cameraNode)
    }
    

    primitives geometry(原生几何体)

    系统自带了很多基础的几何体,添加到一个空节点的geometry属性里 第一排从左起:cone(圆锥体), torus(圆环体), capsule(胶囊体), tube(管道) 第二排从左起:pyramid(四棱锥), box(长方体), sphere(球体), cylinder(圆柱体)


    原生几何体

    SCNView内置属性

    // 1.显示统计数据
    scnView.showsStatistics = true
    // 2.打开相机控制
    scnView.allowsCameraControl = true
    // 3.自动启用默认光源
    scnView.autoenablesDefaultLighting = true
    

    1.showsStatistics在底部显示一个实时的统计条,左侧+号点击可展开;
    2.allowsCameraControl允许使用简单手势控制相机
    -单指滑动:旋转相机;
    -双指滑动:移动相机;
    -双指捏合:缩放;
    -双击:如果有两个相机则切换,一个相机则返回原始状态;
    3.autoenablesDefaultLighting创建一个通用的全方向光源;

    fps:帧率,每秒渲染的画面数
    ◆:每帧画面渲染的总物体数,多光源照射同一物体时会渲染多次
    ▲:每帧画面渲染的多边形总数量
    ✸:可见的光源总数(影响物体的光源), Scene Kit推荐不要同时使用3个以上光源


    统计条 统计条展开图

    相关文章

      网友评论

        本文标题:1-Hello-SceneKit

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