SCNCamera

class SCNCamera : NSObject
A set of camera attributes that can be attached to a node to provide a point of view for displaying the scene.
一组摄影机属性,可以附加到节点以提供用于显示场景的视点。

专业名词解析

FOV 视场(Field Of View)

viewing Frustum 查看平截头体

要显示场景,必须指定一个节点,其摄像机属性包含一个摄像机对象作为视点。

包含摄像机的SCNNode对象定义了一个视点,即摄像机的位置和方向。相机的视线方向始终沿节点本地坐标系的负z轴。要将相机指向场景的不同部分,请使用包含相机的节点的position,rotation或transform属性。 (或者,要确保即使镜头移动了某个场景,相机也始终指向场景中的特定元素,请将SCNLookAtConstraint对象附加到包含相机的节点上。)

从其视角看,SCNCamera对象本身定义了渲染场景的形状以及部分外观。默认情况下,摄影机定义透视投影,您可以使用“调整摄影机透视”中列出的属性(如下所示)控制其视场(FOV)和近及远可见性限制。

convenience init(mdlCamera: MDLCamera)
Creates a camera from the specified Model I/O camera object.
通过 Model I/O 相机 创建一个相机
var name: String? { get set }
相机的名字
var zNear: Double { get set }
近的
相机的深度极限。 可动画的。
接近值确定相机和可见表面之间的最小距离。 如果某个表面比此距离更接近相机,则该表面将被修剪并且不会出现。 接近值不能为零。 默认的接近值是1.0。
var zFar: Double { get set }
远的
相机的深度极限。 可动画的。
far值确定相机和可见表面之间的最大距离。 如果某个表面距离摄像机的距离比此距离更远,则该表面将被修剪并且不会出现。 默认的far值为100.0。
var automaticallyAdjustsZRange: Bool { get set }
一个布尔值,它确定相机是否自动调整其zNear和zFar深度限制。
var fieldOfView: CGFloat { get set }
摄像机的垂直或水平视角。
projectionDirection属性确定此fieldOfView属性是测量相机的垂直视角还是水平视角,SceneKit会自动计算另一个方向的视角,以匹配显示场景的视图的纵横比。 例如,以纵向显示在16:9显示屏上的全屏显示为60的fieldOfView和默认的SCNCameraProjectionDirection.vertical投影,其垂直视角为60°,水平视角为33.75°。

您可以选择使用此fieldOfView属性直接指定视角,或使用sensorHeight和focusLength属性指定对物理相机建模的角度。 设置fieldOfView属性会导致SceneKit自动重新计算focusLength值,而设置sensorHeight或focusLength属性会重新计算fieldOfView。
var focalLength: CGFloat { get set }
相机的焦距,以毫米为单位。
sensorHeight和focusLength属性使用对物理摄像头设备建模的术语来确定摄像头的水平和垂直视角。 (或者,您可以直接通过fieldOfView属性使用视角。)例如,默认传感器高度为24 mm,默认焦距为50 mm,垂直视场为60°。

设置fieldOfView属性会导致SceneKit自动重新计算focusLength值,而设置sensorHeight或focusLength属性会重新计算fieldOfView。
var sensorHeight: CGFloat { get set }
相机成像平面的垂直尺寸,以毫米为单位。
sensorHeight和focusLength属性使用对物理摄像头设备建模的术语来确定摄像头的水平和垂直视角。 (或者,您可以直接通过fieldOfView属性使用视角。)例如,默认传感器高度为24 mm,默认焦距为50 mm,垂直视场为60°。

设置fieldOfView属性会导致SceneKit自动重新计算focusLength值,而设置sensorHeight或focusLength属性会重新计算fieldOfView。
var projectionDirection: SCNCameraProjectionDirection { get set }
用于确定视野或正交比例尺的轴。
case vertical = 0
case horizontal = 1
fieldOfView属性测量由这个projectionDirection属性确定的单个主方向上的视角。 对于另一个方向,SceneKit会根据呈现场景的视图的纵横比自动调整视野。

例如,使用SCNCameraProjectionDirection.vertical的默认投影方向,将fieldOfView设置为60会导致垂直视角为60°。 如果场景以4:3的纵横比出现在显示屏上,则水平视角为80°。 但是,如果场景出现在16:9显示屏上,则水平视角为106°。

