美文网首页ARKITSceneKit学习SceneKit
[SceneKit专题]7.Cameras相机

[SceneKit专题]7.Cameras相机

作者: 苹果API搬运工 | 来源:发表于2017-04-04 14:05 被阅读410次

说明

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

SceneKit系列文章目录

准备工作SCNFloor

创建前需要做一些准备工作,要创建一个可见的内容来展示.比如用floor地板
floor node地板节点是有特殊特性的节点.floor是一个向四方无限延伸的平面,无限大,而且还可以用做反射面.比如镜子,水银,水面.


QQ20170404-142607@2x.png

拖动一个floor到场景中,更改名称为Floor,设置位置等


QQ20170404-142651@2x.png
  • Identity(身份标识):Name是惟一的,决定性的,这样当使用代码就可以拿到该对象.
  • Position(位置):决定节点的摆放位置,相对于父节点.
  • Euler Angles(欧拉角角度):决定节点相对于父节点的旋转.pitch(俯仰), yaw(偏航) 和 roll(滚转).
  • Scale(缩放比例):对节点及其子节点应用全局的缩放,也是相对于父节点.
QQ20170404-142702@2x.png

属性检查器是和类型相关的,下面是floor的属性

  • Reflectivity(反射率):控制表面反射,1.0完全镜面反射,0.0不反射.
  • Falloff Start/End:控制反射的渐变,从哪里开始和结束.当Scene Kit渲染地板上的反射时,用了一个透明度渐变,它可以根据物体距离地板的距离使部分反射逐渐褪色.近的物体将渲染出锐利的反射,远距离的物体则更模糊的反射.
  • Resolution Factor(分辨率):决定反射分辨率的马赛克程度.1.0会有1:1像素级精确反射,而0.1将会看到粗糙,马赛克的反射.这些计算对性能消耗很大,所以牺牲一些反射的质量可以让你的游戏运行更流畅.理解这个参数能让你在性能优化时更方便.
QQ20170404-142714@2x.png

地板没有颜色很难被看到,所以选择材料检查器,点击Diffuse选择颜色

相机有两种:perspective(透视相机) orthographic(正交投影相机).

Perspective camera透视相机

在第一人称射击游戏中很常见,产生近大远小的深度知觉


QQ20170404-133542@2x.png
  • Projection(投影):xy视场范围决定相机视野范围.当xy都设置为0时,系统默认把垂直方向设置为60度,并根据屏幕比例来自动调整水平视野
  • Z Clipping Range(Z轴裁剪范围):决定了平头截体深度范围,小于Near和大于Far的对象将会被裁剪不渲染.
  • Depth of Field(景深):控制相机光圈大小,可以聚集到某一点上产生虚化背景,但是会带来很高的性能消耗.
  • Category Bitmask(类掩码):允许设置屏蔽对象,只看某些特殊的东西.

Orthographic Camera正交投影相机

远近物体一样大,比如吃豆人游戏中


QQ20170404-133905@2x.png
  • Projection(投影):因为物体不管无管远近都一样大,所以当需要放大或缩小视场时不能通过改变距离调整,而要通过scale来放大或缩小视场.
  • Z Clipping Range(Z轴裁剪范围):决定了平头截体深度范围,小于Near和大于Far的对象将会被裁剪不渲染.
  • Depth of Field(景深):控制相机光圈大小,可以聚集到某一点上产生虚化背景,但是会带来很高的性能消耗.
  • Category Bitmask(类掩码):允许设置屏蔽对象,只看某些特殊的东西.

相关文章

  • [SceneKit专题]7.Cameras相机

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

  • 7-Cameras相机

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

  • [SceneKit]相机(四)

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

  • 1-Hello-SceneKit

    文章选自掘金苹果API搬运工的文章[SceneKit专题]1-Hello-SceneKit主要记录自己在学习ARK...

  • [SceneKit专题]1.Hello SceneKit

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

  • [SceneKit专题-OC]1.Hello SceneKit

    本系列文章的学习首先要感谢史前图腾的共享精神,在他的系列文章中有详细的解释,但是他的代码都是Swift写的.并且代...

  • 13-Intermediate-Collision-Detect

    文章选自掘金苹果API搬运工的文章[SceneKit专题]13-Intermediate-Collision-De...

  • 9-Basic-Collision-Detection碰撞检测基

    文章选自掘金苹果API搬运工的文章[SceneKit专题]9-Basic-Collision-Detection碰...

  • 相机专题

    解决小米miui系统调用系统裁剪图片功能camera.action.CROP后崩溃或重新打开app的问题 andr...

  • 23-跨平台游戏(macOS,tvOS,watchOS)

    文章选自掘金苹果API搬运工的文章[SceneKit专题]23-跨平台游戏(macOS,tvOS,watchOS)...

网友评论

  • 小沛2016:楼主你好 我想在scentkit里拿 我看到的画面的视频流 请问可以拿到吗
  • 冰三尺:问个问题, 拖进Sence中的Camera, 为什么不显示从相机的图标, 也没有从相机发射出来的线, 只有一个三维坐标.
    苹果API搬运工:@里脊糖醋 对整个场景来说,只有坐标是关键的,其它那些只是辅助作用的吧,所以不显示

本文标题:[SceneKit专题]7.Cameras相机

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