美文网首页ARKIT
[SceneKit]相机(四)

[SceneKit]相机(四)

作者: 冰三尺 | 来源:发表于2017-07-20 07:37 被阅读216次

SCNCamera相机是用于显示场景内容必须的节点, 需要把相机加到节点之上, 再把节点加到根节点上.
SCNNode包含相机物体观察视野的观察点, 即相机的位置和方向. 相机的视角始终沿着节点的局部坐标系的负Z轴, 要在不同的场景指定不同的相机的视野, 使用position, rotation, transfrom来设置.

屏幕快照 2017-07-22 下午10.01.00.png

相机有两种类型透视(perspective)和正交(orthographic)

透视相机: 游戏中经常使用第一视角的相机, 会有一种近大远小的感觉

屏幕快照 2017-07-22 下午10.06.22.png

正交投影: 投影线垂直于投影面的投影属于正交投影 ,属于平行投影一种。靠近和远离, 物体大小都是相同的

屏幕快照 2017-07-22 下午10.06.31.png

基于[SceneKit]场景编辑器(三)](http://www.jianshu.com/p/800fc94f9c10)中的例子, 看下相机的效果.

注意: 这里面有一个xcode的小bug(准确的来说我是不清楚这是xcode的bug还是我自己配置的文件有问题), 新建工程, 默认的scn文件是名称是ship, 如果你此时把这个ship.scn文件删除, 之后再新建一个ship.scn的文件, 拖进场景的控件就不显示形状, 拿相机来举个例子
正常的情况下我们看到的场景中的相机应该是这个样子的

屏幕快照 2017-07-22 下午10.47.58.png

但是在ship.scn场景中却显示成这样

屏幕快照 2017-07-22 下午10.48.15.png

只有一个3D坐标, 这样很不利于我们观察效果.

解决办法, 那就是新建scn文件时不要使用ship.scn文件名, 改成其他的名称就不会出现这个问题了, 这个问题困扰了一天, 自己也是无意中找到解决办法的, 坑死我了.

现在删除基于[SceneKit]场景编辑器(三)](http://www.jianshu.com/p/800fc94f9c10)中的例子中的ship.scn文件, 新建一个game.scn文件. 然后拖进一个box和一个相机

设置box的position为0,0,0; diffuse为FF0000;

屏幕快照 2017-07-22 下午10.53.34.png 屏幕快照 2017-07-22 下午10.54.55.png

然后在拖进一个camera
适当的调整相机的位置

屏幕快照 2017-07-22 下午11.01.25.png

从相机发射出来的线表示的是相机的视野
右侧有很多关羽相机的属性, 修改某个值, 立马能看到效果, 这点很好, 减少了运行工程的次数, 节省的不少时间, 苹果可这是很贴心呀.

相关文章

  • [SceneKit]相机(四)

    SCNCamera相机是用于显示场景内容必须的节点, 需要把相机加到节点之上, 再把节点加到根节点上.SCNNo...

  • 通过Metal展示AR体验

    在相机信息流上控制你的app虚拟内容渲染。 一、概述 ARKit包含视图类,可轻松显示SceneKit或Sprit...

  • [SceneKit专题]7.Cameras相机

    说明 本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会此书对应的代码地...

  • 7-Cameras相机

    文章选自掘金苹果API搬运工的文章[SceneKit专题]7-Cameras相机主要记录自己在学习ARKit的过程...

  • SceneKit学习笔记

    SceneKit SceneKit苹果官方文档SCNCameraSCNMaterialSCNLightTypeSC...

  • [SceneKit]目录

    基础篇[SceneKit]搭建Scene3D场景(一)[SceneKit]物理仿真模拟(二)[SceneKit]场...

  • SceneKit_高级01_GLSL

    SceneKit_入门01_旋转人物SceneKit_入门02_如何创建工程SceneKit_入门03_节点Sce...

  • SceneKit_大神03_3DTitle

    SceneKit_入门01_旋转人物SceneKit_入门02_如何创建工程SceneKit_入门03_节点Sce...

  • SceneKit_中级_01_模型过渡动画

    SceneKit_入门01_旋转人物SceneKit_入门02_如何创建工程SceneKit_入门03_节点Sce...

  • SceneKit_大神01_掉落的文字

    SceneKit_入门01_旋转人物SceneKit_入门02_如何创建工程SceneKit_入门03_节点Sce...

网友评论

  • 小沛2016:楼主 可以发demo出来学习一下吗?
  • X1aoHey:作者你好,我想请教下该怎么自定义SCNCamera的手势和范围呢? allowsCameraControl是360°的,但我只需要看到模型顶部部分区域就好,并且手势放大缩小,不知道该怎么操作,谢谢
    凌默默:@X1aoHey 但是我只能控制所有的上下左右查看,没法确保到看到部分顶部后, 不能再往上看了, 而且手势往下的时候, 也不能控制到底部就不能再往下了, 最后会导致整个模型都翻过来.这个改如何控制呢?
    X1aoHey:@凌甜 可以用手势操作来控制相机的坐标等参数
    凌默默:有同意的问题, 你解决了么?

本文标题:[SceneKit]相机(四)

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