AR(增强现实)iOS/Swift 版本的 — AR / VR 开发SceneKit + ARKit

SceneKit框架之SCNView

2018-01-31  本文已影响152人  叶子扬

文本提纲:

SCNView是什么

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

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

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

SCNView主要功能

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基本场景功能实例

上一篇 下一篇

猜你喜欢

热点阅读