SceneKit框架之SCNView

作者: 叶子扬 | 来源:发表于2018-01-31 21:50 被阅读152次

    文本提纲:

    • SCNView是什么
    • SCNView主要功能
    • SCNView用法示例

    SCNView是什么

    SCNView是显示3D模型对象的视图,继承自UIView。

    在渲染过程过中,视图模型常常会出现锯齿边缘。这是因为模型是由多边形组成的,当显卡运算频率不够高,或者显存不够大的时候,“多边形”绘制速度比较慢,就会出现锯齿。此外,当画面增大、解析度增高,锯齿也会变得更明显。

    我们可以通过设置抗锯齿属性来适当平衡体验和视觉效果,因为锯齿越少,游戏的性能越差。总之,渲染涉及大量的运算,开发时需特别留意。

    SCNView主要功能

    • 设置场景渲染的帧率
    • 屏幕截屏
    • 开始和暂停游戏
    • 抗锯齿
    • 控制摄像机
    • 显示性能统计菜单(Debug常用)
    • 执行渲染方式(OpenGL/Metal)

    SCNView用法示例

    
    import UIKit
    import SceneKit
    
    class ViewController2: UIViewController {
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            // 创建SCNView视图
            let scnview = SCNView.init(frame: view.bounds)
            scnview.backgroundColor = UIColor.black
            
            // 创建场景,默认是nil
            scnview.scene = SCNScene()
            
            // 允许操纵摄像机,这样用户就可以改变视角的位置和方向
            scnview.allowsCameraControl = true
            view.addSubview(scnview)
            
            // 创建一个立体几何模型
            let box = SCNBox.init(width: 1, height: 1, length: 1, chamferRadius: 0)
            // 设置外表
            box.firstMaterial?.diffuse.contents = UIImage.init(named: "1")
            // 添加到节点上
            let boxNode = SCNNode.init(geometry: box)
            scnview.scene?.rootNode.addChildNode(boxNode)
        }
    }
    
    代码运行结果:

    其他功能

            // 截屏
            let image = sceneView.snapshot()
            
            // 设置游戏帧率
            sceneView.preferredFramesPerSecond = 30
            
            // 打开统计菜单
            sceneView.showsStatistics = true
            
    

    以下两个结合ARKit使用

            // 显示坐标系
            sceneView.debugOptions = ARSCNDebugOptions.showWorldOrigin
            
            // 显示特征点
            sceneView.debugOptions = ARSCNDebugOptions.showFeaturePoints
    

    关于SceneKit的单位,看这里
    示例代码集,,内有集成SceneKit基本场景功能实例

    相关文章

      网友评论

        本文标题:SceneKit框架之SCNView

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