美文网首页
第三节 - SCNView用法详解

第三节 - SCNView用法详解

作者: Codi_Zhao | 来源:发表于2017-11-14 10:43 被阅读0次

    SCNView

    本节的主要内容

    • SCNView 是什么?
    • 主要有哪些功能?
    • 怎么使用SCNView?

    介绍

    SCNView 主要负责显示3D 模型对象的视图,继承自UIView,能够直接添加到UIView类型的视图上,很简单就一句话!我们就围绕这句话开始展开,渲染过程中我们可能遇到哪些问题呢?锯齿,这个是最常见的,游戏中的模型是由多边形组成的,当然显示卡运算频率很高,显存足够大的情况,可以生成的“多边形”就很多,这样锯齿就会少,当画面增大,解析度增高后,多边形就会变少,锯齿就会明显。那么这个时候,我们可以通过设置抗锯齿属性进行适当的调节,不过锯齿越少,游戏性能越差,因为它需要进行大量的运算,所以大家在使用的时候需要特别注意。

    功能

    • 设置游戏运行时的帧率
    • 截屏
    • 开始和暂停游戏
    • 抗锯齿
    • 控制摄像机
    • 显示统计菜单
    • 执行渲染方式(OpenGL /Metal)
    • 代码详解

    Step 1

    导入框架 import SceneKit

    Step 2

    func setup(){
     ///  第一步 创建游戏视图
        let scnview = SCNView(frame: self.view.bounds)
        self.view.addSubview(scnview)
        scnview.backgroundColor = UIColor.black              
     ///  第二步 创建场景 ,注意scnview 默认是没有scene 所以我们必须给我们的游戏视图设置一个场景
    
      let scene = SCNScene()                                           
      scnview.scene = scene;
    
      /// 第三步 创建一个正方体的几何模型
    
      let box = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0)
      box.firstMaterial?.diffuse.contents = “1.png”
    
      /// 第四步 创建一个节点,将几何模型绑定到这个节点上去
    
      let boxNode = SCNNode()
      boxNode.geometry = box
    
      /// 第五步 将绑定了几何模型的节点添加到场景的跟节点上去
    
      scene.rootNode.addChildNode(boxNode)
    
      /// 第六步 运行操作摄像机,开启了这个功能,你就可以使用手势改变场景中摄像机的位置和方向了
    
      scnview.allowsCameraControl = true;
    
      /// 第七步 开启抗锯齿  如果模型出现有锯齿状的现象 你就可以使用这个属性让锯齿减弱,提过渲染性能,但是这个可能会消耗更多的手机资源,使用时还是谨慎为好。
    
      scnview.antialiasingMode = .multisampling4X
    }
    

    下面介绍一下几个功能的使用

    如何给游戏截屏?

    let image =  scnview.snapshot()
    

    如何设置游戏的帧率?

    scnview.preferredFramesPerSecond = 30
    

    如何打开统计菜单? 打开这个功能就能查看游戏场景的元素数量等信息

    scnView.showsStatistics = true;
    

    相关文章

      网友评论

          本文标题:第三节 - SCNView用法详解

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