此属性对正交投影的缩放具有类似的影响。 orthographicScale属性测量在projectionDirection属性方向上的比例因子,SceneKit根据宽高比自动在另一个方向上计算比例因子。
var projectionTransform: SCNMatrix4 { get set }
相机的投影变换。
此转换表示摄像机所有几何属性的组合:投影类型(透视或正交),视野,深度限制和正交比例(如果适用)。 SceneKit使用此转换在渲染和处理事件时将摄影机节点的坐标空间中的点转换为渲染器的2D空间。

如果您的应用需要出于其他目的在视图和渲染器坐标之间进行转换,则可以直接使用此转换。 另外,如果您计算自己的投影变换矩阵,则可以设置此属性以覆盖由相机的几何属性合成的变换。
var usesOrthographicProjection: Bool { get set }
一个布尔值,确定相机是否使用正投影。
此属性的默认值为false,用于指定透视投影。 在透视投影中,距离摄像机更近的相等大小的对象看起来比距离较远的对象大。

将此属性的值设置为true以指定正交投影。 在正交投影中,大小相等的对象将显示大小相同,而不管距相机的距离如何。

要控制正交摄影机的放大倍数,请使用其orthographicScale属性。
var orthographicScale: Double { get set }
指定使用正交投影时相机的放大倍数。

var categoryBitMask: Int { get set }
定义此摄像机所属类别的遮罩。
可以将场景中的每个摄像机和每个节点分配给一个或多个类别,每个类别对应于位掩码中的一位。 您可以定义应用中使用的掩码值。 当SceneKit渲染场景时,它使用逐位AND操作将每个节点的categoryBitMask属性与pointOfView相机的属性进行比较。 如果结果为非零值,则SceneKit会渲染节点的内容。 使用此属性可使场景中的某些节点仅对某些摄影机可见。

默认掩码设置了所有位,这意味着相机可以看到所有类别的节点。
var wantsDepthOfField: Bool { get set }
A Boolean value that determines whether SceneKit renders depth-of-field blur effects for the camera.
一个布尔值,该值确定SceneKit是否为相机渲染景深模糊效果。
var fStop: CGFloat { get set }
The physical camera aperture simulated by SceneKit for depth-of-field effects. Animatable.

SceneKit为景深效果模拟的物理相机光圈。 可动画的。
F档号描述了物理相机成像系统的聚光区域,通常表示为包括相机焦距ƒ的比率的分母,例如ƒ/ 2或ƒ/ 5.6。 分母越大表示光圈越小,则允许较少的光从相机镜头穿过到成像平面(传感器或胶片),分母越小表示光圈越大,可以使更多的光通过。

SceneKit使用光圈测量来模拟景深模糊效果(也称为散景),近似于物理相机产生的效果。 较大的fStop数(或光圈分母)使大部分场景聚焦,极近或远的深度则显示出轻微的模糊。 较小的数字只会导致焦点出现在较窄的深度范围内,而其余场景的模糊效果则更为明显。 fStop的默认值为5.6。

var apertureBladeCount: Int { get set }
SceneKit为景深效果模拟的物理相机光圈叶片的数量。
var focalBlurSampleCount: Int { get set }
SceneKit用于创建景深模糊效果的像素样本数。
启用wantsDepthOfField设置后,SceneKit使用对图像中多个点进行采样的模糊滤镜来渲染景深模糊(也称为bokeh)效果。 对大量点进行采样会以更高的性能成本产生更高质量的视觉效果,反之亦然。 默认样本数为25。

var motionBlurIntensity: CGFloat { get set }
A factor that determines the intensity of motion blur effects. Animatable.

一个决定运动模糊效果强度的因素。 可动画的。
var wantsHDR: Bool { get set }
HDR
一个布尔值,该值确定SceneKit是否将高动态范围(HDR)后处理效果应用于场景。
var exposureOffset: CGFloat { get set }
曝光补偿
对数偏差可调整SceneKit的色调映射操作的结果,使可见场景变亮或变暗。

var averageGray: CGFloat { get set }
平均灰色
用作色调映射曲线中点的亮度级别。
var whitePoint: CGFloat { get set }
用作色调映射曲线上限的亮度级别。
var minimumExposure: CGFloat { get set }
色调映射中使用的最小曝光值。
var maximumExposure: CGFloat { get set }
色调映射中使用的最大曝光值。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,881评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,052评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,598评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,407评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,823评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,872评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,037评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,778评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,505评论 1 247
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,745评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,233评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,231评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,141评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,939评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,954评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,784评论 2 275