SCNView

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

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

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

    //第一步 创建游戏视图
    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;

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

前端开发者常用的 9个JavaScript 图表库

英文: Anton Shaleynikov 译文:葡萄城控件 www.cnblogs.com/powertoolsteam/p/top-9-javascri...

3485
来自专栏数据小魔方

数据标签太长了,怎么办……

今天给大家讲解在图表中长数据标签的特殊处理方法! ▽ 如果你的图表要求必须添加数据标签的话 最大的困惑就是对于哪些特别长的数据标签 加上之后图表是这样的 ? 看...

3668
来自专栏灯塔大数据

浅谈数据可视化那些可用的工具和示例【可视化】

什么是数据可视化?数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特...

4604
来自专栏ytkah

3个技巧快速入门微信文章排版

  编辑微信图文消息,我们有时会先保存在word文档中,或者是企划部给你的新闻稿,里面有不同的字体(大小)、格式,如果我们直接Ctrl+c/v,那么领导很快会找...

3025
来自专栏数据小魔方

Xcelsius(水晶仪表)系列5——统计图综合运用

今天继续跟大家分享水晶仪表系列的第5篇——统计图的综合运用。 本例是一个通过展现某银行前八年的存款储蓄以及贷款数据,通过预计后两年的存款储蓄增长率、贷款增长率等...

35511
来自专栏小文博客

图片无损放大工具PhotoZoom

5802
来自专栏Guangdong Qi

iOS开发常用之 图表

1051
来自专栏河湾欢儿的专栏

精灵图

为什么要有精灵图? 最早的时候网速十分有限,为了提升用户体验,我们会将一张大图分解成多张小图来提高页面打开速度,但是网速得到了提升,为了能够让服务器承载更多的...

1441
来自专栏知道一点点

推荐12个最好的 JavaScript 图形绘制库

 众多周知,图形和图表要比文本更具表现力和说服力。图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等。可视化图表可以帮助开发者更容易...

3033
来自专栏iOS开发随笔

SceneKit基本概念

1144

扫码关注云+社区

领取腾讯云代金券