第三节 - SCNView用法详解

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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,982评论 4 61
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,283评论 5 13
  • iOS 苹果官方Demo合集 字数10517阅读21059评论18喜欢144 其实, 开发了这么久, 不得不说, ...
    bingo居然被占了阅读 10,634评论 2 31

友情链接更多精彩内容