SCNView

2018-05-21 10:00:53 浏览数 (1)

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

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

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

代码语言:txt复制
    //第一步 创建游戏视图
    SCNView * scnView = [[SCNView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:scnView];
    //第二步 创建场景 ,注意scnview 默认是没有scene 所以我们必须给我们的游戏视图设置一个场景
    SCNScene * scene = [[SCNScene alloc] init];
    scnView.scene = scene;
    
    //第三步 创建一个正方体的几何模型
    SCNBox * box = [SCNBox boxWithWidth:1 height:1 length:1 chamferRadius:0];
    box.firstMaterial.diffuse.contents = @"swift.png";
    
    //第四步 创建一个节点,将几何模型绑定到这个节点上去
    SCNNode * boxNode = [SCNNode nodeWithGeometry:box];
    
    //第五步 将绑定了几何模型的节点添加到场景的根节点上去
    [scene.rootNode addChildNode:boxNode];
    
    //第六步 运行操作摄像机,开启了这个功能,你就可以使用手势来改变场景中摄像机的位置和方向
    scnView.allowsCameraControl = YES;
    
    //第七步 开启抗锯齿,如果模型出现抗锯齿的现象,你就可以使用这个属性让锯齿减弱,提高渲染性能,但是这个可能会消耗更多的手机资源,使用需谨慎
    scnView.antialiasingMode = SCNAntialiasingModeMultisampling4X;
    
    //给游戏截屏
    UIImage * image = scnView.snapshot;
    //设置游戏的帧率
    scnView.preferredFramesPerSecond = 30;
    //显示游戏场景的元素数量等信息
    scnView.showsStatistics = YES;

0 人点赞