SCNCamera相机是用于显示场景内容必须的节点, 需要把相机加到节点之上, 再把节点加到根节点上.
SCNNode包含相机物体观察视野的观察点, 即相机的位置和方向. 相机的视角始终沿着节点的局部坐标系的负Z轴, 要在不同的场景指定不同的相机的视野, 使用position, rotation, transfrom来设置.
相机有两种类型透视(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的文件, 拖进场景的控件就不显示形状, 拿相机来举个例子
正常的情况下我们看到的场景中的相机应该是这个样子的
但是在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
适当的调整相机的位置
从相机发射出来的线表示的是相机的视野
右侧有很多关羽相机的属性, 修改某个值, 立马能看到效果, 这点很好, 减少了运行工程的次数, 节省的不少时间, 苹果可这是很贴心呀.
网友评论