11.4匹配包 ios_snmp ios.3.6.1.4.1. - CSDN
精华内容
参与话题
  • SceneKit中文文档

    千次阅读 2018-08-13 10:46:26
    文件 SceneKitTypes.h #import <SceneKit/SceneKitTypes.h> 内容简介: SCNActionTimingMode 动画时间... iOS11.4 SCNActionTimin

    作者:
    声明:转发本文,请联系作者授权

    文件 SceneKitTypes.h

    #import <SceneKit/SceneKitTypes.h>

    内容简介:

    SCNActionTimingMode 动画时间模式

    类 型 说 明 SDK版本
    SCNActionTimingModeLinear 线性模式 iOS11.4
    SCNActionTimingModeEaseIn 缓入模式 iOS11.4
    SCNActionTimingModeEaseOut 缓出模式 iOS11.4
    SCNActionTimingModeEaseInEaseOut 缓入缓出模式 iOS11.4

    SCNColorMask 颜色遮罩

    类 型 说 明 SDK版本
    SCNColorMaskNone 无颜色遮罩 iOS11.4
    SCNColorMaskRed 红色遮罩 iOS11.4
    SCNColorMaskGreen 绿色遮罩 iOS11.4
    SCNColorMaskBlue 蓝色遮罩 iOS11.4
    SCNColorMaskAlpha 透明遮罩 iOS11.4
    SCNColorMaskAll 完全遮罩 iOS11.4

    Vectors 矢量

    变 量(方 法) 说 明 SDK版本
    SCNVector3 三元矢量 [x, y, z] iOS11.4
    SCNVector4 四元矢量 [x, y, z, w] iOS11.4
    SCNVector3Zero 三元零矢量 [0, 0, 0] iOS11.4
    SCNVector4Zero 四元零矢量 [0, 0, 0, 0] iOS11.4
    SCNVector3EqualToVector3 (SCNVector3 a, SCNVector3 b) 判断两个三元矢量a与b是否相等,相等返回YES,否则返回NO iOS11.4
    SCNVector4EqualToVector4 (SCNVector4 a, SCNVector4 b) 判断两个四元矢量a与b是否相等,相等返回YES,否则返回NO iOS11.4
    SCNVector3Make(float x, float y, float z) 三元矢量构造方法 iOS11.4

    Quaternions 四元数

    typedef SCNVector4 SCNQuaternion;

    Matrices 矩阵

    矩阵详解

    (1)[m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44]

    SCNMatrix4

    变 量(方 法) 说 明 SDK版本
    SCNMatrix4Identity 四元单位矩阵 iOS11.4
    SCNMatrix4IsIdentity(SCNMatrix4 m) 判断m是否是单位矩阵 iOS11.4
    SCNMatrix4EqualToMatrix4(SCNMatrix4 a, SCNMatrix4 b) 判断a与b矩阵是否相等 iOS11.4
    SCNMatrix4MakeTranslation(float tx, float ty, float tz) 矩阵平移 iOS11.4
    SCNMatrix4MakeScale(float sx, float sy, float sz) 矩阵缩放 iOS11.4
    SCNMatrix4MakeRotation(float angle, float x, float y, float z) 矩阵旋转 iOS11.4
    SCNMatrix4Translate(SCNMatrix4 m, float tx, float ty, float tz) 矩阵平移 iOS11.4
    SCNMatrix4Scale(SCNMatrix4 m, float sx, float sy, float sz) 矩阵缩放 iOS11.4
    SCNMatrix4Rotate(SCNMatrix4 m, float angle, float x, float y, float z) 矩阵旋转 iOS11.4
    SCNMatrix4Invert(SCNMatrix4 m) 矩阵反转 iOS11.4
    SCNMatrix4Mult(SCNMatrix4 a, SCNMatrix4 b) a矩阵与b矩阵相乘 iOS11.4

    GLKit桥接

    方 法 说 明 SDK版本
    SCNVector3FromGLKVector3(GLKVector3 vector) GLKVector3转SCNVector3 iOS11.4
    SCNVector3ToGLKVector3(SCNVector3 vector) SCNVector3转GLKVector3 iOS11.4
    SCNVector4FromGLKVector4(GLKVector4 vector) GLKVector4转SCNVector4 iOS11.4
    SCNVector4ToGLKVector4(SCNVector4 vector) SCNVector4转GLKVector4 iOS11.4
    SCNMatrix4ToGLKMatrix4(SCNMatrix4 mat) SCNMatrix4转GLKMatrix4 iOS11.4
    SCNMatrix4FromGLKMatrix4(GLKMatrix4 mat) GLKMatrix4转SCNMatrix4 iOS11.4

    SIMD桥接

    方 法 说 明 SDK版本
    SCNVector3ToFloat3(SCNVector3 v) SCNVector3转Float3 iOS11.4
    SCNVector4ToFloat4(SCNVector4 v) SCNVector4转Float4 iOS11.4
    SCNMatrix4ToMat4(SCNMatrix4 m) SCNMatrix4转Mat4 iOS11.4
    SCNVector3FromFloat3(vector_float3 v) Float3转SCNVector3 iOS11.4
    SCNVector4FromFloat4(vector_float4 v) Float4转SCNVector4 iOS11.4
    SCNMatrix4FromMat4(matrix_float4x4 m) Mat4转SCNMatrix4 iOS11.4

    NSValue加成

    方 法 说 明 SDK版本
    + (NSValue *)valueWithSCNVector3:(SCNVector3)v SCNVector3转NSValue iOS11.4
    + (NSValue *)valueWithSCNVector4:(SCNVector4)v SCNVector4转NSValue iOS11.4
    + (NSValue *)valueWithSCNMatrix4:(SCNMatrix4)v SCNMatrix4转NSValue iOS11.4
    属 性 说 明 SDK版本
    SCNVector3 SCNVector3Value SCNVector3 iOS11.4
    SCNVector4 SCNVector4Value SCNVector4 iOS11.4
    SCNMatrix4 SCNMatrix4Value SCNMatrix4 iOS11.4

    * 错 误

    SCNProgramCompilationError 程序编译错误

    文件 SCNAnimation.h

    #import <SceneKit/SCNAnimation.h>

    内容简介

    SCNTimingFunction

    方法 说明 SDK版本
    + (SCNTimingFunction *)functionWithTimingMode:(SCNActionTimingMode)timingMode 使用SCNActionTimingMode初始化 iOS11.4
    + (SCNTimingFunction *)functionWithCAMediaTimingFunction:(CAMediaTimingFunction *)caTimingFunction 使用CATimingFunction初始化 iOS11.4

    SCNAnimatable协议

    属 性 说 明 SDK版本
    NSArray<NSString *> *animationKeys 所有绑定的动画标识数组 iOS11.4
    方 法 说 明 备 注 SDK 版本
    - (void)addAnimation:(id <SCNAnimation>)animation forKey:(nullable NSString *)key 添加并运行动画 iOS11.4
    - (void)addAnimationPlayer:(SCNAnimationPlayer *)player forKey:(nullable NSString *)key 添加一个动画播放器 iOS11.0 iOS11.4
    - (void)removeAllAnimations 移除所有动画 iOS11.4
    - (void)removeAnimationForKey:(NSString *)key 移除给定标识的动画 iOS11.4
    - (nullable SCNAnimationPlayer *)animationPlayerForKey:(NSString *)key 用给定标识获取动画播放器 iOS11.0 iOS11.4
    - (void)removeAnimationForKey:(NSString *)key blendOutDuration:(CGFloat)duration 移除指定标识的动画 iOS11.0 iOS11.4
    - (void)removeAnimationForKey:(NSString *)key fadeOutDuration:(CGFloat)duration 移除指定标识的动画 已废弃(推荐使用-removeAnimationForKey:blendOutDuration:)iOS8.0-11.0 iOS11.4
    - (nullable CAAnimation *)animationForKey:(NSString *)key 获取给定标识的动画 已废弃(推荐使用-animationPlayerForKey:)iOS8.0-11.0 iOS11.4
    - (void)pauseAnimationForKey:(NSString *)key 暂停指定标识动画 已废弃(推荐使用-[SCNAnimationPlayer setPaused:])iOS8.0-11.0 iOS11.4
    - (void)resumeAnimationForKey:(NSString *)key 继续给定标识的动画 已废弃(推荐使用-[SCNAnimationPlayer setPaused:])iOS8.0-11.0 iOS11.4
    - (void)setSpeed:(CGFloat)speed forAnimationKey:(NSString *)key 更新指定标识的动画速度 已废弃(推荐使用-[SCNAnimationPlayer setSpeed:])iOS10.0-11.0 iOS11.4
    - (BOOL)isAnimationForKeyPaused:(NSString *)key 是否指定标识的动画被暂停 已废弃(推荐使用-[SCNAnimationPlayer paused])iOS8.0-11.0 iOS11.4

    SCNAnimation

    属 性 说 明 SDK 版本
    NSTimeInterval duration 动画时长(单位秒,默认是0) iOS11.4
    NSString *keyPath 动画key iOS11.4
    SCNTimingFunction *timingFunction 动画时间函数 iOS11.4
    NSTimeInterval blendInDuration 混入时长 iOS11.4
    NSTimeInterval blendOutDuration 混出时长 iOS11.4
    BOOL removedOnCompletion 如果为true,则一旦活动持续时间过去,动画将从渲染树中删除 iOS11.4
    BOOL appliedOnCompletion 如果为true,则动画将在其活动持续时间过后应用于模型树 iOS11.4
    CGFloat repeatCount 对象重复个数 iOS11.4
    BOOL autoreverses 如果为true,则对象在向前播放后向后播放 iOS11.4
    NSTimeInterval startDelay 动画开始延迟 iOS11.4
    NSTimeInterval timeOffset 时间偏移 iOS11.4
    BOOL fillsForward 如果为true,则动画在其活动持续时间后保持活动状态并计算其结束值。默认为NO。 iOS11.4
    BOOL fillsBackward 如果为true,则动画在其活动持续时间之前处于活动状态并计算其起始值。默认为NO。 iOS11.4
    BOOL usesSceneTimeBase 确定是使用场景时间还是系统时间评估接收器。 iOS11.4
    SCNAnimationDidStartBlock animationDidStart 动画开始时调用 iOS11.4
    NSArray<SCNAnimationEvent *> *animationEvents 指定附加到接收器的动画事件 iOS11.4
    BOOL additive 如果为true,则动画指定的值将“添加”到属性的当前显示值以生成新的演示文稿值。加法函数是类型相关的,例如,对于仿射变换,两个矩阵是连接的。 iOS11.4
    BOOL cumulative “cumulative”属性会影响重复动画的生成方式他们的结果。如果为true,则动画的当前值为上一个重复周期结束时的值加上的值当前的重复循环。如果为false,则该值只是值计算当前的重复周期。 iOS11.4
    方 法 说 明 SDK 版本
    + (SCNAnimation *)animationWithContentsOfURL:(NSURL *)animationUrl 加载并返回从指定URL加载的动画 iOS11.4
    + (SCNAnimation *)animationNamed:(NSString *)animationName 在当前应用程序包中加载并返回具有指定名称的动画 iOS11.4
    + (SCNAnimation *)animationWithCAAnimation:(CAAnimation *)caAnimation 返回从CAAnimation初始化的SCNAnimation iOS11.4

    SCNAnimationPlayer (iOS11.0)

    属性 说明 SDK版本
    SCNAnimation *animation 播放的动画 iOS11.4
    CGFloat speed 速度 iOS11.4
    CGFloat blendFactor 控制播放动画的影响。设置为1时,将应用动画而不进行任何混合。设置为小于1时,动画值与动画属性的当前显示值混合。默认为1.0。动画。 iOS11.4
    BOOL paused 动画是否被暂停 iOS11.4
    方法 说明 SDK版本
    + (SCNAnimationPlayer *)animationPlayerWithAnimation:(SCNAnimation *)animation 用一个动画初始化一个动画播放器 iOS11.4
    - (void)play 设置暂停为NO并且从动画开始重新播放 iOS11.4
    - (void)stop 停止动画 iOS11.4
    - (void)stopWithBlendOutDuration:(NSTimeInterval)duration 停止动画并在指定的持续时间内平滑地混合动画 iOS11.4

    SCNAnimationEvent

    方法 说明 SDK版本
    + (instancetype)animationEventWithKeyTime:(CGFloat)time block:(SCNAnimationEventBlock)eventBlock 用一个动画初始化一个动画播放器 iOS11.4

    文件SCNBoundingVolume.h

    #import <SceneKit/SCNBoundingVolume.h>

    SCNBoundingVolume协议

    方法 说明 SDK版本
    - (BOOL)getBoundingBoxMin:(nullable SCNVector3 *)min max:(nullable SCNVector3 *)max 使用边界框的最小和最大顶点填充最小和最大矢量 iOS11.4
    - (void)setBoundingBoxMin:(nullable SCNVector3 *)min max:(nullable SCNVector3 *)max 使用提供的最小和最大向量覆盖接收器边界框(在接收器的本地空间中) iOS11.4
    - (BOOL)getBoundingSphereCenter:(nullable SCNVector3 *)center radius:(nullable CGFloat *)radius 使用边界球体的中心填充中心矢量,并将边界球体的半径存储在“半径”中 iOS11.4

    文件SCNSceneRenderer.h

    #import <SceneKit/SCNSceneRenderer.h>

    内容简介

    SCNAntialiasingMode 场景渲染抗锯齿模式(macos10.10

    模 式 说 明 SDK版本
    SCNAntialiasingModeNone 默认 iOS11.4
    SCNAntialiasingModeMultisampling2X 二倍多采样 iOS11.4
    SCNAntialiasingModeMultisampling4X 四倍多采样 iOS11.4

    SCNRenderingAPI 渲染SCNView和SCNRenderer使用的API(iOS9.0以上)

    模 式 说 明 SDK版本
    SCNRenderingAPIMetal Metal iOS11.4
    SCNRenderingAPIOpenGLES2 OpenGLES2 iOS11.4

    SCNDebugOptions 调试选项(iOS9以上)

    模 式 说 明 备 注 SDK版本
    SCNDebugOptionNone 默认 iOS11.4
    SCNDebugOptionShowPhysicsShapes 显示形状 iOS11.4
    SCNDebugOptionShowBoundingBoxes 显示边界 iOS11.4
    SCNDebugOptionShowLightInfluences 显示光影响 iOS11.4
    SCNDebugOptionShowLightExtents 显示光范围 iOS11.4
    SCNDebugOptionShowPhysicsFields 显示SCNPhysicsFields力和范围 iOS11.4
    SCNDebugOptionShowWireframe 在对象上显示线框 iOS11.4
    SCNDebugOptionRenderAsWireframe 将对象渲染为线框 iOS11.0 iOS11.4
    SCNDebugOptionShowSkeletons 显示皮肤骨骼 iOS11.0 iOS11.4
    SCNDebugOptionShowCreases 显示细分折痕 iOS11.0 iOS11.4
    SCNDebugOptionShowConstraints 显示滑块约束 iOS11.0 iOS11.4
    SCNDebugOptionShowCameras 显示相机 iOS11.0 iOS11.4

    SCNSceneRenderer协议

    属 性 说 明 备 注 SDK版本
    SCNScene *scene 指定接收器的场景 iOS11.4
    NSTimeInterval sceneTime 指定显示场景的当前“场景时间” MacOS10.10 iOS11.4
    id <SCNSceneRendererDelegate> delegate 指定的渲染器代理 iOS11.4
    BOOL playing 如果场景正在播放返回YES,否则返回NO iOS11.4
    BOOL loops 指示接收器在到达其内容结尾时是否重新开始播放。默认值:是。 iOS11.4
    SCNNode *pointOfView 指定用于渲染场景的视点 iOS11.4
    BOOL autoenablesDefaultLighting 指定接收器是否应自动点亮没有光源的场景。默认值为NO iOS11.4
    BOOL jitteringEnabled 指定接收器是否应抖动渲染的场景以减少锯齿伪像 iOS11.4
    BOOL showsStatistics 确定接收器是否应显示FPS等统计信息。默认为NO MacOS10.9 iOS11.4
    SCNDebugOptions debugOptions 指定接收器的调试选项。默认为SCNDebugOptionNone。 iOS9.0 iOS11.4
    SKScene *overlaySKScene 将接收器的叠加指定为SpriteKit场景实例。默认为空。 MacOS10.10 iOS11.4
    SCNRenderingAPI renderingAPI 指定与接收器关联的呈现API。 iOS9.0 iOS11.4
    void *context OpenGL渲染上下文 iOS11.4
    id <MTLRenderCommandEncoder> currentRenderCommandEncoder 当前渲染编码器 iOS9.0 iOS11.4
    id <MTLDevice> device 用于Metal渲染的设备 iOS9.0 iOS11.4
    MTLPixelFormat colorPixelFormat 颜色格式 iOS9.0 iOS11.4
    MTLPixelFormat depthPixelFormat 渲染器的深度附件的像素格式。此属性仅在使用Metal设备创建的渲染器上有效。 iOS9.0 iOS11.4
    MTLPixelFormat stencilPixelFormat 渲染器的模板附件的像素格式。此属性仅在使用Metal设备创建的渲染器上有效。 iOS9.0 iOS11.4
    id <MTLCommandQueue> commandQueue 渲染器的命令队列。此属性仅在使用Metal设备创建的渲染器上有效。否则设置为nil。 iOS11.4
    AVAudioEngine *audioEngine 包含场景使用的音频引擎实例。 iOS9.0 iOS11.4
    AVAudioEnvironmentNode *audioEnvironmentNode 包含场景用于对声音进行空间化的音频环境节点的实例。 iOS9.0 iOS11.4
    SCNNode *audioListener 使用此属性可设置音频节点,以在渲染此场景的位置音频时用作侦听器位置和方向。默认值为nil,表示将动态使用当前视点。 iOS9.0 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)presentScene:(SCNScene *)scene withTransition:(SKTransition *)transition incomingPointOfView:(nullable SCNNode *)pointOfView completionHandler:(nullable void (^)(void))completionHandler 在接收器中显示SCNScene,替换当前场景。 iOS9.0 iOS11.4
    - (NSArray<SCNHitTestResult *> *)hitTest:(CGPoint)point options:(nullable NSDictionary<SCNHitTestOption, id> *)options 返回包含指定点的每个节点的SCNHitTestResult数组 iOS11.4
    - (BOOL)isNodeInsideFrustum:(SCNNode *)node withPointOfView:(SCNNode *)pointOfView 从指定的角度测试节点是否可见。 MacOS10.9 iOS11.4
    - (NSArray<SCNNode *> *)nodesInsideFrustumWithPointOfView:(SCNNode *)pointOfView 返回一个数组,其中包含从指定视点可见的节点。 MacOS10.9 iOS11.4
    - (SCNVector3)projectPoint:(SCNVector3)point 使用接收器的当前视点和视口在世界坐标系中投影点。 iOS9.0 iOS11.4
    - (SCNVector3)unprojectPoint:(SCNVector3)point 使用接收器的当前视点和视口取消投影具有深度信息的屏幕空间2D点。 MacOS10.9 iOS11.4
    - (BOOL)prepareObject:(id)object shouldAbortBlock:(nullable NS_NOESCAPE BOOL (^)(void))block 准备指定的绘图对象 MacOS10.9 iOS11.4
    - (void)prepareObjects:(NSArray *)objects withCompletionHandler:(nullable void (^)(BOOL success))completionHandler 准备指定的对象以在背景上绘制。 MacOS10.10 iOS11.4

    SCNSceneRendererDelegate协议

    方 法 说 明 备 注 SDK版本
    - (void)renderer:(id <SCNSceneRenderer>)renderer updateAtTime:(NSTimeInterval)time 实现此功能以执行每帧游戏逻辑。在评估任何动画和动作并模拟任何物理之前,每帧只调用一次。 MacOS10.10 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didApplyAnimationsAtTime:(NSTimeInterval)time 一旦场景渲染器确实应用了动画,就在代理上调用。 MacOS10.10 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didSimulatePhysicsAtTime:(NSTimeInterval)time 一旦场景渲染器确实模拟了物理,就在代理上调用。 MacOS10.10 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didApplyConstraintsAtTime:(NSTimeInterval)time 一旦场景渲染器确实应用了约束,就在代理上调用。 iOS11.0 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time 在场景渲染器渲染场景之前在代理上调用。此时,绑定了openGL上下文和目标帧缓冲区 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time 一旦场景渲染器确实渲染场景,就在代理上调用 iOS11.4

    文件SCNShadable.h

    #import <SceneKit/SCNShadable.h>

    内容简介

    SCNBufferFrequency(应更新自定义程序输入的频率) (iOS9.0

    类 型 说 明 SDK版本
    SCNBufferFrequencyPerFrame 每帧更新 iOS11.4
    SCNBufferFrequencyPerNode 每个节点更新 iOS11.4
    SCNBufferFrequencyPerShadable SCNMaterial or SCNGeometry iOS11.4

    SCNBufferStream协议

    方 法 说 明 SDK版本
    - (void)writeBytes:(void *)bytes length:(NSUInteger)length 写入指定长度的字节数 iOS11.4

    SCNShadable协议

    属 性 说 明 备 注 SDK版本
    SCNProgram *program 指定用于渲染接收器的自定义程序 iOS11.4
    NSDictionary<SCNShaderModifierEntryPoint, NSString *> *shaderModifiers 着色修改器片段字典,定位入口点。有效键是“着色器修改器入口点”常量中描述的入口点。值是如下所述格式化的代码片段。 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)handleBindingOfSymbol:(NSString *)symbol usingBlock:(nullable SCNBindingBlock)block 设置要在渲染时调用的块,以绑定接收器SCNProgram的指定符号的值。此方法对着色器修改器中声明的符号无效。 MacOS10.9 iOS11.4
    - (void)handleUnbindingOfSymbol:(NSString *)symbol usingBlock:(nullable SCNBindingBlock)block 设置要在渲染时调用的块,以取消绑定接收器SCNProgram的指定符号的值。此方法对着色器修改器中声明的符号无效。 MacOS10.9 iOS11.4

    SCNProgram

    属 性 说 明 备 注 SDK版本
    NSString *vertexShader 顶点着色 iOS11.4
    NSString *fragmentShader 片元着色 iOS11.4
    NSString *vertexFunctionName 顶点函数名 iOS9.0 iOS11.4
    NSString *fragmentFunctionName 片元函数名 iOS9.0 iOS11.4
    BOOL opaque 确定接收器的片段是否不透明 MacOS10.10 iOS11.4
    id <SCNProgramDelegate> delegate 接收器的代理 iOS11.4
    id <MTLLibrary> library Metal库 iOS9.0 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)handleBindingOfBufferNamed:(NSString *)name frequency:(SCNBufferFrequency)frequency usingBlock:(SCNBufferBindingBlock)block 设置要在渲染时调用的块,以绑定接收器程序的指定符号的缓冲区 iOS9.0 iOS11.4
    - (void)setSemantic:(nullable NSString *)semantic forSymbol:(NSString *)symbol options:(nullable NSDictionary<NSString *, id> *)options 将SceneKit语义与符号相关联 iOS11.4
    - (nullable NSString *)semanticForSymbol:(NSString *)symbol 从程序源代码中检索与符号关联的SceneKit语义 iOS11.4

    SCNProgramDelegate协议

    方 法 说 明 备 注 SDK版本
    - (void)program:(SCNProgram *)program handleError:(NSError *)error 每当发生编译错误时在代理上调用。 iOS11.4
    - (BOOL)programIsOpaque:(SCNProgram *)program 如果程序生成的片段不是不透明的,则委托应该实现此方法并返回NO。 已废弃(使用SCNProgram.opaque替代)MacOS10.8-10.10, iOS不可用 iOS11.4

    文件SCNView.h

    #import <SceneKit/SCNView.h>

    内容简介

    SCNCameraControlConfiguration协议(iOS11.0

    属 性 说 明 SDK版本
    BOOL autoSwitchToFreeCamera iOS11.4
    BOOL allowsTranslation iOS11.4
    CGFloat flyModeVelocity 飞行模式速率(m/s) iOS11.4
    CGFloat panSensitivity iOS11.4
    CGFloat truckSensitivity iOS11.4
    CGFloat rotationSensitivity iOS11.4

    SCNView

    属 性 说 明 备 注 SDK版本
    SCNScene *scene 场景 iOS11.4
    BOOL rendersContinuously 设置为YES时,视图会以显示链接帧速率不断重绘。设置为NO时,视图将仅在接收器场景中的某些内容发生变化或动画时重绘。默认为NO。 iOS11.4
    BOOL allowsCameraControl 一个布尔值,用于确定用户是否可以操纵用于渲染场景的视点。 iOS11.4
    id <SCNCameraControlConfiguration> cameraControlConfiguration 描述导航默认摄像机控制器的事件处理程序的当前配置的对象。 iOS11.0 iOS11.4
    SCNCameraController* defaultCameraController 当allowCameraController设置为YES时,返回用于驱动当前视点的默认SCNCameraController。 iOS11.0 iOS11.4
    NSInteger preferredFramesPerSecond 您希望视图重绘其内容的速率。 MacOS10.12 iOS11.4
    EAGLContext *eaglContext 指定与接收器关联的EAGL上下文。 iOS11.4
    SCNAntialiasingMode antialiasingMode 在iOS上默认为SCNAntialiasingModeMultisampling4X,在iOS上默认为SCNAntialiasingModeNone MacOS10.10 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (instancetype)initWithFrame:(CGRect)frame options:(nullable NSDictionary<NSString *, id> *)options 初始化并返回具有指定框架矩形的新分配的SCNView对象 iOS11.4
    - (UIImage *)snapshot 绘制视图的内容并将其作为新图像对象返回 MacOS10.10 iOS11.4
    - (IBAction)play:(nullable id)sender 此操作方法开始在当前位置播放场景 iOS11.4
    - (IBAction)pause:(nullable id)sender 此操作方法暂停场景播放 iOS11.4
    - (IBAction)stop:(nullable id)sender 此操作方法停止场景播放并将当前时间重置为场景的开始时间 iOS11.4

    文件SCNRenderer.h

    #import <SceneKit/SCNRenderer.h>

    内容简介

    SCNRenderer

    属 性 说 明 备 注 SDK版本
    SCNScene *scene 场景 iOS11.4
    CFTimeInterval nextFrameTime 返回下次更新发生的时间。如果无限,则无需安排更新。如果是当前帧时间,则连续动画正在运行,并且应在“自然”延迟之后安排更新。 MacOS10.10 iOS11.4
    方 法 说 明 备 注 SDK版本
    + (instancetype)rendererWithContext:(nullable EAGLContext *)context options:(nullable NSDictionary *)options 创建一个新的renderer对象 iOS11.4
    + (instancetype)rendererWithDevice:(nullable id <MTLDevice>)device options:(nullable NSDictionary *)options 创建一个使用Metal渲染的新渲染器对象 iOS9.0 iOS11.4
    - (void)renderAtTime:(CFTimeInterval)time viewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor 更新并在指定时间(系统时间)视口,金属命令缓冲区和传递描述符中呈现接收器的场景 iOS9.0 iOS11.4
    - (void)renderAtTime:(CFTimeInterval)time 更新并在指定时间(系统时间)渲染接收器的场景 MacOS10.10 iOS11.4
    - (void)updateAtTime:(CFTimeInterval)time 在指定时间(系统时间)更新接收器的场景 iOS11.0 iOS11.4
    - (void)renderWithViewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor 使用指定的视口,Metal命令缓冲区和传递描述符呈现接收器的场景 iOS11.0 iOS11.4
    - (UIImage *)snapshotAtTime:(CFTimeInterval)time withSize:(CGSize)size antialiasingMode:(SCNAntialiasingMode)antialiasingMode 将指定时间(系统时间)的接收器场景渲染成图像 iOS10.0 iOS11.4
    - (void)updateProbes:(NSArray<SCNNode*> *)lightProbes atTime:(CFTimeInterval)time 通过在指定时间计算接收器场景中的入射辐照度来更新指定的探测器 iOS10.0 iOS11.4
    - (void)render 在当前系统时间呈现接收器的场景 已废弃(请使用-renderAtTime:withEncoder:pass:commandQueue:)iOS8.0-9.0 iOS11.4

    文件SCNScene.h

    #import <SceneKit/SCNScene.h>

    内容简介 SCNScene是描述3d场景的类。它封装了一个节点层次结构。

    SCNSceneExportDelegate协议

    属 性 说 明 备 注 SDK版本
    typedef void (^SCNSceneExportProgressHandler)(float totalProgress, NSError * _Nullable error, BOOL *stop); 在导出场景时将重复调用的块的签名 iOS11.4
    NSString * const SCNSceneExportDestinationURL 指定要导出的场景的最终目标(作为NSURL) MacOS10.9
    NSString * SCNSceneAttribute 这些键可以与 - [SCNScene attributeForKey:]方法一起使用 iOS11.4
    SCNSceneAttribute const SCNSceneStartTimeAttributeKey 浮点值,封装在NSNumber中,包含场景的开始时间 iOS11.4
    SCNSceneAttribute const SCNSceneEndTimeAttributeKey 浮点值,封装在NSNumber中,包含场景的结束时间 iOS11.4
    SCNSceneAttribute const SCNSceneFrameRateAttributeKey 浮点值,封装在NSNumber中,包含场景的帧速率 iOS11.4
    SCNSceneAttribute const SCNSceneUpAxisAttributeKey 封装在NSValue中的vector3值,包含场景的上轴。这仅供参考,将上轴设置为无效 iOS11.4

    SCNScene

    属 性 说 明 备 注 SDK版本
    SCNNode *rootNode 指定节点层次结构的根节点 iOS11.4
    SCNPhysicsWorld *physicsWorld 指定接收器的物理世界 MacOS10.10
    SCNMaterialProperty *background 指定接收器的背景 MacOS10.9 iOS11.4
    SCNMaterialProperty *lightingEnvironment 指定接收器的基于图像的照明环境(IBL) iOS10.10 iOS11.4
    CGFloat fogStartDistance 指定接收器的雾起始距离。动画。默认为0。 MacOS10.10 iOS11.4
    CGFloat fogEndDistance 指定接收器的雾端距离。动画。默认为0。 MacOS10.10 iOS11.4
    CGFloat fogDensityExponent 指定接收器的雾功率指数。动画。默认为1。 MacOS10.10 iOS11.4
    id fogColor 指定接收器的雾色(NSColor或CGColorRef)。动画。默认为白色。 MacOS10.10 iOS11.4
    BOOL paused 控制场景是否暂停。默认为NO。 MacOS10.10 iOS11.4
    方 法 说 明 备 注 SDK版本
    + (instancetype)scene 场景类方法,返回一个空场景 iOS11.4
    - (nullable id)attributeForKey:(NSString *)key; 检索场景的属性 iOS11.4
    - (void)setAttribute:(nullable id)attribute forKey:(NSString *)key; 设置场景属性 iOS11.4
    + (nullable instancetype)sceneNamed:(NSString *)name 创建并返回与指定文件名关联的场景。 MacOS10.9 iOS11.4
    + (nullable instancetype)sceneNamed:(NSString *)name inDirectory:(nullable NSString *)directory options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options 创建并返回与指定文件名关联的场景。 MacOS10.10 iOS11.4
    + (nullable instancetype)sceneWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options error:(NSError **)error; 从指定的URL创建并返回一个场景。 iOS11.4
    - (BOOL)writeToURL:(NSURL *)url options:(nullable NSDictionary<NSString *, id> *)options delegate:(nullable id <SCNSceneExportDelegate>)delegate progressHandler:(nullable SCNSceneExportProgressHandler)progressHandler 将场景写入指定的URL iOS10.0 iOS11.4

    SCNSceneExportDelegate协议

    方 法 说 明 备 注 SDK版本
    - (nullable NSURL *)writeImage:(UIImage *)image withSceneDocumentURL:(NSURL *)documentURL originalImageURL:(nullable NSURL *)originalImageURL 在委托上调用以编写引用的图像并返回目标URL。 iOS10.0 iOS11.4

    文件SCNSceneSource.h

    #import <SceneKit/SCNSceneSource.h>

    内容简介 SCNSceneSource对象,抽象数据读取任务。场景源可以从URL或NSData对象读取场景数据。

    Scene source属性

    KEY 说 明 SDK版本
    SCNSceneSourceAssetContributorsKey 文件贡献者。这些值是使用“Contributor dictionary keys”组中记录的键填充的字典。 iOS11.4
    SCNSceneSourceAssetCreatedDateKey 文件创建时。该值是NSDate实例。
    SCNSceneSourceAssetModifiedDateKey 上次修改文件时。该值是NSDate实例。 iOS11.4
    SCNSceneSourceAssetUpAxisKey 文件的上轴。例如,如果文件面向Y-up,那么这就是字符串\ @“0.0 1.0 0.0” iOS11.4
    SCNSceneSourceAssetUnitKey 文件中使用的单位。该值是一个填充了“单位字典键”组中记录的键的字典。 iOS11.4

    Contributor dictionary keys

    KEY 说 明 SDK版本
    SCNSceneSourceAssetAuthoringToolKey 用于创建文件的创作工具。相应的值是NSString。 iOS11.4
    SCNSceneSourceAssetAuthorKey 该文件的作者。相应的值是NSString。 iOS11.4

    Unit dictionary keys

    KEY 说 明 SDK版本
    SCNSceneSourceAssetUnitNameKey 单位的名称(NSString) iOS11.4
    SCNSceneSourceAssetUnitMeterKey NSNumber,封装浮点值,表示单位是多少米。例如,如果名称是\ @“厘米”,那么这将是0.01。 iOS11.4

    Scene loading options 场景加载选项

    KEY 说 明 备 注 SDK版本
    SCNSceneSourceCreateNormalsIfAbsentKey 如果文件中没有给出顶点,则允许尝试猜测顶点的可接受法线 iOS11.4
    SCNSceneSourceCheckConsistencyKey 传YES以执行文档校验 iOS11.4
    SCNSceneSourceFlattenSceneKey 传YES以展平场景图如果可能。 iOS11.4
    SCNSceneSourceUseSafeModeKey 可以在SCNScene和SCNSceneSource加载方法的选项字典中设置此选项。 iOS11.4
    SCNSceneSourceUseSafeModeKey 传YES以启用安全模式 已废弃(不再支持)iOS8.0-11.0 iOS11.4
    SCNSceneSourceAssetDirectoryURLsKey 传递一个目录URL数组,其中SceneKit应该查找资源 iOS11.4
    SCNSceneSourceOverrideAssetURLsKey 传递YES以覆盖具有通过SCNSceneSourceAssetDirectoryURLsKey传递的目录URL的资产URL。 iOS11.4
    SCNSceneSourceStrictConformanceKey 传递YES以严格的方式解释文件的3D格式。 iOS11.4
    SCNSceneSourceConvertUnitsToMetersKey 传递要转换场景的单位(以米为单位)。 iOS11.0 iOS11.4
    SCNSceneSourceConvertToYUpKey 如果场景当前具有不同的向上轴,则应将场景转换为Y,否则通过YES。 iOS11.0 iOS11.4
    SCNSceneSourceAnimationImportPolicyKey 传递以下值之一以指定如何处理已加载的动画。 MacOS10.10 iOS11.4
    SCNSceneSourceLoadingOptionPreserveOriginalTopology 传递YES以使SceneKit保留原始拓扑,而不是在加载时进行三角测量。 iOS10.0 iOS11.4

    相关宏定义

    #define SCNSceneSourceLoadingOptionCreateNormalsIfAbsent SCNSceneSourceCreateNormalsIfAbsentKey
    #define SCNSceneSourceLoadingOptionCheckConsistency SCNSceneSourceCheckConsistencyKey
    #define SCNSceneSourceLoadingOptionFlattenScene SCNSceneSourceFlattenSceneKey
    #define SCNSceneSourceLoadingOptionUseSafeMode SCNSceneSourceUseSafeModeKey
    #define SCNSceneSourceLoadingOptionAssetDirectoryURLs SCNSceneSourceAssetDirectoryURLsKey
    #define SCNSceneSourceLoadingOptionOverrideAssetURLs SCNSceneSourceOverrideAssetURLsKey
    #define SCNSceneSourceLoadingOptionStrictConformance SCNSceneSourceStrictConformanceKey
    #define SCNSceneSourceLoadingOptionConvertUnitsToMeters SCNSceneSourceConvertUnitsToMetersKey
    #define SCNSceneSourceLoadingOptionConvertToYUp SCNSceneSourceConvertToYUpKey
    #define SCNSceneSourceLoadingOptionAnimationImportPolicy SCNSceneSourceAnimationImportPolicyKey

    SCNSceneSourceLoadingOptionAnimationImportPolicy 资源加载动画导入策略

    KEY 说 明 SDK版本
    SCNSceneSourceAnimationImportPolicyPlay 将动画添加到场景并播放一次(repeatCount设置为1)。 iOS11.4
    SCNSceneSourceAnimationImportPolicyPlayRepeatedly 将动画添加到场景并重复播放(repeatCount设置为无穷大)。 iOS11.4
    SCNSceneSourceAnimationImportPolicyDoNotPlay 仅在SCNSceneSource中保留动画,不要添加到场景的动画元素。 iOS11.4
    SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase 将动画添加到场景并使用SCNView / SCNRenderer的场景时间播放它们(usesSceneTimeBase设置为YES) iOS11.4
    常 量 说明 SDK版本
    SCNDetailedErrorsKey 访问详细验证错误的关键 iOS11.4
    SCNConsistencyElementIDErrorKey 对于基于XML的格式,发生错误的元素的ID iOS11.4
    SCNConsistencyElementTypeErrorKey 对于基于XML的格式,发生错误的元素的标记名称 iOS11.4
    SCNConsistencyLineNumberErrorKey 对于基于文本的格式,发生错误的行号 iOS11.4

    SCNConsistencyErrorCode 一致性检查程序返回的错误代码

    常 量 说明 SDK版本
    SCNConsistencyInvalidURIError 场景文件包含无效的URI(或URL) iOS11.4
    SCNConsistencyInvalidCountError 场景文件包含无效数量的场景 iOS11.4
    SCNConsistencyInvalidArgumentError 场景文件中的元素包含其属性之一的无效选项 iOS11.4
    SCNConsistencyMissingElementError 缺少场景文件中的必需元素 iOS11.4
    SCNConsistencyMissingAttributeError 场景文件中的元素缺少必需属性 iOS11.4
    SCNConsistencyXMLSchemaValidationError 场景文件的格式与其XML架构定义不匹配 iOS11.4

    SCNSceneSourceStatus 场景加载过程状态

    常 量 说明 SDK版本
    SCNSceneSourceStatusError SceneKit尝试加载场景时发生错误 iOS11.4
    SCNSceneSourceStatusParsing SceneKit已开始反序列化源文件 iOS11.4
    SCNSceneSourceStatusValidating SceneKit已经开始验证场景文件的格式 iOS11.4
    SCNSceneSourceStatusProcessing SceneKit已经开始从场景文件的内容生成场景图形对象 iOS11.4
    SCNSceneSourceStatusComplete SceneKit已成功加载场景文件的内容 iOS11.4

    typedef void (^SCNSceneSourceStatusHandler)(float totalProgress, SCNSceneSourceStatus status, NSError * _Nullable error, BOOL *stop);

    SCNSceneSource SCNSceneSource对象,抽象数据读取任务。场景源可以从URL或NSData对象读取场景数据。为适当的源创建SCNSceneSource对象后,可以使用SCNSceneSource方法获取场景。

    属 性 说明 SDK版本
    NSURL *url 接收者的URL(如果有的话) iOS11.4
    NSData *data 接收者的URL(如果有的话) iOS11.4
    方 法 说 明 备 注 SDK版本
    + (nullable instancetype)sceneSourceWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options 创建并初始化SCNSceneSource实例 iOS11.4
    + (nullable instancetype)sceneSourceWithData:(NSData *)data options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options 创建并初始化SCNSceneSource实例 iOS11.4
    - (nullable instancetype)initWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options 从URL初始化SCNSceneSource实例 iOS11.4
    - (nullable instancetype)initWithData:(NSData *)data options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options 从NSData对象初始化SCNSceneSource实例 iOS11.4
    - (nullable SCNScene *)sceneWithOptions:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options statusHandler:(nullable SCNSceneSourceStatusHandler)statusHandler 使用指定的选项创建并初始化3D文件中描述的场景,并允许您监视进度 iOS11.4
    - (nullable SCNScene *)sceneWithOptions:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options error:(NSError **)error 使用指定的选项创建并初始化3D文件中描述的场景 iOS11.4
    - (nullable id)propertyForKey:(NSString *)key 返回给定键的3D文件中定义的属性。见上面的键 iOS11.4
    - (nullable id)entryWithIdentifier:(NSString *)uid withClass:(Class)entryClass 返回在id为“uid”的接收者库中找到的“entryClass”实例 iOS11.4
    - (NSArray<NSString *> *)identifiersOfEntriesWithClass:(Class)entryClass 返回接收器库中为“entryClass”类找到的ID iOS11.4
    - (NSArray<id> *)entriesPassingTest:(NS_NOESCAPE BOOL (^)(id entry, NSString *identifier, BOOL *stop))predicate 返回接收器库中通过给定块中的测试的条目 MacOS10.9 iOS11.4

    文件SCNNode.h

    渲染参数

    常 量 说 明 SDK版本
    SCNModelTransform 一个4*4矩阵将坐标从模型空间转换为场景(或世界)空间 iOS11.4
    SCNViewTransform 一个4*4矩阵将场景(或世界)空间中的坐标转换为视图(或眼睛)空间 iOS11.4
    SCNProjectionTransform 一个4*4矩阵将视图(或眼睛)空间中的坐标转换为剪辑空间 iOS11.4
    SCNNormalTransform 一个4*4矩阵将表面法向量从模型空间转换为视图(或眼睛)空间 iOS11.4
    SCNModelViewTransform 一个包含模型和视图转换的串联 iOS11.4
    SCNModelViewProjectionTransform 包含模型,视图和投影转换的串联 iOS11.4

    SCNMovabilityHint 可用的可移动模式

    常 量 说 明 备 注 SDK版本
    SCNMovabilityHintFixed 预计节点不会随时间移动 iOS10.0 iOS11.4
    SCNMovabilityHintMovable 该节点预计会随着时间的推移而移动 iOS10.0 iOS11.4

    SCNNodeFocusBehavior 控制焦点(UIFocus)行为

    常 量 说 明 备 注 SDK版本
    SCNNodeFocusBehaviorNone 不可聚焦且节点对启用了焦点交互的其他节点没有影响 iOS11.0 iOS11.4
    SCNNodeFocusBehaviorOccluding 不可聚焦,但会阻止此节点在视觉上模糊的其他可聚焦节点无法聚焦 iOS11.0 iOS11.4
    SCNNodeFocusBehaviorFocusable 可聚焦并且还将阻止此节点在视觉上模糊的其他可聚焦节点不可聚焦 iOS11.0 iOS11.4

    SCNNode

    创建节点

    方 法 说 明 备 注 SDK版本
    + (instancetype)node 创建并初始化一个节点实例 iOS11.4
    + (SCNNode *)nodeWithGeometry:(nullable SCNGeometry *)geometry 用指定几何体附件创建并初始化一个节点实例 iOS11.4

    拷贝节点

    方 法 说 明 备 注 SDK版本
    - (instancetype)clone 返回接收者的副本。返回的实例是自动释放的 iOS11.4
    - (instancetype)flattenedClone 返回包含几何的节点的克隆,该几何连接节点层次结构中包含的所有几何。返回的克隆是自动释放的。 MacOS10.9 iOS11.4

    管理节点属性

    属 性 说 明 备 注 SDK版本
    NSString *name 确定接收器的名称 iOS11.4
    SCNLight *light 确定连接到接收器的光照 iOS11.4
    SCNCamera *camera 确定连接到接收器的相机 iOS11.4
    SCNGeometry *geometry 返回附加到接收器的几何体 iOS11.4
    SCNSkinner *skinner 返回附加到接收器的skinner MacOS10.9 iOS11.4
    SCNMorpher *morpher 返回连接到接收器的变形器 MacOS10.9 iOS11.4

    修改节点变换

    属 性 与 方 法 说 明 备 注 SDK版本
    SCNMatrix4 transform 确定接收器的变换。动画。
    SCNMatrix4 worldTransform 确定接收器在世界空间中的变换(相对于场景的根节点)。动画。 iOS11.0 iOS11.4
    - (void)setWorldTransform:(SCNMatrix4)worldTransform iOS11.0 iOS11.4
    SCNVector3 position 确定接收器的位置。动画 iOS11.4
    SCNVector3 worldPosition 确定接收器在世界空间中的位置(相对于场景的根节点) iOS11.0 iOS11.4
    SCNVector4 rotation 确定接收器的旋转。动画。 iOS11.4
    SCNQuaternion orientation 将接收器的方向确定为单位四元数。动画 MacOS10.10 iOS11.4
    SCNQuaternion worldOrientation 确定接收器在世界空间中的方向(相对于场景的根节点)。动画 iOS11.0 iOS11.4
    SCNVector3 eulerAngles 确定接收器的欧拉角。动画 MacOS10.10 iOS11.4
    SCNVector3 scale 确定接收器的比例。动画 iOS11.4
    SCNMatrix4 pivot 确定接收器的枢轴。动画 iOS11.4

    修改节点能见度

    属 性 说 明 备 注 SDK版本
    BOOL hidden 确定是否显示接收器。默认为NO。动画 iOS11.4
    CGFloat opacity 确定接收器的不透明度。默认值为1.可动画。 iOS11.4
    NSInteger renderingOrder 确定接收器的渲染顺序 iOS11.4
    BOOL castsShadow 确定节点是否在阴影贴图中渲染。默认为YES。 MacOS10.10 iOS11.4
    SCNMovabilityHint movabilityHint 与SceneKit的渲染系统沟通,了解如何在场景中移动内容;它不会影响您更改节点位置或向节点添加动画或物理的能力。默认SCNMovabilityHintFixed。 iOS10.0 iOS11.4

    管理节点层级

    属 性 说 明 备 注 SDK版本
    `SCNNode *parentNode 返回接收方的父节点 iOS11.4
    - (void)addChildNode:(SCNNode *)child 将节点追加到接收者的childNodes数组 iOS11.4
    - (void)insertChildNode:(SCNNode *)child atIndex:(NSUInteger)index 在指定索引处的childNodes数组中插入节点 iOS11.4
    - (void)removeFromParentNode 从接收者的parentNode的childNodes数组中删除节点 iOS11.4
    - (void)replaceChildNode:(SCNNode *)oldChild with:(SCNNode *)newChild 从接收者的childNode数组中删除“child”,如果其位置非nil,则插入“child2” iOS11.4

    搜索节点层级

    方 法 说 明 备 注 SDK版本
    - (nullable SCNNode *)childNodeWithName:(NSString *)name recursively:(BOOL)recursively 返回在节点树中找到的具有指定名称的第一个节点 iOS11.4
    - (NSArray<SCNNode *> *)childNodesPassingTest:(NS_NOESCAPE BOOL (^)(SCNNode *child, BOOL *stop))predicate 返回在给定块中传递测试的接收器的子节点 iOS11.4
    - (void)enumerateChildNodesUsingBlock:(NS_NOESCAPE void (^)(SCNNode *child, BOOL *stop))block 在接收器下的每个子节点上执行给定块 MacOS10.10 iOS11.4
    - (void)enumerateHierarchyUsingBlock:(NS_NOESCAPE void (^)(SCNNode *node, BOOL *stop))block 在接收器及其子节点上执行给定块 iOS10.0 iOS11.4

    在节点坐标系之间转换

    方 法 说 明 备 注 SDK版本
    - (SCNVector3)convertPosition:(SCNVector3)position toNode:(nullable SCNNode *)node 将位置从接收器的坐标系转换为指定节点的位置 MacOS10.9 iOS11.4
    - (SCNVector3)convertPosition:(SCNVector3)position fromNode:(nullable SCNNode *)node 将位置从给定节点的坐标系转换为接收器的坐标系 MacOS10.9 iOS11.4
    - (SCNVector3)convertVector:(SCNVector3)vector toNode:(nullable SCNNode *)node 将矢量从给定节点的坐标系转换为接收器的坐标系 iOS11.0 iOS11.4
    - (SCNVector3)convertVector:(SCNVector3)vector fromNode:(nullable SCNNode *)node 将矢量从给定节点的坐标系转换为接收器的坐标系 iOS11.0 iOS11.4
    - (SCNMatrix4)convertTransform:(SCNMatrix4)transform toNode:(nullable SCNNode *)node 将转换从接收器的坐标系转换为指定节点的转换 MacOS10.9 iOS11.4
    - (SCNMatrix4)convertTransform:(SCNMatrix4)transform fromNode:(nullable SCNNode *)node 将变换从给定节点的坐标系转换为接收器的坐标系 MacOS10.9 iOS11.4

    管理SCNNode的物理主体

    属 性 说 明 备 注 SDK版本
    SCNPhysicsBody *physicsBody 接收器物理主体的描述 MacOS10.10 iOS11.4

    管理节点的物理场

    属 性 说 明 备 注 SDK版本
    SCNPhysicsField *physicsField 接收器物理场的描述 MacOS10.10 iOS11.4

    管理节点的约束

    属 性 说 明 备 注 SDK版本
    NSArray<SCNConstraint *> *constraints 应用于接收器的SCNConstraint数组 MacOS10.9 iOS11.4

    访问节点的过滤器

    属 性 说 明 备 注 SDK版本
    NSArray<CIFilter *> *filters 一组核心图像过滤器,应用于接收器及其子节点的渲染。动画 iOS11.4

    访问演示节点

    属 性 说 明 备 注 SDK版本
    SCNNode *presentationNode 返回表示节点 iOS11.4

    暂停

    属 性 说 明 备 注 SDK版本
    BOOL paused 控制节点的动作和动画是否更新或暂停。默认为NO。 MacOS10.10 iOS11.4

    使用自定义OpenGL代码覆盖渲染

    属 性 说 明 备 注 SDK版本
    id <SCNNodeRendererDelegate> rendererDelegate 指定接收器的渲染器委托对象 iOS11.4

    节点点击测试

    方 法 说 明 备 注 SDK版本
    - (NSArray<SCNHitTestResult *> *)hitTestWithSegmentFromPoint:(SCNVector3)pointA toPoint:(SCNVector3)pointB options:(nullable NSDictionary<NSString *, id> *)options 返回接收器子树中与指定段相交的每个节点的SCNHitTestResult数组 MacOS10.9 iOS11.4

    节点类别

    属 性 说 明 备 注 SDK版本
    NSUInteger categoryBitMask 定义接收器所属的逻辑“类别”。默认为1 MacOS10.10 iOS11.4

    UIFocus支持

    属 性 说 明 备 注 SDK版本
    SCNNodeFocusBehavior focusBehavior 控制接收器关于UIFocus系统的行为。默认为SCNNodeFocusBehaviorNone iOS11.0 iOS11.4

    SCNNode(变换)

    属 性 说 明 备 注 SDK版本
    SCNVector3 localUp 本地单位Y轴(0,0,1) iOS11.0 iOS11.4
    SCNVector3 localRight 本地单位X轴(0,1,0) iOS11.0 iOS11.4
    SCNVector3 localFront 本地单位-Z轴 (0,0,-1) iOS11.0 iOS11.4
    SCNVector3 worldUp 在世界空间中本地单位Y轴(0,0,1) iOS11.0 iOS11.4
    SCNVector3 worldRight 世界空间中本地单位X轴(0,1,0) iOS11.0 iOS11.4
    SCNVector3 worldFront 世界空间中本地单位-Z轴(0,0-1) iOS11.0 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)lookAt:(SCNVector3)worldTarget 方便调用lookAt:up:localFront:将worldUp设置为self.worldUp和localFront [SCNNode localFront] iOS11.0 iOS11.4
    - (void)lookAt:(SCNVector3)worldTarget up:(SCNVector3)worldUp localFront:(SCNVector3)localFront 设置节点的方向,使其前向量指向给定的方向目标。在世界空间中使用参考向上矢量和在中使用前向量当地的空间 iOS11.0 iOS11.4
    - (void)localTranslateBy:(SCNVector3)translation 在本地空间中沿给定向量转换当前节点位置 iOS11.0 iOS11.4
    - (void)localRotateBy:(SCNQuaternion)rotation 将给定的旋转应用于当前旋转 iOS11.0 iOS11.4
    - (void)rotateBy:(SCNQuaternion)worldRotation aroundTarget:(SCNVector3)worldTarget 相对于父空间中的目标点应用旋转 iOS11.0 iOS11.4

    SCNNodeRendererDelegate协议(在呈现节点时调用)

    - (void)renderNode:(SCNNode *)node renderer:(SCNRenderer *)renderer arguments:(NSDictionary<NSString *, id> *)arguments

    SCNNode(SIMD)

    属 性 说 明 备 注 SDK版本
    simd_float4x4 simdTransform 确定接收器的变换。动画 iOS11.0 iOS11.4
    simd_float3 simdPosition 确定接收器的位置。动画 iOS11.0 iOS11.4
    simd_float4 simdRotation 确定接收器的旋转。动画 iOS11.0 iOS11.4
    simd_quatf simdOrientation 将接收器的方向确定为单位四元数。动画 iOS11.0 iOS11.4
    simd_float3 simdEulerAngles 确定接收器的欧拉角。动画 iOS11.0 iOS11.4
    simd_float3 simdScale 确定接收器的比例。动画 iOS11.0 iOS11.4
    simd_float4x4 simdPivot 确定接收器的枢轴。动画 iOS11.0 iOS11.4
    simd_float3 simdWorldPosition 确定接收器在世界空间中的位置(相对于场景的根节点) iOS11.0 iOS11.4
    simd_quatf simdWorldOrientation 确定接收器在世界空间中的方向(相对于场景的根节点)。动画 iOS11.0 iOS11.4
    simd_float4x4 simdWorldTransform 确定接收器在世界空间中的变换(相对于场景的根节点)。动画 iOS11.0 iOS11.4
    simd_float3 simdLocalUp iOS11.0 iOS11.4
    simd_float3 simdLocalRight iOS11.0 iOS11.4
    simd_float3 simdLocalFront iOS11.0 iOS11.4
    simd_float3 simdWorldUp iOS11.0 iOS11.4
    simd_float3 simdWorldRight iOS11.0 iOS11.4
    simd_float3 simdWorldFront iOS11.0 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (simd_float3)simdConvertPosition:(simd_float3)position toNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (simd_float3)simdConvertPosition:(simd_float3)position fromNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (simd_float3)simdConvertVector:(simd_float3)vector toNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (simd_float3)simdConvertVector:(simd_float3)vector fromNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (simd_float4x4)simdConvertTransform:(simd_float4x4)transform toNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (simd_float4x4)simdConvertTransform:(simd_float4x4)transform fromNode:(nullable SCNNode *)node iOS11.0 iOS11.4
    - (void)simdLookAt:(vector_float3)worldTarget iOS11.0 iOS11.4
    - (void)simdLookAt:(vector_float3)worldTarget up:(vector_float3)worldUp localFront:(simd_float3)localFront iOS11.0 iOS11.4
    - (void)simdLocalTranslateBy:(simd_float3)translation iOS11.0 iOS11.4
    - (void)simdLocalRotateBy:(simd_quatf)rotation iOS11.0 iOS11.4
    - (void)simdRotateBy:(simd_quatf)worldRotation aroundTarget:(simd_float3)worldTarget iOS11.0 iOS11.4

    文件SCNLight.h

    #import <SceneKit/SCNLight.h>

    内容简介

    光照类型(SCNLightType)

    属 性 说 明 备 注 SDK版本
    SCNLightTypeAmbient 环境光 iOS11.4
    SCNLightTypeOmni 全向光 iOS11.4
    SCNLightTypeDirectional 定向光 iOS11.4
    SCNLightTypeSpot 点光 iOS11.4
    SCNLightTypeIES IES光 iOS11.4
    SCNLightTypeProbe 光探头 iOS11.4

    阴影模式(SCNShadowMode)

    属 性 说 明 备 注 SDK版本
    SCNShadowModeForward 环境光 iOS11.4
    SCNShadowModeDeferred 全向光 iOS11.4
    SCNShadowModeModulated 定向光 iOS11.4

    SCNLight(SCNLight表示可以附加到SCNNode的光照)

    方 法 说 明 备 注 SDK版本
    + (instancetype)light 创建并返回一个光照对象 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNLightType type 指定接收者类型 iOS11.4
    id color 指定接收器颜色(NSColor或CGColorRef)。动画。默认是白色 iOS11.4
    CGFloat temperature 指定接收器的温度 iOS11.4
    CGFloat intensity 指定接收器的强度 iOS11.4
    NSString *name 确定接收器的名字 iOS11.4

    阴影

    属 性 说 明 备 注 SDK版本
    BOOL castShadow 确定是否接收器投射一个阴影 iOS11.4
    CGSize shadowMapSize 指定阴影图的大小 MacOS10.10 iOS11.4
    CGSize shadowMapSize 指定每个片元采样数量来计算阴影映射。默认是0 MacOS10.10 iOS11.4
    SCNShadowMode shadowMode 投射阴影模式。默认是SCNShadowModeForward MacOS10.10
    CGFloat shadowBias 指定要应用于阴影贴图以校正痤疮假象的校正。它乘以特定于实现的值以创建恒定的深度偏移。默认为1.0 MacOS10.10 iOS11.4
    BOOL automaticallyAdjustsShadowProjection 指定阴影贴图投影是应由用户自动完成还是手动完成。默认为YES iOS11.0 iOS11.4
    CGFloat maximumShadowDistance 指定距离视点的最大距离,从该视点不会计算接收器光的阴影。默认为100.0 iOS11.0 iOS11.4
    BOOL forcesBackFaceCasters 启用时,仅渲染阴影施法者的背面。默认为NO。

    这是以前版本中的行为更改 | iOS11.0 | iOS11.4 |
    | BOOL sampleDistributedShadowMaps | 使用主渲染的样本分布来更好地适应阴影截头。默认为NO | iOS11.0 | iOS11.4 |
    | NSUInteger shadowCascadeCount | 指定将为接收器灯计算的不同阴影贴图的数量。默认为1.最大值为4 | iOS11.0 | iOS11.4 |
    | CGFloat shadowCascadeSplittingFactor | 指定在线性分割(0)和对数分割(1)之间进行插值的因子。默认为0.15 | iOS11.0 | iOS11.4 |

    阴影光照投影设置

    属 性 说 明 备 注 SDK版本
    CGFloat orthographicScale 指定用于从定向光渲染到阴影贴图的正交比例。默认为1 MacOS10.10 iOS11.4
    CGFloat zNear 指定灯光和投射阴影的曲面之间的最小距离。如果表面比这个最小距离更接近光线,那么表面将不会被遮蔽。近值必须不等于零。动画。默认为1 MacOS10.10 iOS11.4
    CGFloat zFar 指定灯光和可见曲面之间的最大距离以投射阴影。如果表面离光线的距离超过该最大距离,则表面不会被遮蔽。动画。默认为100 MacOS10.10 iOS11.4

    衰减

    属 性 说 明 备 注 SDK版本
    CGFloat attenuationStartDistance 衰减开始的距离(仅限Omni或Spot光类型)。动画。默认为0 MacOS10.10 iOS11.4
    CGFloat attenuationEndDistance 衰减结束的距离(仅限Omni或Spot光类型)。动画。默认为0 MacOS10.10 iOS11.4
    CGFloat attenuationFalloffExponent 指定起始和结束衰减距离之间的衰减。 0表示恒定衰减,1表示线性衰减,2表示二次衰减,但任何正值均可使用(仅限Omni或Spot光类型)。动画。默认为2 MacOS10.10 iOS11.4

    点光参数

    属 性 说 明 备 注 SDK版本
    CGFloat spotInnerAngle 光点方向与点亮元素之间的角度,低于该角度,照明处于全强度。动画。默认为0 MacOS10.10 iOS11.4
    CGFloat spotOuterAngle 点光源与点亮元件之间的角度,在此之后照明处于零强度。动画。默认为45度 MacOS10.10 iOS11.4

    其他

    属 性 说 明 备 注 SDK版本
    SCNMaterialProperty *gobo 指定灯光的遮光板(或“cookie”),用于控制发光的形状。默认为零 MacOS10.9 iOS11.4
    NSURL *IESProfileURL 指定IES文件,从中确定照明的形状,方向和强度。默认为零 iOS10.0 iOS11.4
    NSUInteger categoryBitMask 确定接收器将点亮的节点类别。默认为所有位设置 MacOS10.10 iOS11.4
    NSData *sphericalHarmonicsCoefficients 接收器的球谐函数系数 iOS11.0 iOS11.4

    文件SCNCamera

    #import <SceneKit/SCNCamera.h>

    内容简介

    SCNCameraProjectionDirection

    属 性 说 明 备 注 SDK版本
    SCNCameraProjectionDirectionVertical iOS11.4
    SCNCameraProjectionDirectionHorizontal iOS11.4

    SCNCamera(表示可以连接到SCNNode的摄像头)

    方 法 说 明 备 注 SDK版本
      (instancetype)camera
    创建并返回一个相机实例 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSString *name 确定接收器的名称 iOS11.4
    CGFloat fieldOfView 确定接收者的视野(以度为单位)。动画 iOS11.0 iOS11.4
    SCNCameraProjectionDirection projectionDirection 确定视野(或正交比例)是垂直还是水平。默认为垂直 iOS11.0 iOS11.4
    CGFloat focalLength 确定接收器的焦距,单位为毫米。动画 iOS11.0 iOS11.4
    CGFloat sensorHeight 以毫米为单位确定传感器的垂直尺寸。动画 iOS11.0 iOS11.4
    double zNear 确定接收器的近似值。动画 iOS11.4
    double zFar 确定接收器的远值。动画 iOS11.4
    BOOL automaticallyAdjustsZRange 确定接收器是否自动调整zFar值。默认为NO MacOS10.9 iOS11.4
    BOOL usesOrthographicProjection 确定接收器是否使用正交投影。默认为NO iOS11.4
    double orthographicScale 确定接收器的正交比例值。动画。默认为1 MacOS10.9 iOS11.4
    SCNMatrix4 projectionTransform 确定摄像机用于在屏幕上投影世界的投影变换 iOS11.4

    景深

    属 性 说 明 备 注 SDK版本
    BOOL wantsDepthOfField 确定接收器是否具有景深。默认为NO iOS11.0 iOS11.4
    CGFloat focusDistance 确定接收器的焦距。动画 iOS11.0 iOS11.4
    CGFloat fStop 确定接收器的fstop。动画 iOS11.0 iOS11.4
    NSInteger apertureBladeCount 确定接收器的光圈刀片数 iOS11.0 iOS11.4
    CGFloat motionBlurIntensity 确定运动模糊的强度。动画。默认为0 iOS10.0 iOS11.4
    CGFloat screenSpaceAmbientOcclusionIntensity 确定屏幕空间环境遮挡的强度。动画 iOS11.0 iOS11.4
    CGFloat screenSpaceAmbientOcclusionRadius 确定场景单元中的屏幕空间环境遮挡半径。动画 iOS11.0 iOS11.4
    CGFloat screenSpaceAmbientOcclusionBias 确定场景单元中的自遮挡偏差 iOS11.0 iOS11.4
    CGFloat screenSpaceAmbientOcclusionDepthThreshold 确定场景单元中的深度模糊阈值 iOS11.0 iOS11.4
    BOOL wantsHDR 确定接收器是否具有高动态范围。默认为NO iOS10.0 iOS11.4
    CGFloat exposureOffset 确定EV中的logarithimc曝光偏置。默认为0 iOS10.0 iOS11.4
    CGFloat averageGray 确定最终图像中所需的平均灰度级。默认为0.18 iOS10.0 iOS11.4
    CGFloat whitePoint 确定将在最终图像中映射为白色的最小亮度级别。默认为1 iOS10.0 iOS11.4
    BOOL wantsExposureAdaptation 确定接收器是否应模拟眼睛并持续调整亮度。默认为YES iOS10.0 iOS11.4
    CGFloat exposureAdaptationBrighteningSpeedFactor 确定从明亮区域到暗区域时的曝光适应速度。默认为0.4 iOS10.0 iOS11.4
    CGFloat exposureAdaptationDarkeningSpeedFactor 确定从暗区到亮区时的曝光适应速度。默认为0.6 iOS10.0 iOS11.4
    CGFloat minimumExposure 确定适应的最小曝光偏移,以EV为单位。默认为-15 iOS10.0 iOS11.4
    CGFloat maximumExposure 确定自适应的最大曝光偏移,以EV为单位。默认为-15 iOS10.0 iOS11.4
    CGFloat bloomThreshold 确定绽放效果的亮度阈值。动画。默认为1 iOS10.0 iOS11.4
    CGFloat bloomIntensity 确定绽放效果的强度。动画。默认为0(无效) iOS10.0 iOS11.4
    CGFloat bloomBlurRadius 以磅为单位确定绽放效果的半径。动画。默认为4 iOS10.0 iOS11.4
    CGFloat vignettingPower 控制渐晕效果的形状。默认为0(无效) iOS10.0 iOS11.4
    CGFloat vignettingIntensity 控制渐晕效果的强度。默认为0(无效) iOS10.0 iOS11.4
    CGFloat colorFringeStrength 控制色移效果的强度。默认为0(无效) iOS10.0 iOS11.4
    CGFloat colorFringeIntensity 控制色移效果的强度。默认为1 iOS10.0 iOS11.4
    CGFloat saturation 控制场景的整体饱和度。默认为1(无效) iOS10.0 iOS11.4
    CGFloat contrast 控制场景的整体对比度。默认为0(无效) iOS10.0 iOS11.4
    SCNMaterialProperty *colorGrading 指定要应用颜色分级的查找纹理。内容必须是表示单位颜色立方体纹理的“n”个切片的2D图像,排列在“n”图像的水平行中。例如,尺寸为16x16x16的颜色立方体应作为尺寸为256x16的图像提供 iOS10.0 iOS11.4
    NSUInteger categoryBitMask 确定从接收器可见的节点类别。默认为所有设置的位 MacOS10.10 iOS11.4
    CGFloat focalBlurRadius 确定接收器的焦点半径。动画。 已废弃(使用fStop代替)iOS8.0-11.0 iOS11.4
    double xFov 确定接收器在X轴上的视野(以度为单位)。动画 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)iOS8.0-11.0 iOS11.4
    double yFov 确定Y轴上接收器的视野(以度为单位)。动画 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)iOS8.0-11.0 iOS11.4
    CGFloat aperture 确定接收器的光圈。动画 已废弃(使用-[SCNCamera fStop] instead with fStop = sensorHeight / aperture代替)iOS8.0-11.0 iOS11.4
    CGFloat focalSize 确定接收器的焦点大小。动画 已废弃(使用-focusDistance代替)iOS8.0-11.0 iOS11.4
    CGFloat focalDistance 确定接收器的焦距。动画 已废弃(使用-focusDistance代替)iOS8.0-11.0 iOS11.4

    文件SCNMaterial.h

    #import <SceneKit/SCNMaterial.h>

    内容简介

    SCNLightingModel

    属 性 说 明 备 注 SDK版本
    SCNLightingModelPhong 产生一个镜面阴影表面,根据Phong BRDF近似,镜面反射被遮蔽 iOS11.4
    SCNLightingModelBlinn 使用Blinn BRDF近似产生镜面阴影表面 iOS11.4
    SCNLightingModelLambert 产生漫反射阴影表面,没有镜面反射 iOS11.4
    SCNLightingModelConstant 产生一个独立于灯光的阴影表面 iOS11.4
    SCNLightingModelPhysicallyBased iOS10.0 iOS11.4

    SCNFillMode

    属 性 说 明 备 注 SDK版本
    SCNFillModeFill iOS11.0 iOS11.4
    SCNFillModeLines iOS11.0 iOS11.4

    SCNCullMode

    属 性 说 明 备 注 SDK版本
    SCNCullModeBack iOS11.4
    SCNCullModeFront iOS11.4

    * #define SCNCullBack SCNCullModeBack
    * #define SCNCullFront SCNCullModeFront

    SCNTransparencyMode

    属 性 说 明 备 注 SDK版本
    SCNTransparencyModeAOne 从Alpha通道获取透明度信息。值1.0是不透明的 iOS11.4
    SCNTransparencyModeRGBZero 忽略Alpha通道并从红色,绿色和蓝色通道的亮度中 获取透明度信息。值0.0是不透明的 iOS11.4
    SCNTransparencyModeSingleLayer 确保正确绘制一层透明度 iOS11.0 iOS11.4
    SCNTransparencyModeDualLayer 确保正确排序和绘制两层透明度。当您想要同时看到正面和背面时,这应该用于透明凸面对象,如立方体和球体 iOS11.0 iOS11.4
    SCNTransparencyModeDefault SCNTransparencyModeAOne iOS11.0 iOS11.4

    SCNBlendMode

    属 性 说 明 备 注 SDK版本
    SCNBlendModeAlpha 通过将源乘以源alpha并将目标乘以1减去源alpha来混合源颜色和目标颜色 iOS11.4
    SCNBlendModeAdd 通过添加源颜色和目标颜色来混合它们 iOS11.4
    SCNBlendModeSubtract 通过从目标中减去源来混合源颜色和目标颜色 通过将它们相乘来混合源颜色和目标颜色 iOS11.4
    SCNBlendModeMultiply 通过将它们相乘来混合源颜色和目标颜色 iOS11.4
    SCNBlendModeScreen 通过将一个减去源与目标相乘并添加源来混合源颜色和目标颜色 iOS11.4
    SCNBlendModeReplace 用源替换目标(忽略alpha) iOS11.4
    SCNBlendModeMax 使用源最大化目标(忽略alpha) iOS11.4

    SCNMaterial(SCNMaterial确定几何体如何被渲染。它包括颜色以及定义3D几何体表面的纹理)

    方 法 说 明 备 注 SDK版本
    + (instancetype)material 创建并初始化一个材质实例 iOS11.4
    方 法 说 明 备 注 SDK版本
    NSString *name 确定接收者的名称 iOS11.4

    材质属性

    方 法 说 明 备 注 SDK版本
    SCNMaterialProperty *diffuse 指定接收者的漫反射属性 iOS11.4
    SCNMaterialProperty *ambient 指定接收者的环境属性 iOS11.4
    SCNMaterialProperty *specular 指定接收器的镜面属性 iOS11.4
    SCNMaterialProperty *emission 发射属性指定材料发射的光量。此发射不会照亮场景中的其他表面 iOS11.4
    SCNMaterialProperty *transparent transparent属性指定材质的透明区域 iOS11.4
    SCNMaterialProperty *multiply multiply属性指定用于将输出片段与其相乘的颜色或图像。计算的片段与乘法值相乘以产生最终片段。此属性可用于阴影贴图,淡出或着色3d对象 iOS11.4
    SCNMaterialProperty *normal normal属性指定曲面方向 iOS11.4
    SCNMaterialProperty *displacement iOS11.0 iOS11.4
    SCNMaterialProperty *ambientOcclusion ambientOcclusion属性指定曲面的环境光遮挡。环境遮挡与环境光相乘,然后将结果添加到照明贡献中。此属性对没有环境光的场景没有视觉影响。设置环境光遮挡贴图时,将忽略环境属性 iOS9.0 iOS11.4
    SCNMaterialProperty *selfIllumination selfIllumination属性指定添加到曲面的光照贡献的纹理或颜色。设置selfIllumination时,将忽略发射属性 iOS9.0 iOS11.4
    SCNMaterialProperty *metalness 金属属性指定材料表面的金属化程度。较低的值(较暗的颜色)使材料看起来更像电介质表面。较高的值(较亮的颜色)会使表面看起来更金属。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性 iOS10.0 iOS11.4
    SCNMaterialProperty *roughness 粗糙度属性指定表面的表观光滑度。较低的值(较暗的颜色)会使材质看起来有光泽,并具有明确定义的镜面高光。较高的值(较亮的颜色)会使镜面反射高光扩散,并使材料的漫反射特性变得更具逆向反射性。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性 iOS10.0 iOS11.4
    CGFloat shininess 指定接收器的光泽度值。默认为1.0。动画 iOS11.4
    CGFloat transparency 确定接收器的照明模型。请参阅上面的照明模型列表。默认为SCNLightingModelBlinn iOS10.0 iOS11.4
    BOOL litPerPixel 确定接收器是否按每个像素点亮。默认为YES。动画 iOS11.4
    BOOL doubleSided 确定接收器是否为双面。默认为NO。动画 iOS11.4
    SCNFillMode fillMode 确定如何光栅化接收器的基元。默认为SCNFillModeFill iOS11.0 iOS11.4
    SCNCullMode cullMode 确定接收器的剔除模式。默认为SCNCullBack。动画 iOS11.4
    SCNTransparencyMode transparencyMode 确定接收器的透明度模式。有关透明度模式,请参见上文。默认为SCNTransparencyModeDefault iOS11.4
    BOOL locksAmbientWithDiffuse 使ambient属性自动匹配diffuse属性。默认为YES。动画 iOS11.4
    BOOL writesToDepthBuffer 确定接收器在渲染时是否写入深度缓冲区。默认为YES iOS11.4
    SCNColorMask colorBufferWriteMask 确定接收器在渲染时是否写入颜色缓冲区。默认为SCNColorMaskAll iOS11.0 iOS11.4
    BOOL readsFromDepthBuffer 确定接收器在渲染时是否从深度缓冲区读取。默认为YES MacOS10.9 iOS11.4
    CGFloat fresnelExponent 指定接收者的菲涅耳指数值。默认为0.0。动画 MacOS10.9 iOS11.4
    SCNBlendMode blendMode 指定接收器的混合模式。默认为SCNBlendModeAlpha iOS9.0 iOS11.4

    文件SCNMaterialProperty.h

    #import <SceneKit/SCNMaterialProperty.h>

    内容简介

    SCNFilterMode(过滤模式)

    属 性 说 明 备 注 SDK版本
    SCNFilterModeNone MacOS10.9 iOS11.4
    SCNFilterModeNearest MacOS10.9 iOS11.4
    SCNFilterModeLinear MacOS10.9 iOS11.4

    SCNWrapeMode(包裹模式)

    属 性 说 明 备 注 SDK版本
    SCNWrapModeClamp MacOS10.9 iOS11.4
    SCNWrapModeRepeat MacOS10.9 iOS11.4
    SCNWrapModeClampToBorder MacOS10.9 iOS11.4
    SCNWrapModeMirror MacOS10.9 iOS11.4

    SCNMaterialProperty(SCNMaterial插槽的内容)

    方 法 说 明 备 注 SDK版本
    + (instancetype)materialPropertyWithContents:(id)contents 使用指定的内容创建并初始化属性实例 MacOS10.9 iOS11.4
    属 性 说 明 备 注 SDK版本
    id contents 指定接收者的内容。这可以是颜色(NSColor,UIColor,CGColorRef),图像(NSImage,UIImage,CGImageRef),图层(CALayer),路径(NSString或NSURL),SpriteKit场景(SKScene),纹理(SKTexture,id) 或GLKTextureInfo),或介于0和1之间的浮动值(NSNumber),用于金属度和粗糙度属性。 iOS 11支持AVCaptureDevice,macOS 10.13,iOS 11和tvOS 11支持AVPlayer。设置为颜色时可动画 iOS11.4
    CGFloat intensity 确定接收器的强度。该强度用于以几种方式调节性质。它使漫反射,镜面反射和发射特性变暗,它改变了普通属性的凹凸感过滤属性与白色混合。默认值为1.0。动画 MacOS10.9 iOS11.4
    SCNFilterMode minificationFilter 指定呈现内容时使用的过滤器类型(在`contents’属性中指定) iOS11.4
    SCNFilterMode magnificationFilter 指定呈现内容时使用的过滤器类型(在`contents’属性中指定) iOS11.4
    SCNFilterMode mipFilter 指定在缩小期间使用的mipmap过滤器 iOS11.4
    SCNMatrix4 contentsTransform 确定接收者的内容变换。动画 iOS11.4
    SCNWrapMode wrapS 确定接收器的s纹理坐标的包裹模式。默认为SCNWrapModeClamp iOS11.4
    SCNWrapMode wrapT 确定t纹理坐标的接收器换行模式。默认为SCNWrapModeClamp iOS11.4
    id borderColor 确定接收器的边框颜色(CGColorRef或UIColor)。动画 已废弃 iOS8.0-9.0 iOS11.4
    NSInteger mappingChannel 确定接收器的映射通道。默认为0 iOS11.4
    SCNColorMask textureComponents 指定要在着色器中采样的纹理组件。对于displa属性,默认为SCNColorMaskRed;对于其他属性,默认为SCNColorMaskAll iOS11.0 iOS11.4
    CGFloat maxAnisotropy 指定接收器的最大各向异性。默认为1.0 MacOS10.9 iOS11.4

    文件SCNGeometry.h

    #import <SceneKit/SCNGeometry.h>

    内容简介

    SCNGeometryPrimitiveType

    属 性 说 明 备 注 SDK版本
    SCNGeometryPrimitiveTypeTriangles iOS11.4
    SCNGeometryPrimitiveTypeTriangleStrip iOS11.4
    SCNGeometryPrimitiveTypeLine iOS11.4
    SCNGeometryPrimitiveTypePoint iOS11.4
    SCNGeometryPrimitiveTypePolygon iOS10.0 iOS11.4

    SCNGeometrySourceSemantic

    属 性 说 明 备 注 SDK版本
    SCNGeometrySourceSemanticVertex iOS11.4
    SCNGeometrySourceSemanticNormal iOS11.4
    SCNGeometrySourceSemanticColor iOS11.4
    SCNGeometrySourceSemanticTexcoord iOS11.4
    SCNGeometrySourceSemanticTangent iOS10.0 iOS11.4
    SCNGeometrySourceSemanticVertexCrease MacOS10.10 iOS11.4
    SCNGeometrySourceSemanticEdgeCrease MacOS10.10 iOS11.4
    SCNGeometrySourceSemanticBoneWeights MacOS10.10 iOS11.4
    SCNGeometrySourceSemanticBoneIndices MacOS10.10 iOS11.4

    SCNGeometry(SCNGeometry是一个抽象类,表示可以附加到SCNNode的几何)

    方 法 说 明 备 注 SDK版本
    + (instancetype)geometry 创建并返回一个空的几何体对象 MacOS10.9 iOS11.4
    - (void)insertMaterial:(SCNMaterial *)material atIndex:(NSUInteger)index 在指定索引处的材质数组中插入材质 iOS11.4
    - (void)removeMaterialAtIndex:(NSUInteger)index 从材料数组中删除指定索引处的材质 iOS11.4
    - (void)replaceMaterialAtIndex:(NSUInteger)index withMaterial:(SCNMaterial *)material 从接收器的材料阵列中删除索引’index’处的材料,并在其位置插入’material’ iOS11.4
    - (nullable SCNMaterial *)materialWithName:(NSString *)name 返回具有指定名称的接收器的材质数组中的第一个材质 iOS11.4
    + (instancetype)geometryWithSources:(NSArray<SCNGeometrySource *> *)sources elements:(nullable NSArray<SCNGeometryElement *> *)elements 创建并返回从几何体源和几何元素构建的新几何体 iOS11.4
    - (NSArray<SCNGeometrySource *> *)geometrySourcesForSemantic:(SCNGeometrySourceSemantic)semantic 返回给定语义的几何源 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSString *name 确定接收器的名称 iOS11.4
    NSArray<SCNMaterial *> *materials 指定接收器的材质数组 iOS11.4
    SCNMaterial *firstMaterial 确定几何体的第一个材质。如果几何体没有材质,则返回nil iOS11.4
    NSArray<SCNGeometrySource *> *geometrySources 接收器的几何源阵列 MacOS10.10 iOS11.4
    NSArray<SCNGeometryElement *> *geometryElements 接收器的几何元素数组 MacOS10.10 iOS11.4
    NSInteger geometryElementCount 返回几何所拥有的几何元素的数量 iOS11.4
    NSArray<SCNLevelOfDetail *> *levelsOfDetail 确定接收器的详细程度。默认为nil MacOS10.9 iOS11.4
    SCNGeometryTessellator *tessellator 指定如何在GPU上的渲染时对几何体进行细分。默认为零 iOS11.0 iOS11.4
    NSUInteger subdivisionLevel 指定接收器的细分级别。默认为0 MacOS10.10 iOS11.4
    BOOL wantsAdaptiveSubdivision 指定细分是自适应还是统一。默认为YES iOS11.0 iOS11.4
    SCNGeometryElement *edgeCreasesElement 指定控制细分的边缘折痕。默认为零 MacOS10.10 iOS11.4
    SCNGeometrySource *edgeCreasesSource 指定edgeCreasesElement指定的边的折痕值。默认为nil MacOS10.10 iOS11.4

    SCNGeometrySource

    方 法 说 明 备 注 SDK版本
    + (instancetype)geometrySourceWithData:(NSData *)data semantic:(SCNGeometrySourceSemantic)semantic vectorCount:(NSInteger)vectorCount floatComponents:(BOOL)floatComponents componentsPerVector:(NSInteger)componentsPerVector bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride 根据给定的数据和参数创建并返回几何源 iOS11.4
    + (instancetype)geometrySourceWithVertices:(const SCNVector3 *)vertices count:(NSInteger)count 从存储在SCNVector3值的缓冲区中的顶点创建并返回几何源 iOS11.4
    + (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count 从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 iOS11.4
    + (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count 从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 iOS11.4
    + (instancetype)geometrySourceWithTextureCoordinates:(const CGPoint *)texcoord count:(NSInteger)count iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time iOS11.4
    + (instancetype)geometrySourceWithBuffer:(id <MTLBuffer>)mtlBuffer vertexFormat:(MTLVertexFormat)vertexFormat semantic:(SCNGeometrySourceSemantic)semantic vertexCount:(NSInteger)vertexCount dataOffset:(NSInteger)offset dataStride:(NSInteger)stride iOS9.0 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSData *data 几何源的数据 iOS11.4
    SCNGeometrySourceSemantic semantic 几何源的语义 iOS11.4
    NSInteger vectorCount 数据中的向量数 iOS11.4
    BOOL floatComponents 一个标志,指示矢量组件是否为浮点值 iOS11.4
    NSInteger componentsPerVector 每个向量中的标量分量数 iOS11.4
    NSInteger bytesPerComponent 矢量分量的大小(以字节为单位) iOS11.4
    NSInteger dataOffset 从数据开头的偏移量。以字节为单位 iOS11.4
    NSInteger dataStride 数据中从向量到下一个向量的字节数 iOS11.4

    SCNGeometryElement(几何元素描述几何源的顶点如何连接在一起)

    方 法 说 明 备 注 SDK版本
    + (instancetype)geometryElementWithData:(nullable NSData *)data primitiveType:(SCNGeometryPrimitiveType)primitiveType primitiveCount:(NSInteger)primitiveCount bytesPerIndex:(NSInteger)bytesPerIndex 根据给定的数据和数据格式信息创建并返回几何元素 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSData *data 几何元素的数据 iOS11.4
    SCNGeometryPrimitiveType primitiveType 几何元素的类型。可能的值列在SCNGeometryPrimitiveType枚举中 iOS11.4
    NSInteger primitiveCount 数据中的基元数量 iOS11.4
    NSRange primitiveRange 要渲染的基元的子范围。默认为[NSNotFound,0] iOS11.0 iOS11.4
    NSInteger bytesPerIndex 表示索引值的字节数 iOS11.4
    CGFloat pointSize 指定本地空间中的点的大小。默认为1 iOS11.0 iOS11.4
    CGFloat minimumPointScreenSpaceRadius 指定屏幕空间中的最小大小(以像素为单位)。默认为1 iOS11.0 iOS11.4
    CGFloat maximumPointScreenSpaceRadius 指定屏幕空间中的最大大小(以像素为单位)。默认为1 iOS11.0 iOS11.4

    SCNTessellationSmoothingMode

    常 量 说 明 备 注 SDK版本
    SCNTessellationSmoothingModeNone iOS11.4
    SCNTessellationSmoothingModePNTriangles iOS11.4
    SCNTessellationSmoothingModePhong iOS11.4

    SCNGeometryTessellator(几何曲面细分器描述了如何从几何体的初始曲面计算更详细的曲面)

    属 性 说 明 备 注 SDK版本
    CGFloat tessellationFactorScale 指定应用于每个修补程序细分因子的比例因子。默认为1 iOS11.4
    MTLTessellationPartitionMode tessellationPartitionMode 指定细分分区模式。默认为MTLTessellationPartitionModeInteger iOS11.4
    BOOL adaptive 指定曲面细分应该是统一的还是自适应的。默认为NO iOS11.4
    BOOL screenSpace 指定是否应在screenSpace中调整曲面细分级别。默认为NO iOS11.4
    CGFloat edgeTessellationFactor 指定边缘细分因子。默认为1 iOS11.4
    CGFloat insideTessellationFactor 指定内部曲面细分因子。默认为1 iOS11.4
    CGFloat maximumEdgeLength 指定最大边长。默认为1 iOS11.4
    SCNTessellationSmoothingMode smoothingMode 默认为SCNTessellationSmoothingModeNone iOS11.4

    文件SCNParametricGeometry.h

    #import <SceneKit/SCNParametricGeometry.h>

    内容简介

    SCNPlane(SCNPlane表示具有可控宽度和高度的矩形。平面有一个可见的面) : SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)planeWithWidth:(CGFloat)width height:(CGFloat)height 创建并返回具有给定宽度和高度的平面 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat width 沿X轴的平面范围。动画 iOS11.4
    CGFloat height 沿Y轴的平面范围。动画 iOS11.4
    NSInteger widthSegmentCount 沿X轴的细分数。动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。默认值为1.可动画 iOS11.4
    CGFloat cornerRadius 角半径。动画 MacOS10.9 iOS11.4
    NSInteger cornerSegmentCount 圆角的细分数量。动画 MacOS10.9 iOS11.4

    SCNBox(SCNBox代表一个带有矩形边和可选倒角的盒子) : SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius 创建并返回具有给定宽度,高度,长度和倒角半径的框 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat width 盒子的宽度。动画 iOS11.4
    CGFloat height 盒子的高度。动画 iOS11.4
    CGFloat length 盒子的长度。动画 iOS11.4
    CGFloat chamferRadius 倒角半径。动画 iOS11.4
    NSInteger widthSegmentCount 沿X轴的细分数。默认值为1.可动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。默认值为1.可动画 iOS11.4
    NSInteger lengthSegmentCount 沿Z轴的细分数。默认值为1.可动画 iOS11.4
    NSInteger chamferSegmentCount 倒角细分的数量。动画 iOS11.4

    SCNPyramid(SCNPyramid代表一个带有矩形底座的右金字塔) : SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius 创建并返回具有给定宽度,高度和长度的金字塔 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat width 金字塔的宽度。动画 iOS11.4
    CGFloat height 金字塔的高度。动画 iOS11.4
    CGFloat length 金字塔底座的长度。动画 iOS11.4
    NSInteger widthSegmentCount 沿X轴的细分数。默认值为1.可动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。默认值为1.可动画 iOS11.4
    NSInteger lengthSegmentCount 沿Z轴的细分数。默认值为1.可动画 iOS11.4

    SCNSphere(SCNSphere表示具有可控半径的球体):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)sphereWithRadius:(CGFloat)radius 创建并返回给定半径的球体 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat radius 球体半径。动画 iOS11.4
    BOOL geodesic 指出几何是否是地圈 iOS11.4
    NSInteger segmentCount 沿两个球面坐标的段数。动画 iOS11.4

    SCNCylinder(SCNCylinder表示具有可控高度和半径的圆柱体):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)cylinderWithRadius:(CGFloat)radius height:(CGFloat)height 创建并返回给定半径和高度的圆柱体 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat radius 圆柱的半径。动画 iOS11.4
    CGFloat height 圆柱的高度。动画 iOS11.4
    NSInteger segmentCount 沿径向坐标的细分数。动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。动画 iOS11.4

    SCNCone(SCNCone表示具有可控高度,顶部半径和底部半径的锥体):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)coneWithTopRadius:(CGFloat)topRadius bottomRadius:(CGFloat)bottomRadius height:(CGFloat)height 创建并返回给定半径和高度的圆柱体 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat topRadius 锥顶部的半径。动画 iOS11.4
    CGFloat bottomRadius 锥体底部的半径。动画 iOS11.4
    CGFloat height 锥体的高度。动画 iOS11.4
    NSInteger radialSegmentCount 沿径向坐标的细分数。动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。动画 iOS11.4

    SCNTube(SCNTube代表具有可控高度,内半径和外半径的管):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)tubeWithInnerRadius:(CGFloat)innerRadius outerRadius:(CGFloat)outerRadius height:(CGFloat)height 创建并返回具有给定内半径,外半径和高度的管 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat innerRadius 管的内半径。动画 iOS11.4
    CGFloat outerRadius 管的外半径。动画 iOS11.4
    CGFloat height 管的高度。动画 iOS11.4
    NSInteger radialSegmentCount 沿径向坐标的细分数。动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。动画 iOS11.4

    SCNCapsule(SCNCapsule代表具有可控高度和帽半径的胶囊):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)capsuleWithCapRadius:(CGFloat)capRadius height:(CGFloat)height 创建并返回具有给定半径和高度的胶囊 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat capRadius 胶囊的帽半径。动画 iOS11.4
    CGFloat height 胶囊的高度。动画 iOS11.4
    NSInteger radialSegmentCount 沿径向坐标的细分数。动画 iOS11.4
    NSInteger heightSegmentCount 沿Y轴的细分数。动画 iOS11.4
    NSInteger capSegmentCount 上限中的细分数量。动画 iOS11.4

    SCNTorus(SCNTorus表示具有可控环半径和管道半径的圆环):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)torusWithRingRadius:(CGFloat)ringRadius pipeRadius:(CGFloat)pipeRadius 创建并返回具有给定环半径和管道半径的圆环 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat ringRadius 圆环的半径。动画 iOS11.4
    CGFloat pipeRadius 圆环管的半径。动画 iOS11.4
    NSInteger ringSegmentCount 戒指的细分数量。动画 iOS11.4
    NSInteger pipeSegmentCount 管道的细分数量。动画 iOS11.4

    SCNFloor(SCNFloor表示无限平面几何):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)floor 创建并返回一个地板 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat reflectivity 指定地板的反射率。动画 iOS11.4
    CGFloat reflectionFalloffStart 指定从衰减开始的楼层开始的距离。动画 iOS11.4
    CGFloat reflectionFalloffEnd 指定距离落差的地板的距离。动画 iOS11.4
    NSUInteger reflectionCategoryBitMask 确定要反映的节点类别。默认为所有设置的位 iOS11.0 iOS11.4
    CGFloat width 沿X轴的地板范围。动画 iOS11.0 iOS11.4
    CGFloat length 沿Z轴的地板范围。动画 iOS11.0 iOS11.4
    CGFloat reflectionResolutionScaleFactor 指定用于渲染反射的缓冲区的分辨率比例因子 MacOS10.10 iOS11.4

    SCNText(SCNText表示已挤出的文本块):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)textWithString:(nullable id)string extrusionDepth:(CGFloat)extrusionDepth; 使用给定的拉伸深度创建并返回给定文本的3D表示 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat extrusionDepth 挤出深度。动画 iOS11.4
    id string 要表示的文本。该文本必须是NSString或NSAttributedString的实例 iOS11.4
    UIFont *font 用于表示文本的字体 iOS11.4
    BOOL wrapped 确定文本是否被包装以适合边界 iOS11.4
    CGRect containerFrame 可以包装或截断文本的容器 iOS11.4
    NSString *truncationMode 描述如何截断文本以适应边界 iOS11.4
    NSString *alignmentMode 确定各个文本行在边界内的水平对齐方式 iOS11.4
    CGFloat chamferRadius 倒角半径。动画 iOS11.4
    UIBezierPath *chamferProfile 描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 iOS11.4
    CGFloat flatness 指定呈现字体的精度(或平滑度)` MacOS10.9 iOS11.4

    SCNChamferMode(倒角模式)

    属 性 说 明 备 注 SDK版本
    SCNChamferModeBoth MacOS10.9 iOS11.4
    SCNChamferModeFront MacOS10.9 iOS11.4
    SCNChamferModeBack MacOS10.9 iOS11.4

    SCNShape(SCNShape表示可以挤出的2D形状(立方贝塞尔样条)):SCNGeometry

    方 法 说 明 备 注 SDK版本
    + (instancetype)shapeWithPath:(nullable UIBezierPath *)path extrusionDepth:(CGFloat)extrusionDepth 使用给定的拉伸深度创建并返回给定形状的3D表示 iOS11.4
    属 性 说 明 备 注 SDK版本
    UIBezierPath *path 定义要渲染的形状的路径 iOS11.4
    CGFloat extrusionDepth 挤出深度。动画 iOS11.4
    SCNChamferMode chamferMode 被倒角的文本的边 iOS11.4
    CGFloat chamferRadius 倒角半径。动画 iOS11.4
    UIBezierPath *chamferProfile 描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 iOS11.4

    文件SCNTransaction.h

    #import <SceneKit/SCNTransaction.h>

    内容简介

    SCNTransaction(事务是SceneKit将多个场景图操作批处理为原子更新的机制。对场景图的每次修改都要求事务成为其中的一部分)

    方 法 说 明 备 注 SDK版本
    + (void)begin 为当前线程开始一个新事务 iOS11.4
    + (void)commit 提交当前事务期间所做的所有更改 iOS11.4
    + (void)flush 提交任何现存的隐含交易。将延迟实际提交,直到任何嵌套显式事务完成 iOS11.4
    + (void)lock 锁定全局锁的方法 iOS11.4
    + (void)unlock 解锁全局锁的方法 iOS11.4
    + (nullable id)valueForKey:(NSString *)key 将任意键控数据与当前事务(即与当前线程)相关联 iOS11.4
    + (void)setValue:(nullable id)value forKey:(NSString *)key iOS11.4
    属 性 说 明 备 注 SDK版本
    CFTimeInterval animationDuration 每个线程事务属性的“animationDuration”访问器。定义动画的默认持续时间。显式事务的默认值为1 / 4s,隐式事务的默认值为0 iOS11.4
    CAMediaTimingFunction *animationTimingFunction 每个线程事务属性的“animationTimingFunction”的访问器。默认值为nil,当设置为非零值时,添加到场景图中的任何动画都将此值设置为其“timingFunction”属性 iOS11.4
    BOOL disableActions 每个线程事务属性的“disableActions”的访问器。定义是否执行隐式动画。默认为NO,即启用隐式动画 iOS11.4
    void (^completionBlock)(void) “completionBlock”每线程事务属性的访问器。一旦设置为非空,只要此事务组随后添加的所有动画都已完成(或已被删除),就可以保证在该主线程上调用该块)。 iOS11.4

    文件SCNMorpher.h

    #import <SceneKit/SCNMorpher.h>

    内容简介

    属 性 说 明 备 注 SDK版本
    NSArray<SCNGeometry *> *target 将变形目标指定为SCNGeometry数组 iOS11.4
    SCNMorpherCalculationMode calculationMode 指定接收器如何计算变形结果。默认为SCNMorpherCalculationModeNormalized iOS11.4
    NSArray<NSNumber *> *weights 访问所有目标的所有权重 iOS11.0 iOS11.4
    BOOL unifiesNormals 设置为YES时,法线不会变形,而是在变形顶点后重新计算。设置为NO时,如果几何目标具有法线,则变形器将变形法线。默认为NO iOS11.0 iOS11.4
    方法 说 明 备 注 SDK版本
    - (void)setWeight:(CGFloat)weight forTargetAtIndex:(NSUInteger)targetIndex 设置指定索引处目标的权重。使用keyPath“weights [index]”或“weights [”targetName“]”隐式或显式动画化(targetName是目标几何体的名称) iOS11.4
    - (CGFloat)weightForTargetAtIndex:(NSUInteger)targetIndex; 检索指定索引处目标的权重 iOS11.4
    - (void)setWeight:(CGFloat)weight forTargetNamed:(NSString *)targetName 设置具有指定名称的目标的权重(targetName是目标几何的名称) iOS11.0 iOS11.4
    - (CGFloat)weightForTargetNamed:(NSString *)targetName 使用指定的名称检索目标的权重(targetName是目标几何的名称) iOS11.0 iOS11.4

    SCNSkinner(SCNSkinner控制蒙皮几何的变形)

    #import <SceneKit/SCNSkinner.h>

    内容简介

    属 性 说 明 备 注 SDK版本
    SCNNode *skeleton 指定接收器的骨架 iOS11.4
    SCNGeometry *baseGeometry 指定接收器的基本几何体 MacOS10.9 iOS11.4
    SCNMatrix4 baseGeometryBindTransform 指定网格绑定到骨架时baseGeometry的变换。这会将baseGeometry从对象空间转换为应用蒙皮的空间 MacOS10.10 iOS11.4
    NSArray<NSValue *> *boneInverseBindTransforms 绑定形状绑定到此骨骼时骨骼的绑定空间转换矩阵的反转 MacOS10.10 iOS11.4
    NSArray<SCNNode *> *bones 皮肤的骨骼 MacOS10.10 iOS11.4
    SCNGeometrySource *boneWeights 接收器的骨骼权重 MacOS10.10 iOS11.4
    SCNGeometrySource *boneIndices 接收器的骨骼索引 MacOS10.10 iOS11.4
    方法 说 明 备 注 SDK版本
    + (instancetype)skinnerWithBaseGeometry:(nullable SCNGeometry *)baseGeometry bones:(NSArray<SCNNode *> *)bones boneInverseBindTransforms:(nullable NSArray<NSValue *> *)boneInverseBindTransforms boneWeights:(SCNGeometrySource *)boneWeights boneIndices:(SCNGeometrySource *)boneIndices 使用指定的参数创建并初始化skinner实例 MacOS10.10 iOS11.4

    文件SCNConstraint.h

    #import <SceneKit/SCNConstraint.h>

    内容简介

    SCNConstraint(SCNConstraint是一个抽象类,表示可以应用于节点的单个约束)

    属 性 说 明 备 注 SDK版本
    BOOL enabled 确定是否启用约束。默认为YES MacOS10.10 iOS11.4
    CGFloat influenceFactor 指定接收器的影响因子。默认为1.动画 MacOS10.10 iOS11.4
    BOOL incremental 指定约束是否应以递增方式应用,并使其在渲染帧上累积效果。在macOS 10.13,iOS 11,tvOS 11和watchOS 4上默认为YES。在早期版本中默认为NO iOS11.0 iOS11.4

    SCNLookAtConstraint(SCNLookAtConstraint应用于节点的方向,以便始终查看另一个节点):SCNConstraint MacOS10.9

    属 性 说 明 备 注 SDK版本
    SCNNode *target 定义要查看的目标节点 iOS10.0 iOS11.4
    SCNVector3 targetOffset 偏移看目标空间中的位置。默认为零。动画 iOS11.0 iOS11.4
    SCNVector3 localFront 约束所有者本地空间中的前向。默认为[SCNNode localFront]。动画 iOS11.0 iOS11.4
    SCNVector3 worldUp 世界空间中的参考方向。默认为[SCNNode localUp]。动画 iOS11.0 iOS11.4
    BOOL gimbalLockEnabled 指定接收器是否启用万向节锁定。默认为NO iOS11.4
    方法 说 明 备 注 SDK版本
    + (instancetype)lookAtConstraintWithTarget:(nullable SCNNode *)target 创建并返回具有指定目标的SCNLookAtConstraint对象 iOS11.4
    - (nullable SCNNode *)target iOS11.4
    - (void)setTarget:(nullable SCNNode *)target iOS11.4

    SCNBillboardAxis

    属 性 说 明 备 注 SDK版本
    SCNBillboardAxisX iOS11.4
    SCNBillboardAxisY iOS11.4
    SCNBillboardAxisZ iOS11.4
    SCNBillboardAxisAll SCNBillboardAxisX | SCNBillboardAxisY | SCNBillboardAxisZ iOS11.4

    SCNBillboardConstraint:SCNConstraint iOS9.0

    属 性 说 明 备 注 SDK版本
    + (instancetype)billboardConstraint 创建并返回SCNBillboardConstraint约束 iOS11.4
    SCNBillboardAxis freeAxes 指定广告牌方向运行的轴。默认为SCNBillboardAxisAll iOS11.4

    SCNTransformConstraint(SCNTransformConstraint通过自定义块应用于节点的转换):SCNConstraint MacOS10.9

    方 法 说 明 备 注 SDK版本
    + (instancetype)transformConstraintInWorldSpace:(BOOL)world withBlock:(SCNMatrix4 (^)(SCNNode *node, SCNMatrix4 transform))block 使用指定的参数创建并返回SCNTransformConstraint对象 iOS11.4
    + (instancetype)positionConstraintInWorldSpace:(BOOL)world withBlock:(SCNVector3 (^)(SCNNode *node, SCNVector3 position))block 使用指定的参数创建并返回SCNTransformConstraint对象 iOS11.0 iOS11.4
    + (instancetype)orientationConstraintInWorldSpace:(BOOL)world withBlock:(SCNQuaternion (^)(SCNNode *node, SCNQuaternion quaternion))block 使用指定的参数创建并返回SCNTransformConstraint对象 iOS11.0 iOS11.4

    SCNIKConstraint(SCNIKConstraint应用反向运动学约束):SCNConstraint MacOS10.10

    方 法 说 明 备 注 SDK版本
    - (instancetype)initWithChainRootNode:(SCNNode *)chainRootNode 使用指定的参数创建并返回SCNIKConstraint对象 iOS9.0 iOS11.4
    + (instancetype)inverseKinematicsConstraintWithChainRootNode:(SCNNode *)chainRootNode 使用指定的参数创建并返回SCNIKConstraint对象 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNNode *chainRootNode 指定运动链的根节点 iOS11.4
    SCNVector3 targetPosition 指定结束关节的目标位置(在世界空间坐标中)(即拥有IK约束的节点)。默认为(0,0,0)。动画 iOS11.4
    - (void)setMaxAllowedRotationAngle:(CGFloat)angle forJoint:(SCNNode *)node 指定指定关节从其初始方向允许的最大旋转(以度为单位)。默认为180 iOS11.4
    - (CGFloat)maxAllowedRotationAngleForJoint:(SCNNode *)node iOS11.4

    SCNDistanceConstraint(SCNDistanceConstraint确保与目标节点的最小/最大距离。):SCNConstraint iOS11.0

    方 法 说 明 备 注 SDK版本
    + (instancetype)distanceConstraintWithTarget:(nullable SCNNode *)target 创建并返回SCNDistanceConstraint约束 iOS11.4
    SCNNode *target 定义目标节点以保持距离 iOS11.4
    CGFloat minimumDistance 最小距离。默认为0.可动画 iOS11.4
    CGFloat maximumDistance 最小距离。默认为MAXFLOAT。动画 iOS11.4

    SCNReplicatorConstraint(SCNReplicatorConstraint复制目标节点的位置/方向/比例):SCNConstraint iOS11.0

    方 法 说 明 备 注 SDK版本
    + (instancetype)replicatorConstraintWithTarget:(nullable SCNNode *)target 创建并返回SCNReplicatorConstraint约束 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNNode *target 定义要复制的目标节点 iOS11.4
    BOOL replicatesOrientation 定义约束是否应复制目标方向。默认为YES iOS11.4
    BOOL replicatesPosition 定义约束是否应复制目标位置。默认为YES iOS11.4
    BOOL replicatesScale 定义约束是否应复制目标比例。默认为YES iOS11.4
    SCNQuaternion orientationOffset 定义添加方向偏移。默认为无偏移。动画 iOS11.4
    SCNVector3 positionOffset 定义添加方向偏移。默认为无偏移。动画 iOS11.4
    SCNVector3 scaleOffset 定义附加比例偏移。默认为无偏移。动画 iOS11.4

    SCNAccelerationConstraint(SCNAccelerationConstraint限制节点的加速度和速度):SCNConstraint(iOS11.0)

    方 法 说 明 备 注 SDK版本
    + (instancetype)accelerationConstraint; 创建并返回SCNAccelerationConstraint对象 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat maximumLinearAcceleration 控制最大线性加速度。默认为MAXFLOAT。动画 iOS11.4
    CGFloat maximumLinearVelocity 控制最大线速度。默认为MAXFLOAT。动画 iOS11.4
    CGFloat decelerationDistance 控制节点开始减速的距离。默认为0。动画 iOS11.4
    CGFloat damping 指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1。动画 iOS11.4

    SCNSliderConstraint(SCNSliderConstraint约束使节点与一类节点冲突和滑动):SCNConstraint iOS11.0

    方 法 说 明 备 注 SDK版本
    + (instancetype)sliderConstraint; 创建并返回SCNSliderConstraint对象。 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSUInteger collisionCategoryBitMask 定义要冲突的节点类别。默认为0 iOS11.4
    CGFloat radius 定义滑块的半径。默认为1 iOS11.4
    SCNVector3 offset 定义滑块的偏移量。默认为(0,0,0) iOS11.4

    SCNAvoidOccluderConstraintDelegate代理

    方 法 说 明 备 注 SDK版本
    - (BOOL)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint shouldAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node iOS11.4
    - (void)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint didAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node iOS11.4

    SCNAvoidOccluderConstraint(SCNAvoidOccluderConstraint约束将接收器放置在阻止具有指定类别的节点来遮挡目标的位置):SCNConstraint iOS11.0

    方 法 说 明 备 注 SDK版本
    + (instancetype)avoidOccluderConstraintWithTarget:(nullable SCNNode *)target 创建并返回SCNAvoidOccluderConstraint对象 iOS11.4
    属 性 说 明 备 注 SDK版本
    id <SCNAvoidOccluderConstraintDelegate> delegate 接收者的代表 iOS11.4
    NSUInteger occluderCategoryBitMask 定义要视为封堵器的节点类别。默认为1 iOS11.4
    CGFloat bias 定义移动接收器后应用的偏置以避免遮挡物。默认为10e-5 iOS11.4

    文件SCNLevelOfDetail.h

    #import <SceneKit/SCNLevelOfDetail.h>

    内容简介

    SCNLevelOfDetail(SCNLevelOfDetail表示几何的详细程度) iOS10.9

    方 法 说 明 备 注 SDK版本
    + (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry screenSpaceRadius:(CGFloat)radius 这是一种使用覆盖半径阈值模式创建细节级别的便捷方法 iOS11.4
    + (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry worldSpaceDistance:(CGFloat)distance 这是使用距离阈值模式创建细节级别的便捷方法 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNGeometry *geometry 返回接收器的几何 iOS11.4
    CGFloat screenSpaceRadius 返回接收器的屏幕空间半径(如果有),否则返回0 iOS11.4
    CGFloat worldSpaceDistance 返回接收器的世界空间距离(如果有),否则返回0 iOS11.4

    文件SCNParticleSystem.h

    #import <SceneKit/SCNParticleSystem.h>

    内容简介

    SCNParticleProperty(粒子属性)

    属 性 说 明 备 注 SDK版本
    SCNParticlePropertyPosition float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} MacOS10.10 iOS11.4
    SCNParticlePropertyAngle float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyRotationAxis float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} MacOS10.10 iOS11.4
    SCNParticlePropertyVelocity float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} MacOS10.10 iOS11.4
    SCNParticlePropertyAngularVelocity float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyLife float 不可控制 MacOS10.10 iOS11.4
    SCNParticlePropertyColor float4 : {r,g,b,a} 控制器动画类型:{UIColor} MacOS10.10 iOS11.4
    SCNParticlePropertyOpacity float 控制器动画类型:{NSNumber} iOMacOS10.10S10.10 iOS11.4
    SCNParticlePropertySize float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyFrame float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyFrameRate float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyBounce float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyCharge float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyFriction float 控制器动画类型:{NSNumber} MacOS10.10 iOS11.4
    SCNParticlePropertyContactPoint float3 不可控制 仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10 iOS11.4
    SCNParticlePropertyContactNormal float3 不可控制 仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10 iOS11.4

    粒子事件回调

    typedef void (^SCNParticleEventBlock)(void * _Nonnull * _Nonnull data, size_t * _Nonnull dataStride, uint32_t * _Nullable indices, NSInteger count)

    粒子修改回调

    typedef void (^SCNParticleModifierBlock)(void * _Nonnull * _Nonnull data, size_t * _Nonnull dataStride, NSInteger start, NSInteger end, float deltaTime);

    SCNParticleSortingMode(粒子排序模式)

    常 量 说 明 备 注 SDK版本
    SCNParticleSortingModeNone 粒子没有排序 MacOS10.10 iOS11.4
    SCNParticleSortingModeProjectedDepth 粒子按深度排序(远远渲染) MacOS10.10 iOS11.4
    SCNParticleSortingModeDistance 粒子按距离的角度排序 MacOS10.10 iOS11.4
    SCNParticleSortingModeOldestFirst 颗粒按出生日期排序 - 最早出现 MacOS10.10 iOS11.4
    SCNParticleSortingModeYoungestFirst 粒子按出生日期排序 - 先取消 MacOS10.10 iOS11.4

    SCNParticleBlendMode(粒子混合模式)

    常 量 说 明 备 注 SDK版本
    SCNParticleBlendModeAdditive 粒子没有排序 MacOS10.10 iOS11.4
    SCNParticleBlendModeSubtract 粒子按深度排序(远远渲染) MacOS10.10 iOS11.4
    SCNParticleBlendModeMultiply 粒子按距离的角度排序 MacOS10.10 iOS11.4
    SCNParticleBlendModeScreen 颗粒按出生日期排序 - 最早出现 MacOS10.10 iOS11.4
    SCNParticleBlendModeAlpha 粒子按出生日期排序 - 先取消 MacOS10.10 iOS11.4
    SCNParticleBlendModeReplace 粒子按出生日期排序 - 先取消 MacOS10.10 iOS11.4

    SCNParticleOrientationMode(粒子方向模式)

    常 量 说 明 备 注 SDK版本
    SCNParticleOrientationModeBillboardScreenAligned 粒子在屏幕上对齐 MacOS10.10 iOS11.4
    SCNParticleOrientationModeBillboardViewAligned 从视点到粒子,粒子与矢量垂直 MacOS10.10 iOS11.4
    SCNParticleOrientationModeFree 在所有轴上自由 MacOS10.10 iOS11.4
    SCNParticleOrientationModeBillboardYAligned 固定在Y轴上 MacOS10.10 iOS11.4

    SCNParticleBirthLocation(粒子出生位置)

    常 量 说 明 备 注 SDK版本
    SCNParticleBirthLocationSurface 粒子在发射器形状的表面上发射 MacOS10.10 iOS11.4
    SCNParticleBirthLocationVolume 粒子在发射器形状的体积内发射 MacOS10.10 iOS11.4
    SCNParticleBirthLocationVertex 粒子在发射器形状的顶点上发射 MacOS10.10 iOS11.4

    SCNParticleBirthDirection(粒子出生方向)

    常 量 说 明 备 注 SDK版本
    SCNParticleBirthDirectionConstant Z发射器的方向 MacOS10.10 iOS11.4
    SCNParticleBirthDirectionSurfaceNormal 使用形状引起的方向 MacOS10.10 iOS11.4
    SCNParticleBirthDirectionRandom 随机方向 MacOS10.10 iOS11.4

    SCNParticleImageSequenceAnimationMode(纹理动画模式)

    常 量 说 明 备 注 SDK版本
    SCNParticleImageSequenceAnimationModeRepeat 动画将循环播放 MacOS10.10 iOS11.4
    SCNParticleImageSequenceAnimationModeClamp 动画将在两端停止 MacOS10.10 iOS11.4
    SCNParticleImageSequenceAnimationModeAutoReverse 到达终点时动画将反转 MacOS10.10 iOS11.4

    SCNParticleInputMode(粒子变化模式)

    常 量 说 明 备 注 SDK版本
    SCNParticleInputModeOverLife 控制器动画的输入时间是粒子的当前生命周期 MacOS10.10 iOS11.4
    SCNParticleInputModeOverDistance 控制器动画的输入时间是距变化原点节点的距离 MacOS10.10 iOS11.4
    SCNParticleInputModeOverOtherProperty 控制器动画的输入时间是另一个指定属性的当前值 MacOS10.10 iOS11.4

    SCNParticleModifierStage(粒子修改器阶段)

    常 量 说 明 备 注 SDK版本
    SCNParticleModifierStagePreDynamics MacOS10.10 iOS11.4
    SCNParticleModifierStagePostDynamics MacOS10.10 iOS11.4
    SCNParticleModifierStagePreCollision MacOS10.10 iOS11.4
    SCNParticleModifierStagePostCollision MacOS10.10 iOS11.4

    SCNParticleEvent(粒子事件)

    常 量 说 明 备 注 SDK版本
    SCNParticleEventBirth 新粒子产生时触发的事件 MacOS10.10 iOS11.4
    SCNParticleEventDeath 粒子死亡时触发事件 MacOS10.10 iOS11.4
    SCNParticleEventCollision 粒子与碰撞器节点碰撞时触发的事件 MacOS10.10 iOS11.4

    SCNParticlePropertyController(SCNParticlePropertyController类控制粒子属性随时间或距离的变化) MacOS10.10

    方 法 说 明 备 注 SDK版本
    + (instancetype)controllerWithAnimation:(CAAnimation *)animation 使用指定的动画创建并初始化粒子属性控制器 iOS11.4
    属性 说 明 备 注 SDK版本
    CAAnimation *animation 指定要在粒子系统属性上应用的动画。动画的类型取决于受控制的属性。请参阅属性名称定义中的文档 iOS11.4
    SCNParticleInputMode inputMode 指定接收器的输入模式。这可以是生命,远距离或另一个属性的演变。默认为SCNParticleInputModeOverLife iOS11.4
    CGFloat inputScale 指定输入比例。inputScale默认为1 iOS11.4
    CGFloat inputBias 指定输入偏差。inputBias默认为0 iOS11.4
    SCNNode *inputOrigin 指定变体模式“SCNParticleInputModeOverDistance”的原点 iOS11.4
    SCNParticleProperty inputProperty 指定将哪个属性用作输入模式“SCNParticleInputModeOverOtherProperty”的输入 iOS11.4

    SCNParticleSystem(SCNParticleSystem类表示粒子系统) MacOS10.10

    方 法 说 明 备 注 SDK版本
    + (instancetype)particleSystem 创建粒子系统的实例 iOS11.4
    + (nullable instancetype)particleSystemNamed:(NSString *)name inDirectory:(nullable NSString *)directory iOS11.4

    Emitter properties(发射器属性)

    属性 说 明 备 注 SDK版本
    CGFloat emissionDuration 指定发射的持续时间。默认为1.动画 iOS11.4
    CGFloat emissionDurationVariation 指定发射持续时间的变化。默认为0.可动画 iOS11.4
    CGFloat idleDuration 指定两次发射之间的空闲持续时间。默认为0.可动画 iOS11.4
    CGFloat idleDurationVariation 指定空闲持续时间的变化。默认为0.可动画 iOS11.4
    BOOL loops 指定发射的循环行为。默认为YES iOS11.4
    CGFloat birthRate 指定粒子速率流,以每个emissionDuration的粒子数表示。没有循环的emissionDuration为0意味着粒子瞬间发射.0表示发射器不发光,除非它有变化。默认为1.动画 iOS11.4
    CGFloat birthRateVariation 指定费率流的变化。默认为0.可动画 iOS11.4
    CGFloat warmupDuration 指定在第一次渲染系统之前发射粒子的时间长度。例如,这允许启动已经下降的雪场景。默认为0.可动画 iOS11.4
    SCNGeometry *emitterShape 指定发射器的形状。零意味着一个准时发射器。默认为零 iOS11.4
    SCNParticleBirthLocation birthLocation 指定新创建的粒子的位置。默认为SCNParticleBirthLocationSurface iOS11.4
    SCNParticleBirthDirection birthDirection 指定新创建的粒子的方向。默认为SCNParticleBirthDirectionConstant iOS11.4
    CGFloat spreadingAngle 指定新创建的粒子的传播方向,以度为单位。未在SCNParticleBirthDirectionRandom中使用。默认为0.可动画 iOS11.4
    SCNVector3 emittingDirection 指定在SCNParticleBirthDirectionConstant模式中使用的新创建的粒子的发射方向。默认为{0,0,1}。动画 iOS11.4
    SCNVector3 orientationDirection 指定在SCNParticleOrientationModeFree模式中使用的新创建的粒子的方向。粒子将围绕此轴旋转。默认为{0,0,0},表示随机。然后粒子将任意旋转。动画 iOS11.0 iOS11.4
    SCNVector3 acceleration 以世界坐标指定应用于粒子的加速度。允许模拟风或重力。默认为{0,0,0}。动画 iOS11.4
    BOOL local 指定系统的呈现和模拟类型。如果设置为YES,系统将使用附加节点的变换进行渲染。默认为NO iOS11.4

    Particle properties(粒子属性)

    属性 说 明 备 注 SDK版本
    CGFloat particleAngle 指定出生时粒子的初始角度,单位为度。默认为0.可动画 iOS11.4
    CGFloat particleAngleVariation 指定出生时粒子初始角度的变化,以度为单位。默认为0.可动画 iOS11.4
    CGFloat particleVelocity 指定出生时粒子的初始速度,以每秒为单位。默认为0.可动画 iOS11.4
    CGFloat particleVelocityVariation 指定速度的变化。默认为0.可动画 iOS11.4
    CGFloat particleAngularVelocity 指定出生时粒子的初始角速度,以每秒度数。默认为0.可动画 iOS11.4
    CGFloat particleAngularVelocityVariation 指定角速度的变化,以度/秒为单位。默认为0.可动画 iOS11.4
    CGFloat particleLifeSpan 指定粒子的寿命。动画 iOS11.4
    CGFloat particleLifeSpanVariation 指定粒子的寿命变化。动画 iOS11.4
    SCNParticleSystem *systemSpawnedOnDyin 指定在粒子死亡时生成新粒子的可选系统 iOS11.4
    SCNParticleSystem *systemSpawnedOnCollision 指定在粒子死亡时生成新粒子的可选系统 iOS11.4
    SCNParticleSystem *systemSpawnedOnLiving 指定在粒子处于活动状态时生成新粒子的可选系统 iOS11.4

    Particle Rendering(粒子渲染)

    属性 说 明 备 注 SDK版本
    id particleImage 指定粒子的图像。可以设置为NSImage/UIImage,路径或URL iOS11.4
    NSUInteger imageSequenceColumnCount 指定图像序列中的列数。默认为1 iOS11.4
    NSUInteger imageSequenceRowCount 指定图像序列中的行数。默认为1 iOS11.4
    CGFloat imageSequenceInitialFrame 指定纹理初始帧索引。范围从0到(imageSequenceColumnCount * imageSequenceRowCount - 1)。默认为0.可动画 iOS11.4
    CGFloat imageSequenceInitialFrameVariation 指定纹理初始帧变体。动画 iOS11.4
    CGFloat imageSequenceFrameRate 指定纹理动画帧速率,以每秒帧数为单位。默认为0.可动画 iOS11.4
    CGFloat imageSequenceFrameRateVariation 指定纹理动画帧速率变化,以每秒帧数为单位。默认为0.可动画 iOS11.4
    SCNParticleImageSequenceAnimationMode imageSequenceAnimationMode 指定纹理动画模式。默认为SCNTextureAnimationModeRepeat iOS11.4
    UIColor *particleColor 指定粒子的初始颜色。动画。默认为不透明白色 iOS11.4
    SCNVector4 particleColorVariation 指定颜色的标准化变化。使用x:色调变化,y:饱和度变化,z:亮度变化,w:alpha变化。动画 iOS11.4
    CGFloat particleSize 指定粒子的初始大小。动画 iOS11.4
    CGFloat particleSizeVariation 指定粒子的初始大小变化。动画 iOS11.4
    CGFloat particleIntensity 指定粒子的初始强度。动画 iOS11.0 iOS11.4
    CGFloat particleIntensityVariation 指定粒子的初始强度变化。动画 iOS11.4
    SCNParticleBlendMode blendMode 指定用于渲染粒子系统的混合模式。默认为SCNParticleBlendModeAdditive iOS11.4
    BOOL blackPassEnabled 指定渲染粒子系统时是否需要黑色传递。这加强了添加剂/光系统的对比度。默认为NO iOS11.4
    SCNParticleOrientationMode orientationMode 指定粒子的方向模式。默认为SCNParticleOrientationModeBillboardScreenAligned iOS11.4
    SCNParticleSortingMode sortingMode 指定粒子的排序模式。默认为SCNParticleSortingModeNone iOS11.4
    BOOL lightingEnabled 实现粒子系统的照明 iOS11.4

    Particle Simulation(粒子模拟)

    属 性 说 明 备 注 SDK版本
    BOOL affectedByGravity 允许使用SCNPhysicsWorld中定义的重力 iOS11.4
    BOOL affectedByPhysicsFields 启用添加到SCNPhysicsWorld的物理字段的效果 iOS11.4
    BOOL particleDiesOnCollision 指定粒子在碰撞时是否死亡 iOS11.4
    NSArray<SCNNode *> *colliderNodes 指定要与之冲突的SCNNode数组 iOS11.4
    CGFloat particleMass 指定粒子质量。动画 iOS11.4
    CGFloat particleMassVariation 指定粒子质量变化。动画 iOS11.4
    CGFloat particleBounce 指定粒子反弹。动画 iOS11.4
    CGFloat particleBounceVariation 指定粒子反弹变化。动画 iOS11.4
    CGFloat particleFriction 指定粒子摩擦力。动画 iOS11.4
    CGFloat particleFrictionVariation 指定粒子摩擦变化。动画 iOS11.4
    CGFloat particleCharge 指定粒子上的电荷。电荷决定了粒子受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0。动画 iOS11.4
    CGFloat particleChargeVariation 指定粒子电荷变化。动画 iOS11.4
    CGFloat dampingFactor 指定颗粒空气阻力。默认为0.可动画 iOS11.4
    CGFloat speedFactor 指定模拟速度乘数。默认为1.动画 iOS11.4
    CGFloat stretchFactor 指定粒子是否沿其方向伸展。默认为0.可动画 iOS11.4
    CGFloat fresnelExponent 指定接收者的菲涅耳指数值。默认为3.可动画。仅在particleImage是立方体贴图时使用。数量越大,边缘周围的反射越集中 iOS11.4
    NSDictionary<SCNParticleProperty, SCNParticlePropertyController *> *propertyControllers 属性控制器 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)reset 删除所有已发射的粒子并重新开始模拟 iOS11.4

    Events handling(事件控制)

    方 法 说 明 备 注 SDK版本
    - (void)handleEvent:(SCNParticleEvent)event forProperties:(NSArray<SCNParticleProperty> *)properties withBlock:(SCNParticleEventBlock)block 对于触发指定事件的粒子,将调用“block”,其数据和dataStride对应于“properties”。该块应仅通过块中作为参数传递的“indices”更新粒子属性引用 iOS11.4

    Modifications handling(修改处理)

    将在指定阶段的每个模拟步骤调用“块”。传递给块的data和dataStride将对应于指定的“属性”

    方 法 说 明 备 注 SDK版本
    - (void)addModifierForProperties:(NSArray<SCNParticleProperty> *)properties atStage:(SCNParticleModifierStage)stage withBlock:(SCNParticleModifierBlock)block iOS11.4
    - (void)removeModifiersOfStage:(SCNParticleModifierStage)stage iOS11.4
    - (void)removeAllModifiers iOS11.4

    SCNNode(SCNParticleSystemSupport) 粒子系统支持

    方 法 说 明 备 注 SDK版本
    - (void)addParticleSystem:(SCNParticleSystem *)system 将粒子系统添加到接收器 MacOS10.10 iOS11.4
    - (void)removeAllParticleSystems 删除接收器的所有粒子系统 MacOS10.10 iOS11.4
    - (void)removeParticleSystem:(SCNParticleSystem *)system 从接收器中删除指定的粒子系统 MacOS10.10 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSArray<SCNParticleSystem *> *particleSystems 粒子系统附加到节点 MacOS10.10 iOS11.4

    文件SCNPhysicsBody.h

    #import <SceneKit/SCNPhysicsBody.h>

    内容简介

    SCNPhysicsBodyType 物理体类型 MacOS10.10

    属 性 说 明 备 注 SDK版本
    SCNPhysicsBodyTypeStatic iOS11.4
    SCNPhysicsBodyTypeDynamic iOS11.4
    SCNPhysicsBodyTypeKinematic iOS11.4

    SCNPhysicsCollisionCategory 碰撞默认类别 MacOS10.10

    属 性 说 明 备 注 SDK版本
    SCNPhysicsCollisionCategoryDefault 动态和运动对象的默认碰撞组 iOS11.4
    SCNPhysicsCollisionCategoryStatic 静态对象的默认冲突组 iOS11.4
    SCNPhysicsCollisionCategoryAll 冲突掩码的默认值 iOS11.4

    SCNPhysicsBody SCNPhysicsBody类描述节点的物理属性(例如质量,摩擦……)MacOS10.10

    方 法 说 明 备 注 SDK版本
    + (instancetype)staticBody 使用默认属性创建静态实体的实例 iOS11.4
    + (instancetype)dynamicBody 使用默认属性创建动态主体的实例 iOS11.4
    + (instancetype)kinematicBody 使用默认属性创建运动体的实例 iOS11.4
    + (instancetype)bodyWithType:(SCNPhysicsBodyType)type shape:(nullable SCNPhysicsShape *)shape 创建具有特定形状的刚体的实例 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNPhysicsBodyType type 指定接收器的类型 iOS11.4
    CGFloat mass 以千克为单位指定主体的质量。动态实体默认为1,静态实体默认为0 iOS11.4
    SCNVector3 momentOfInertia 将身体的惯性矩指定为3D中的矢量。禁用usesDefaultMomentOfInertia以使用此值而不是根据形状几何计算的默认惯性矩 iOS9.0 iOS11.4
    BOOL usesDefaultMomentOfInertia 允许禁用默认惯性力矩,以支持存储在momentOfInertia中的惯性力矩 iOS9.0 iOS11.4
    CGFloat charge 指定身体上的电荷。电荷决定了身体受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0 iOS11.4
    CGFloat friction 指定抵抗实体相对滑动的相对运动的力。默认为0.5 iOS11.4
    CGFloat restitution 指定冲突的恢复。默认为0.5 iOS11.4
    CGFloat rollingFriction 指定抵抗实体相对于彼此的相对运动的力。默认为0 iOS11.4
    SCNPhysicsShape *physicsShape 指定接收器的物理形状。离开这个零将让系统决定并使用实际几何的最有效的边界表示 iOS11.4
    BOOL isResting 如果物理模拟确定该物体处于静止状态,则可以将静止属性设置为YES。在与非静止物体发生碰撞或施加冲动之后,静止物体不会参与模拟,从而使其失效。如果世界上所有的身体都在休息,那么模拟作为一个整体就是“静止不动” iOS11.4
    BOOL allowsResting 指定接收器是否可以设置为静止 iOS11.4
    SCNVector3 velocity 指定接收器的线速度 iOS11.4
    SCNVector4 angularVelocity 将接收器的角速度指定为轴角度 iOS11.4
    CGFloat damping 指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1 iOS11.4
    CGFloat angularDamping 指定接收器的角度阻尼。可选择降低每帧的车身角速度以模拟旋转摩擦。 (0.0 - 1.0)。默认为0.1 iOS11.4
    NSUInteger categoryBitMask 定义这个主体所属的逻辑“类别”。静态实体默认为SCNPhysicsCollisionCategoryStatic,其他实体类型默认为SCNPhysicsCollisionCategoryDe​​fault。限制在macOS 10.10和iOS 8上的前15位 iOS11.4
    NSUInteger collisionBitMask 定义这个身体响应碰撞的物体的逻辑“类别”。默认为所有设置的位(所有类别) iOS11.4
    NSUInteger contactTestBitMask 一个掩码,用于定义哪些类别的实体与此物理实体进行交叉通知。默认为0。在iOS 8和macOS 10.10及更低版本上,发生碰撞时始终会发送交叉点通知 iOS9.0 iOS11.4
    BOOL affectedByGravity 如果设置为YES,则此节点将受到重力的影响。默认值为YES iOS9.0 iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)applyForce:(SCNVector3)direction impulse:(BOOL)impulse 在指定方向上施加线性力。线性力施加在接收器的质心上。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力 iOS11.4
    - (void)applyForce:(SCNVector3)direction atPosition:(SCNVector3)position impulse:(BOOL)impulse 使用指定位置和方向的线性力。该位置相对于拥有物理主体的节点 iOS11.4
    - (void)applyTorque:(SCNVector4)torque impulse:(BOOL)impulse 施加角力(扭矩)。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力。扭矩指定为轴角 iOS11.4
    - (void)clearAllForces 清除接收器上施加的力 iOS11.4
    - (void)resetTransform 将物理变换重置为节点的模型变换 iOS11.4

    文件SCNPhysicsField.h

    #import <SceneKit/SCNPhysicsField.h>

    内容简介

    SCNPhysicsFieldScope 指定物理场的影响域 MacOS10.10

    属 性 说 明 备 注 SDK版本
    SCNPhysicsFieldScopeInsideExtent iOS11.4
    SCNPhysicsFieldScopeOutsideExtent iOS11.4

    SCNPhysicsField SCNPhysicsField是一个抽象类,描述了在物理世界中应用的力场 MacOS10.10

    控制行为属性

    属 性 说 明 备 注 SDK版本
    CGFloat strength 力场的强度因子。默认为1.0 iOS11.4
    CGFloat falloffExponent 根据距离场中心的距离(1 /距离^衰减指数)改变力的力量。默认为0.0。 iOS11.4
    CGFloat minimumDistance 与效果达到最大强度的场地中心的距离。默认为1e-6 iOS11.4
    BOOL active 指定强制字段是否处于活动状态。默认为YES iOS11.4
    BOOL exclusive 如果是,则抑制其区域中的任何其他字段。默认为NO iOS11.4

    控制效果属性

    属 性 说 明 备 注 SDK版本
    SCNVector3 halfExtent 指定效果区域的半范围。默认为FLT_MAX iOS11.4
    BOOL usesEllipsoidalExtent YES表示效果区域在范围内四舍五入。默认为NO iOS11.4
    SCNPhysicsFieldScope scope 控制力场是应该应用于区域内部还是外部。默认为内部 iOS11.4
    SCNVector3 offset 该区域内的原点效应偏移 iOS11.4
    SCNVector3 direction 场的方向。仅适用于线性重力和涡旋场。默认为(0,-1,0) iOS11.4
    NSUInteger categoryBitMask 确定将受接收器影响的节点physicsBody的类别。默认为所有位设置 MacOS10.10 iOS11.4
    方 法 说 明 备 注 SDK版本
    + (SCNPhysicsField *)dragField 使对象按比例减慢对象的速度。用它来模拟诸如空气中运动的摩擦等效果 iOS11.4
    + (SCNPhysicsField *)vortexField 应用与从采样点到场的位置的方向相切的力。这股力量将向CCW方向发展。使强度为负以在CW方向上施加力。数量与中心距离和物体质量成正比。用它来创建龙卷风等效果 iOS11.4
    + (SCNPhysicsField *)radialGravityField 在局部空间中沿场的原点方向施加力。要击退物体,请使用负强度。力与场原点的距离成比例。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 iOS11.4
    + (SCNPhysicsField *)linearGravityField 在局部空间中的“方向”向量的方向上施加力。要击退物体,请使用负强度。在该领域的任何地方都有相同的力量。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 iOS11.4
    + (SCNPhysicsField *)noiseFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed 时变微分Perlin单纯噪声场。平滑度为0表示尽可能嘈杂。用它来模拟萤火虫或雪等效果。要冻结噪声,请将animationSpeed设置为0.0。质量被忽略了。您可以使用KVC更改“smoothness”和“animationSpeed” iOS11.4
    + (SCNPhysicsField *)turbulenceFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed 就像噪音一样,除了噪音的强度与场中物体的速度成正比 iOS11.4
    + (SCNPhysicsField *)springField 胡克定律力 - 与距离场中心的距离成线性比例的力。这个中的一个对象场将以与质量的倒数成比例的周期振荡。一个示例用途是将对象限制在特定区域 iOS11.4
    + (SCNPhysicsField *)electricField 与物体上的电荷成比例的力。此字段的示例用法是使对象行为不同。当他们进入一个地区时,彼此之间的关系或使一个物体的行为与其基于群众的行为不同该场模拟了洛伦兹方程的第一部分, F = qE iOS11.4
    + (SCNPhysicsField *)magneticField 与物体上的电荷和物体速度成比例的力。此字段的一个示例用法是在对象进入区域时使对象行为彼此不同,或使对象的行为与其基于质量的行为不同。该场模拟了洛伦兹方程的第二部分, F = qvB iOS11.4
    typedef SCNVector3 (^SCNFieldForceEvaluator)(SCNVector3 position, SCNVector3 velocity, float mass, float charge, NSTimeInterval time) iOS11.4
    + (SCNPhysicsField *)customFieldWithEvaluationBlock:(SCNFieldForceEvaluator)block 具有自定义力评估器的场力 iOS11.4

    文件SCNPhysicsShape.h

    #import <SceneKit/SCNPhysicsShape.h>

    内容简介

    常 量 说 明 备 注 SDK版本
    SCNPhysicsShapeTypeKey 物理形状的类型。默认值为SCNPhysicsShapeTypeConvexHull。请参阅下面的形状类型列表 MacOS10.10 iOS11.4
    SCNPhysicsShapeKeepAsCompoundKey 一个布尔值决定是否一个层级被保持为一个形状的复合物或扁平化为一个单一的体积。默认值是true MacOS10.10 iOS11.4
    SCNPhysicsShapeScaleKey 物理形状的局部缩放(作为包含在NSValue中的SCNVector3) MacOS10.10 iOS11.4
    SCNPhysicsShapeOptionCollisionMargin 物理形状的碰撞边缘(作为NSNumber) iOS10.0 iOS11.4
    #define SCNPhysicsShapeOptionType           SCNPhysicsShapeTypeKey
    #define SCNPhysicsShapeOptionKeepAsCompound SCNPhysicsShapeKeepAsCompoundKey
    #define SCNPhysicsShapeOptionScale          SCNPhysicsShapeScaleKey

    SCNPhysicsShapeOptionType值

    常 量 说 明 备 注 SDK版本
    SCNPhysicsShapeTypeBoundingBox MacOS10.10 iOS11.4
    SCNPhysicsShapeTypeConvexHull MacOS10.10 iOS11.4
    SCNPhysicsShapeTypeConcavePolyhedron MacOS10.10 iOS11.4

    SCNPhysicsShape 表示物理体的形状 MacOS10.10

    方 法 说 明 备 注 SDK版本
    + (instancetype)shapeWithGeometry:(SCNGeometry *)geometry options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options 基于几何创建物理形状的实例。请参阅上面的可能选项 iOS11.4
    + (instancetype)shapeWithNode:(SCNNode *)node options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options 基于节点层次创建物理形状的实例。层次结构必须在某些点包含几何以创建有效形状。请参阅上面的可能选项 iOS11.4
    + (instancetype)shapeWithShapes:(NSArray<SCNPhysicsShape *> *)shapes transforms:(nullable NSArray<NSValue *> *)transforms 基于与变换关联的多个子形状创建物理形状的实例。转换将作为NSValue包装SCNMatrix4的数组传递 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSDictionary<SCNPhysicsShapeOption, id> *options 返回初始时请求的选项 iOS9.0 iOS11.4
    id sourceObject 返回从中创建此物理形状的对象。它可以是SCNGeometry ,SCNNode 或子形状的NSArray * iOS9.0 iOS11.4
    NSArray<NSValue *> *transforms 如果物理形状是从子形状数组创建的,则变换包含关联的变换,如SCNMatrix4包裹在NSValue中 iOS9.0 iOS11.4

    文件SCNPhysicsWorld.h

    #import <SceneKit/SCNPhysicsWorld.h>

    内容简介

    SCNPhysicsTestOption值 射线,接触和扫描测试的关键

    属 性 说 明 备 注 SDK版本
    SCNPhysicsTestCollisionBitMaskKey 允许过滤由rayTest,contactTest和convexSweep测试的对象。默认为SCNPhysicsCollisionCategoryAll MacOS10.10 iOS11.4
    SCNPhysicsTestSearchModeKey 指定如何执行光线/接触/扫描测试。值定义如下。如果未定义,则默认为SCNPhysicsTestSearchModeAny MacOS10.10 iOS11.4
    SCNPhysicsTestBackfaceCullingKey 指定是否应忽略背面。默认为YES MacOS10.10 iOS11.4
    #define SCNPhysicsTestOptionCollisionBitMask SCNPhysicsTestCollisionBitMaskKey
    #define SCNPhysicsTestOptionSearchMode       SCNPhysicsTestSearchModeKey
    #define SCNPhysicsTestOptionBackfaceCulling  SCNPhysicsTestBackfaceCullingKey

    SCNPhysicsTestSearchModeKey值

    属 性 说 明 备 注 SDK版本
    SCNPhysicsTestSearchModeAny 返回找到的第一个联系人 MacOS10.10 iOS11.4
    SCNPhysicsTestSearchModeClosest 返回仅找到的最近的联系人 MacOS10.10 iOS11.4
    SCNPhysicsTestSearchModeAll 返回所有联系人 MacOS10.10 iOS11.4

    SCNPhysicsContactDelegate协议

    方 法 说 明 备 注 SDK版本
    - (void)physicsWorld:(SCNPhysicsWorld *)world didBeginContact:(SCNPhysicsContact *)contact iOS11.4
    - (void)physicsWorld:(SCNPhysicsWorld *)world didUpdateContact:(SCNPhysicsContact *)contact iOS11.4
    - (void)physicsWorld:(SCNPhysicsWorld *)world didEndContact:(SCNPhysicsContact *)contact iOS11.4

    SCNPhysicsWorld SCNPhysicsWorld类描述并允许控制3d场景的物理模拟

    方 法 说 明 备 注 SDK版本
    SCNVector3 gravity 全局3D矢量,指定由于重力引起的场力加速度。单位是米/秒。默认值为{0,-9.8,0} iOS11.4
    CGFloat speed 速度倍增器应用于物理模拟。默认值为1.0。可以降低速度以减慢模拟速度,但要注意增加速度因子会降低模拟的准确性 iOS11.4
    NSTimeInterval timeStep 物理模拟的时间步骤。默认值为1/60秒(60赫兹) iOS11.4
    id <SCNPhysicsContactDelegate> contactDelegate 当两个物理实体相互接触时调用的代表 iOS11.4

    行为管理

    方 法 说 明 备 注 SDK版本
    - (void)addBehavior:(SCNPhysicsBehavior *)behavior iOS11.4
    - (void)removeBehavior:(SCNPhysicsBehavior *)behavior iOS11.4
    - (void)removeAllBehaviors iOS11.4
    属 性 说 明 备 注 SDK版本
    NSArray<SCNPhysicsBehavior *> *allBehaviors iOS11.4

    对物理实体及其物理形状执行射线测试

    - (NSArray<SCNHitTestResult *> *)rayTestWithSegmentFromPoint:(SCNVector3)origin toPoint:(SCNVector3)dest options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;

    执行接触测试

    - (NSArray<SCNPhysicsContact *> *)contactTestBetweenBody:(SCNPhysicsBody *)bodyA andBody:(SCNPhysicsBody *)bodyB options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
    - (NSArray<SCNPhysicsContact *> *)contactTestWithBody:(SCNPhysicsBody *)body options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
    - (NSArray<SCNPhysicsContact *> *)convexSweepTestWithShape:(SCNPhysicsShape *)shape fromTransform:(SCNMatrix4)from toTransform:(SCNMatrix4)to options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;

    强制物理引擎重新评估碰撞。如果在下一个模拟步骤之前移动了运动并且需要联系人,则需要调用此方法

    - (void)updateCollisionPairs;

    文件SCNPhysicsContact.h

    #import <SceneKit/SCNPhysicsContact.h>

    SCNPhysicsContact MacOS10.10

    SCNPhysicsContact包含有关物理接触的信息

    接触的两个节点

    属 性 说 明 备 注 SDK版本
    SCNNode *nodeA iOS11.4
    SCNNode *nodeB iOS11.4

    世界空间坐标中的接触点,脉冲和距离

    属 性 说 明 备 注 SDK版本
    SCNVector3 contactPoint iOS11.4
    SCNVector3 contactNormal iOS11.4
    CGFloat collisionImpulse 节点A上的碰撞冲动 iOS11.4
    CGFloat penetrationDistance iOS11.4
    CGFloat sweepTestFraction 在0和1之间的值给出了在执行凸起扫描测试时物理形状的相对位置 iOS11.0 iOS11.4

    文件SCNPhysicsBehavior.h

    #import <SceneKit/SCNPhysicsBehavior.h>

    SCNPhysicsBehavior MacOS10.10

    SCNPhysicsBehavior是一个抽象类,表示物理世界中的行为

    SCNPhysicsHingeJoint:SCNPhysicsBehavior MacOS10.10

    SCNPhysicsHingeJoint使两个物体像通过铰链连接一样移动。例如适用于门,链……

    方 法 说 明 备 注 SDK版本
    + (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB 初始化并返回物理铰链接头。铰链分别将主体A和主体连接在锚和锚上。 “axis”和“axisB”指定bodyA和bodyB的旋转轴。 iOS11.4
    + (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor 初始化并返回物理铰链接头。铰链将主体附加到由“锚点”指定的3d空间中的特定位置,并相对于拥有主体的节点。 “axis”指定“body”的旋转轴。 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNPhysicsBody *bodyA 第一个被铰链约束的身体 iOS11.4
    SCNVector3 axisA bodyA的旋转轴 iOS11.4
    SCNVector3 anchorA 身体所附着的锚点 iOS11.4
    SCNPhysicsBody *bodyB 第二个身体连接到铰链 iOS11.4
    SCNVector3 axisB bodyB的旋转轴 iOS11.4
    SCNVector3 anchorB bodyB附着的锚点 iOS11.4

    SCNPhysicsBallSocketJoint:SCNPhysicsBehavior MacOS10.10

    SCNPhysicsBallSocketJoint使两个物体像通过球窝关节连接一样移动(即它允许围绕所有轴旋转)

    方 法 说 明 备 注 SDK版本
    + (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB anchorB:(SCNVector3)anchorB 初始化并返回物理球窝关节。关节分别在bodyA和anchorB上附加bodyA和bodyB iOS11.4
    + (instancetype)jointWithBody:(SCNPhysicsBody *)body anchor:(SCNVector3)anchor 初始化并返回物理球窝关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNPhysicsBody *bodyA 第一个身体连接到球窝关节 iOS11.4
    SCNVector3 anchorA bodyA的附着点 iOS11.4
    SCNPhysicsBody *bodyB 第二个身体连接到球窝关节 iOS11.4
    SCNVector3 anchorB bodyB的附着点 iOS11.4

    SCNPhysicsSliderJoint:SCNPhysicsBehavior MacOS10.10

    SCNPhysicsSliderJoint在两个物体之间提供线性滑动关节

    方 法 说 明 备 注 SDK版本
    + (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB 初始化并返回物理滑块关节。关节分别将bodyA和body连接在锚和锚上 iOS11.4
    + (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor 初始化并返回物理滑块关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNPhysicsBody *bodyA 第一个主体连接到滑块接头 iOS11.4
    SCNVector3 axisA bodyA可以滑动的轴 iOS11.4
    SCNVector3 anchorA 身体的附着点A iOS11.4
    SCNPhysicsBody *bodyB 第二个主体连接到滑块接头 iOS11.4
    SCNVector3 axisB bodyB可以滑动的轴 iOS11.4
    SCNVector3 anchorB bodyB的附着点 iOS11.4

    以弧度表示的最小和最大线性/角度限制

    属 性 说 明 备 注 SDK版本
    CGFloat minimumLinearLimit iOS11.4
    CGFloat maximumLinearLimit iOS11.4
    CGFloat minimumAngularLimit iOS11.4
    CGFloat maximumAngularLimit iOS11.4

    牛顿线性和角度电机

    属 性 说 明 备 注 SDK版本
    CGFloat motorTargetLinearVelocity iOS11.4
    CGFloat motorMaximumForce iOS11.4
    CGFloat motorTargetAngularVelocity iOS11.4
    CGFloat motorMaximumTorque iOS11.4

    SCNPhysicsConeTwistJoint:SCNPhysicsBehavior MacOS10.10

    SCNPhysicsConeTwistJoint

    方 法 说 明 备 注 SDK版本
    + (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA frameA:(SCNMatrix4)frameA bodyB:(SCNPhysicsBody *)bodyB frameB:(SCNMatrix4)frameB 初始化并返回物理锥 - 扭曲关节。关节分别将bodyA和body连接在框架和框架上。 iOS11.4
    + (instancetype)jointWithBody:(SCNPhysicsBody *)body frame:(SCNMatrix4)frame 初始化并返回物理锥形扭曲关节。关节将“body”附加到“frame”指定的3d位置,并相对于拥有该body的节点 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNPhysicsBody *bodyA 第一个主体连接到滑块接头 iOS11.4
    SCNMatrix4 frameA iOS11.4
    SCNPhysicsBody *bodyB 第二个主体连接到滑块接头 iOS11.4
    SCNMatrix4 frameB iOS11.4

    每个锥形切线方向的弧度的最大角度限制

    属 性 说 明 备 注 SDK版本
    CGFloat maximumAngularLimit1 iOS11.4
    CGFloat maximumAngularLimit2 iOS11.4

    沿锥轴的最大扭转角

    属 性 说 明 备 注 SDK版本
    CGFloat maximumTwistAngle iOS11.4

    SCNPhysicsVehicleWheel:NSObject MacOS10.10

    SCNPhysicsVehicleWheel表示可以附加到SCNPhysicsVehicle实例的滚轮

    方 法 说 明 备 注 SDK版本
    + (instancetype)wheelWithNode:(SCNNode *)node 初始化并返回一个轮子 iOS11.4
    属 性 说 明 备 注 SDK版本
    SCNNode *node 接收器的节点 iOS11.4
    CGFloat suspensionStiffness 车轮悬架刚度。默认为2.0 iOS11.4
    CGFloat suspensionCompression 车轮悬架压缩。默认为4.4 iOS11.4
    CGFloat suspensionDamping 车轮悬架减震。默认为2.3 iOS11.4
    CGFloat maximumSuspensionTravel 车轮最大悬架行程以厘米为单位。默认为500 iOS11.4
    CGFloat frictionSlip 车轮摩擦滑动系数。默认为1 iOS11.4
    CGFloat maximumSuspensionForce 车轮最大悬挂力以牛顿为单位。默认为6000 iOS11.4
    SCNVector3 connectionPosition 车轮连接点相对于底盘。默认为节点位置 iOS11.4
    SCNVector3 steeringAxis 车轮底盘中的车轮转向轴。默认为(0,-1,0) iOS11.4
    SCNVector3 axle 车轮底盘中的轮轴。默认为(-1,0,0) iOS11.4
    CGFloat radius 车轮半径。默认为节点边界框​​的最大维度的一半 iOS11.4
    CGFloat suspensionRestLength 车轮悬架休息长度。默认为1.6 iOS11.4

    SCNPhysicsVehicle:SCNPhysicsBehavior MacOS10.10

    方 法 说 明 备 注 SDK版本
    + (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray<SCNPhysicsVehicleWheel *> *)wheels iOS11.4
    - (void)applyEngineForce:(CGFloat)value forWheelAtIndex:(NSInteger)index 在指定索引处对车轮施加力 iOS11.4
    - (void)setSteeringAngle:(CGFloat)value forWheelAtIndex:(NSInteger)index 允许控制指定索引处车轮的方向。转向值以弧度表示,0表示直线前进 iOS11.4
    - (void)applyBrakingForce:(CGFloat)value forWheelAtIndex:(NSInteger)index 在指定的索引处对车轮施加制动力 iOS11.4
    属 性 说 明 备 注 SDK版本
    CGFloat speedInKilometersPerHour 以每小时公里数表示的实际速度 iOS11.4
    NSArray<SCNPhysicsVehicleWheel *> *wheels 车轮 iOS11.4
    SCNPhysicsBody *chassisBody 车辆的底盘 iOS11.4

    文件SCNTechnique.h

    SCNTechnique : NSObject

    SCNTechniqueSupport协议

    属 性 说 明 备 注 SDK版本
    SCNTechnique *technique 指定接收器的技术。默认为零 iOS11.4

    文件SCNReferenceNode.h

    #import <SceneKit/SCNReferenceNode.h>

    SCNReferenceLoadingPolicy iOS9.0

    控制何时加载参考节点

    常 量 说 明 备 注 SDK版本
    SCNReferenceLoadingPolicyImmediate iOS11.4
    SCNReferenceLoadingPolicyOnDemand iOS11.4

    SCNReferenceNode:SCNNode iOS9.0

    引用外部文件的节点

    方 法 说 明 备 注 SDK版本
    - (nullable instancetype)initWithURL:(NSURL *)referenceURL 使用url创建引用节点 iOS11.4
    - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder 通过NSKeyedArchiver支持编码和解码 iOS11.4
    + (nullable instancetype)referenceNodeWithURL:(NSURL *)referenceURL 使用url创建引用节点 iOS11.4
    - (void)load 如果尚未加载引用,则强制加载引用。将添加已解析的节点作为接收器的子节点 iOS11.4
    - (void)unload 删除子节点并标记为已卸载 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSURL *referenceURL 指定要解析的网址 iOS11.4
    SCNReferenceLoadingPolicy loadingPolicy 指定何时加载引用。请参阅上面的SCNReferenceLoadingPolicy。默认为SCNReferenceLoadingPolicyImmediately iOS11.4
    BOOL loaded 指示是否已加载引用的URL iOS11.4

    文件SCNAudioSource.h

    SCNAudioSource : NSObject <NSCopying, NSSecureCoding> iOS9.0+

    SCNAudioSource类表示可以添加到SCNNode的音频源 (add by ak 注意声音文件一定是单声道的才有效。)

    方 法 说 明 备 注 SDK版本
    - (nullable instancetype)initWithFileNamed:(NSString *)name 方便初始化程序,它从主程序包中的指定音频资产创建AVAudioNode iOS11.4
    - (nullable instancetype)initWithURL:(NSURL *)url 便利初始化程序,它从包含音频资产的URL创建AVAudioNode iOS11.4
    + (nullable instancetype)audioSourceNamed:(NSString *)fileName 方便类初始化程序缓存audioSources iOS11.4
    - (void)load 在内存中加载和解压缩音频源。如果“shouldStream”设置为YES或者音频源已加载,则此方法无效 iOS11.4
    属 性 说 明 备 注 SDK版本
    BOOL positional 将音频源标记为位置,以便音频混合考虑相对于SCNSceneRenderer的当前侦听器节点的相对位置和速度。默认为YES iOS11.4
    float volume 此音频缓冲区的默认音量。默认值为1.0(完整音量) iOS11.4
    float rate 此音频缓冲区的默认速率。默认值为1.0(音频源的原始速率) iOS11.4
    float reverbBlend 此音频缓冲区的默认reverbBlend。默认值为0.0(没有声音发送到混响) iOS11.4
    BOOL loops 指定音频源是否应循环。默认为NO iOS11.4
    BOOL shouldStream 指定是否应该流式传输音频源。默认为NO iOS11.4

    SCNAudioPlayer : NSObject iOS9.0

    方 法 说 明 备 注 SDK版本
    - (instancetype)init iOS11.4
    - (instancetype)initWithSource:(SCNAudioSource *)source 使用源启动音频播放器。大多数人应该使用audioPlayerWithSource,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 iOS11.4
    - (instancetype)initWithAVAudioNode:(AVAudioNode *)audioNode 使用AVAudioNode初始化音频播放器。大多数人应该使用audioPlayerWithAVAudioNode,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 iOS11.4
    + (instancetype)audioPlayerWithSource:(SCNAudioSource *)source 使用源创建音频播放器 iOS11.4
    + (instancetype)audioPlayerWithAVAudioNode:(AVAudioNode *)audioNode 使用自定义AVAudioNode实例创建音频播放器 iOS11.4
    属 性 说 明 备 注 SDK版本
    void (^willStartPlayback)(void) 如果存在有效的音频源,则在播放开始时调用此块 iOS11.4
    void (^didFinishPlayback)(void) 如果存在有效的音频源,则在播放停止时调用此块 iOS11.4
    AVAudioNode *audioNode audioNode。如果此播放器未使用自定义AVAudioNode进行初始化,则它包含内部场景工具包使用的内部音频播放器节点 iOS11.4
    SCNAudioSource *audioSource audioSource如果有的话 iOS11.4

    SCNNode (SCNAudioSupport)

    方 法 说 明 备 注 SDK版本
    - (void)addAudioPlayer:(SCNAudioPlayer *)player 将音频播放器添加到节点并立即开始播放 iOS9.0 iOS11.4
    - (void)removeAllAudioPlayers 从此节点中删除所有音频播放器并停止播放 iOS9.0 iOS11.4
    - (void)removeAudioPlayer:(SCNAudioPlayer *)player 从此节点中删除给定的音频播放器并停止播放 iOS9.0 iOS11.4
    属 性 说 明 备 注 SDK版本
    NSArray<SCNAudioPlayer *> *audioPlayers 获取一个阵列,连接所有音频播放器并在此节点上播放 iOS9.0 iOS11.4

    文件SCNHitTest.h

    #import <SceneKit/SCNHitTest.h>

    SCNHitTestSearchMode iOS11.0

    点击测试模式

    常 量 说 明 备 注 SDK版本
    SCNHitTestSearchModeClosest 找到最近的对象 iOS11.4
    SCNHitTestSearchModeAll 所有找到的对象从最近到最远排序 iOS11.4
    SCNHitTestSearchModeAny 找到第一个对象。这个对象不一定是最近的 iOS11.4

    SCNHitTestOption

    常 量 说 明 备 注 SDK版本
    SCNHitTestClipToZRangeKey 如果设置为YES,则忽略当前视点的zNear / zFar范围剪切的对象。默认为YES iOS11.4
    SCNHitTestBackFaceCullingKey 如果设置为YES,则忽略不面向相机的脸部。默认为YES iOS11.4
    SCNHitTestBoundingBoxOnlyKey 如果设置为YES,则仅测试3D对象的边界框。默认为NO iOS11.4
    SCNHitTestIgnoreChildNodesKey 确定是否忽略子节点。默认为NO iOS11.4
    SCNHitTestRootNodeKey 指定用于命中测试的根节点。默认为场景的根节点 iOS11.4
    SCNHitTestIgnoreHiddenNodesKey 确定是否应忽略隐藏节点。默认为YES MacOS10.9 iOS11.4
    SCNHitTestOptionCategoryBitMask 确定要测试的节点类别。默认为所有设置的位 iOS10.0 iOS11.4
    SCNHitTestOptionSearchMode 确定搜索是否应该是详尽无遗的。默认为SCNHitTestSearchModeClosest iOS11.0 iOS11.4
    SCNHitTestFirstFoundOnlyKey 已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAny iOS11.4
    SCNHitTestSortResultsKey 已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAll iOS11.4
    #define SCNHitTestOptionFirstFoundOnly    SCNHitTestFirstFoundOnlyKey
    #define SCNHitTestOptionSortResults       SCNHitTestSortResultsKey
    #define SCNHitTestOptionClipToZRange      SCNHitTestClipToZRangeKey
    #define SCNHitTestOptionBackFaceCulling   SCNHitTestBackFaceCullingKey
    #define SCNHitTestOptionBoundingBoxOnly   SCNHitTestBoundingBoxOnlyKey
    #define SCNHitTestOptionIgnoreChildNodes  SCNHitTestIgnoreChildNodesKey
    #define SCNHitTestOptionRootNode          SCNHitTestRootNodeKey
    #define SCNHitTestOptionIgnoreHiddenNodes SCNHitTestIgnoreHiddenNodesKey

    SCNHitTestResult : NSObject

    命中测试方法返回的结果

    属 性 说 明 备 注 SDK版本
    SCNNode *node 节点命中 iOS11.4
    NSInteger geometryIndex 命中几何体的索引 iOS11.4
    NSInteger faceIndex 命中面部的索引 iOS11.4
    SCNVector3 localCoordinates 节点局部坐标系中的交点 iOS11.4
    SCNVector3 worldCoordinates 世界坐标系中的交点 iOS11.4
    SCNVector3 localNormal 节点局部坐标系中的交点法线 iOS11.4
    SCNVector3 worldNormal 世界坐标系中的交点法线 iOS11.4
    SCNMatrix4 modelTransform 交点的世界变换 iOS11.4
    SCNNode *boneNode 骨节点命中。仅在节点命中附加了SCNSkinner时才可用 iOS10.0 iOS11.4
    属 性 说 明 备 注 SDK版本
    - (CGPoint)textureCoordinatesWithMappingChannel:(NSInteger)channel 对于给定的映射通道,返回交叉点处的纹理坐标 iOS11.4

    文件SCNCameraController.h

    SCNInteractionMode iOS11.0

    指定相机的相对行为屏幕空间交互

    常 量 说 明 备 注 SDK版本
    SCNInteractionModeFly 相对于向上矢量 iOS11.4
    SCNInteractionModeOrbitTurntable 从角度累积以绝对方向围绕目标旋转。向上没有考虑向量 iOS11.4
    SCNInteractionModeOrbitAngleMapping 通过将2D屏幕坐标映射到球面坐标来围绕目标旋转 iOS11.4
    SCNInteractionModeOrbitCenteredArcball iOS11.4
    SCNInteractionModeOrbitArcball 通过将2D屏幕坐标映射到半球来围绕目标旋转 iOS11.4
    SCNInteractionModePan X/Y上的相机空间转换 iOS11.4
    SCNInteractionModeTruck X/Z上的相机空间转换 iOS11.4

    SCNCameraControllerDelegate协议 iOS11.0

    方 法 说 明 备 注 SDK版本
    - (void)cameraInertiaWillStartForController:(SCNCameraController *)cameraController 可选 iOS11.4
    - (void)cameraInertiaDidEndForController:(SCNCameraController *)cameraController 可选 iOS11.4

    SCNCameraController : NSObject iOS11.0

    属 性 说 明 备 注 SDK版本
    id <SCNCameraControllerDelegate> delegate iOS11.4
    SCNNode *pointOfView iOS11.4
    SCNInteractionMode interactionMode iOS11.4
    SCNVector3 target 轨道旋转的世界空间中的摄像机目标 iOS11.4
    BOOL automaticTarget 在beginInteraction中自动更新目标。默认为NO iOS11.4
    SCNVector3 worldUp 世界空间中的向上矢量用作SCNInteractionModeFly和SCNInteractionModeOrbitTurntable相机模式的参考。默认为UnitY(0,1,0) iOS11.4
    BOOL inertiaEnabled 设置为YES以在endInteraction上启用惯性。默认为NO iOS11.4
    float inertiaFriction 摩擦系数适用于惯性。默认为0.05 iOS11.4
    BOOL inertiaRunning 如果惯性正在运行,则返回YES iOS11.4

    Fly模式和Turntable的最小和最大垂直视角度

    属 性 说 明 备 注 SDK版本
    float minimumVerticalAngle iOS11.4
    float maximumVerticalAngle iOS11.4

    Fly模式和Turntable的最小和最大水平视角度

    属 性 说 明 备 注 SDK版本
    float minimumHorizontalAngle iOS11.4
    float maximumHorizontalAngle iOS11.4
    方 法 说 明 备 注 SDK版本
    - (void)translateInCameraSpaceByX:(float)deltaX Y:(float)deltaY Z:(float)deltaX 沿着局部X / Y / Z轴平移相机 iOS11.4
    - (void)frameNodes:(NSArray<SCNNode *> *)nodes 将摄像机移动到所有节点的边界球体完全可见的位置。还设置相机目标具有边界球体的中心 iOS11.4
    - (void)rotateByX:(float)deltaX Y:(float)deltaY 旋转三角形是度 iOS11.4
    - (void)rollBy:(float)delta aroundScreenPoint:(CGPoint)point viewport:(CGSize)viewport 围绕给定的屏幕空间点旋转相机。Delta是 iOS11.4
    - (void)dollyBy:(float)delta onScreenPoint:(CGPoint)point viewport:(CGSize)viewport 通过屏幕空间点沿轴移动相机进行缩放。 iOS11.4
    - (void)rollAroundTarget:(float)delta 通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 iOS11.4
    - (void)dollyToTarget:(float)delta 通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 iOS11.4
    - (void)clearRoll 如果有的话清除相机胶卷 iOS11.4
    - (void)stopInertia 停止当前的惯性 iOS11.4

    使用相对于视口的输入位置开始/继续/结束交互。行为取决于当前的interactionMode。

    方 法 说 明 备 注 SDK版本
    - (void)beginInteraction:(CGPoint)location withViewport:(CGSize)viewport iOS11.4
    - (void)continueInteraction:(CGPoint)location withViewport:(CGSize)viewport sensitivity:(CGFloat)sensitivity iOS11.4
    - (void)endInteraction:(CGPoint)location withViewport:(CGSize)viewport velocity:(CGPoint)velocity iOS11.4

    文件SCNJavascript.h

    将SceneKit的符号(常量和类定义)导出到指定的JavaScript上下文中

    方 法 说 明 备 注 SDK版本
    void SCNExportJavaScriptModule(JSContext *context) iOS11.4
    展开全文
  • ARKit中文文档

    千次阅读 2018-08-02 17:03:39
    ARAnchor.h ARAnchor : NSObject &... API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) 表示3D空间中物理位置和方向的对象 属 性 属性 属性 备注 SDK版本 NSUUID ...

    作者:
    声明:转发本文,请联系作者授权

    ARAnchor.h

    ARAnchor : NSObject <NSCopying, NSSecureCoding> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    表示3D空间中物理位置和方向的对象

    • 属 性
    属性 属性 备注 SDK版本
    NSUUID *identifier 锚的唯一标识符 iOS11.4
    matrix_float4x4 transform 转换矩阵,用于定义锚点在世界坐标中的旋转,平移和缩放 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)initWithTransform:(matrix_float4x4)transform 初始化一个新的锚点对象 iOS11.4
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    * ARTrackable协 议

    正在跟踪的场景中的真实世界对象或位置

    • 属 性

    属性 属性 备注 SDK版本
    BOOL isTracked 跟踪锚的状态 isTracked值用于确定锚变换的有效性。当不再检测到被跟踪的对象时相机图像,其锚点将返回NO为isTracked iOS11.4

    ARCamera.h

    ARAnchor : NSObject <NSCopying, NSSecureCoding> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    • ARTrackingState API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    描述摄像机跟踪状态的值

    • 属 性
    属性 说明 备注 SDK版本
    ARTrackingStateNotAvailable 跟踪不可用 iOS11.4
    ARTrackingStateLimited 跟踪是有限的。请参阅跟踪原因了解详情 iOS11.4
    ARTrackingStateNormal 跟踪是正常的 iOS11.4

    * ARTrackingStateReason

    描述相机跟踪状态受限的原因

    • 属 性
    属性 说明 备注 SDK版本
    ARTrackingStateReasonNone 跟踪不受限制 iOS11.4
    ARTrackingStateReasonInitializing 由于正在进行初始化,跟踪受到限制 iOS11.4
    ARTrackingStateReasonExcessiveMotion 由于相机的过度运动,跟踪受到限制 iOS11.4
    ARTrackingStateReasonInsufficientFeatures 由于缺少相机可见的功能,因此跟踪受到限制 iOS11.4
    ARTrackingStateReasonRelocalizing 由于进行重新定位,跟踪受到限制 iOS11.4

    ARCamera : NSObject <NSCopying> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    表示相机及其参数的模型

    • 属 性
    属性 说明 备注 SDK版本
    matrix_float4x4 transform 转换矩阵,用于定义摄像机在世界坐标中的旋转和平移 iOS11.4
    vector_float3 eulerAngles 相机的方向定义为欧拉角 此向量中的组件顺序与旋转轴匹配:1.间距(x分量)是绕节点x轴的旋转(以弧度表示)2.偏航(y分量)是绕节点y轴的旋转(以弧度表示)3.滚动(z分量)是绕节点的z轴旋转(以弧度表示)ARKit以与组件相反的顺序应用这些旋转:1.roll 2.yaw 3.pitch iOS11.4
    ARTrackingState trackingState 相机的跟踪状态 iOS11.4
    ARTrackingStateReason 摄像机当前跟踪状态的原因 iOS11.4
    matrix_float3x3 intrinsics 相机内在的 矩阵具有以下内容:fx 0 px0 fy py 0 0 1 fx和fy是以像素为单位的焦距。px和py是主要点的坐标,以像素为单位。原点位于左上角像素的中心。 iOS11.4
    CGSize imageResolution 相机图像分辨率,以像素为单位 iOS11.4
    matrix_float4x4 projectionMatrix 相机的投影矩阵 投影矩阵假设没有远剪裁平面限制 iOS11.4
    - (CGPoint)projectPoint:(vector_float3)point orientation:(UIInterfaceOrientation)orientation viewportSize:(CGSize)viewportSize 将世界坐标系中的3D点投影到2D视口空间 iOS11.4
    - (matrix_float4x4)projectionMatrixForOrientation:(UIInterfaceOrientation)orientation viewportSize:(CGSize)viewportSize zNear:(CGFloat)zNear zFar:(CGFloat)zFar 在给定渲染参数的情况下为相机创建投影矩阵 iOS11.4
    - (matrix_float4x4)viewMatrixForOrientation:(UIInterfaceOrientation)orientation 给定界面方向,为摄像机创建视图矩阵 视图矩阵可用于将几何图形转换为给定方向的相机空间 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init iOS11.4
    + (instancetype)new iOS11.4

    ARConfiguration.h

    • ARWorldAlignment API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    枚举常量用于指示世界对齐

    • 枚 举
    常量 说明 备注 SDK版本
    ARWorldAlignmentGravity 将世界与由矢量(0,-1,0)定义的重力对齐 iOS11.4
    ARWorldAlignmentGravityAndHeading 将世界与由向量(0,-1,0)定义的重力对齐和向量(w.r.t. True North)由向量(0,0,-1)给出 iOS11.4
    ARWorldAlignmentCamera 将世界与相机的方向对齐 iOS11.4

    ARPlaneDetection API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    指示要检测的平面类型

    • 枚 举
    常量 说明 备注 SDK版本
    ARPlaneDetectionNone 没有运行平面检测 iOS11.4
    ARPlaneDetectionHorizontal 平面检测确定场景中的水平平面 iOS11.4
    ARPlaneDetectionVertical 平面检测确定场景中的垂直平面 iOS11.4

    ARConfiguration : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    • 属 性
    属性 说明 备注 SDK版本
    BOOL isSupported 确定此设备是否支持ARConfiguration iOS11.4
    NSArray<ARVideoFormat *> *supportedVideoFormats 此配置和设备支持的视频格式列表 列表中的第一个元素是会话输出的默认格式API_AVAILABLE(ios(11.3)) iOS11.4
    ARVideoFormat *videoFormat 会话输出的视频格式 API_AVAILABLE(ios(11.3)) iOS11.4
    ARWorldAlignment worldAlignment 确定坐标系应如何与世界对齐 默认为ARWorldAlignmentGravity iOS11.4
    BOOL lightEstimationEnabled 启用或禁用光估计 默认情况下启用 iOS11.4
    BOOL providesAudioData 确定是否捕获和提供音频数据 默认情况下禁用 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init iOS11.4
    + (instancetype)new iOS11.4

    ARWorldTrackingConfiguration : ARConfiguration API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    • 属 性
    属性 说明 备注 SDK版本
    BOOL autoFocusEnabled 启用或禁用连续自动对焦 默认情况下启用 iOS11.4
    ARPlaneDetection planeDetection 要在场景中检测的平面类型 如果设置,将继续检测新平面并随时更新。检测到的飞机将被添加到会话中。 如果设置,将继续检测新平面并随时更新。检测到的飞机将被添加到会话中。ARPlaneAnchor对象。如果合并了两个平面,则将删除较新的平面。默认为ARPlaneDetectionNone
    NSSet<ARReferenceImage *> *detectionImages 要在场景中检测的图 如果设置会话将尝试检测指定的图像。检测到图像时,会将ARImageAnchor添加到会话中 iOS11.3

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init iOS11.4
    + (instancetype)new NS_SWIFT_UNAVAILABLE(“Use init() instead”) iOS11.4

    AROrientationTrackingConfiguration : ARConfiguration API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    用于运行方向跟踪的配置

    • 属 性
    属性 说明 备注 SDK版本
    BOOL autoFocusEnabled 启用或禁用连续自动对焦 默认情况下启用 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init API_AVAILABLE(ios(11.3)) iOS11.4
    + (instancetype)new iOS11.4

    ARFaceTrackingConfiguration : ARConfiguration API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    • 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init API_AVAILABLE(ios(11.3)) iOS11.4
    + (instancetype)new NS_SWIFT_UNAVAILABLE(“Use init() instead”) iOS11.4

    ARError.h

    ARErrorCode

    • 属 性

    属性 说明 备注 SDK版本
    ARErrorCodeUnsupportedConfiguration 不支持的配置 iOS11.4
    ARErrorCodeSensorUnavailable 无法运行会话所需的传感器 iOS11.4
    ARErrorCodeSensorFailed 传感器无法提供所需的输入 iOS11.4
    ARErrorCodeCameraUnauthorized 应用程序无权使用相机。用户可以在设置中更改此设置 iOS11.4
    ARErrorCodeWorldTrackingFailed 世界跟踪遇到致命错误 iOS11.4
    ARErrorCodeInvalidReferenceImage 参考图像无效 API_AVAILABLE(ios(11.3)) iOS11.4

    ARFaceAnchor.h

    ARBlendShapeLocation

    混合面几何的形状位置,每个位置定义了可以用提供的系数移位的面部区域

    • 属 性
    属性 说明 备注 SDK版本
    ARBlendShapeLocationBrowDownLeft 眉毛下垂向左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationBrowDownRight 眉毛下垂向右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationBrowInnerUp 眉间向内 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationBrowOuterUpLeft 眉毛外向左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationBrowOuterUpRight 眉毛外向右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationCheekPuff 脸颊膨胀 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationCheekSquintLeft 向左斜视 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationCheekSquintRight 向右斜视 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeBlinkLeft 眨左眼 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeBlinkRight 眨右眼 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookDownLeft 眼睛看左下 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookDownRight 眼睛看右下 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookInLeft 眼睛看左内 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookInRight 眼睛看右内 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookOutLeft 眼睛看左外 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookOutRight 眼睛看右外 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookUpLeft 眼睛看左上 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeLookUpRight 眼睛看右上 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeSquintLeft 眼睛斜视左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeSquintRight 眼睛斜视右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeWideLeft 左眼大 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationEyeWideRight 右眼大 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationJawForward 下巴向前 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationJawLeft 下巴向左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationJawOpen 下巴开 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationJawRight 下巴向右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthClose 闭嘴 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthDimpleLeft 嘴巴留下了左酒窝 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthDimpleRight 嘴巴留下了右酒窝 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthFrownLeft 嘴皱眉左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthFrownRight 嘴皱眉右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthFunnel 口漏斗 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthLeft 嘴巴左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthLowerDownLeft 嘴低下左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthLowerDownRight 嘴低下右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthPressLeft 嘴按左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthPressRight 嘴按右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthPucker 嘴里褶皱 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthRight 嘴巴右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthRollLower 嘴卷降低 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthRollUpper 嘴巴上卷 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthShrugLower 嘴向下 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthShrugUpper 嘴向上 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthSmileLeft 微笑向左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthSmileRight 微笑向右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthStretchLeft 口伸展左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthStretchRight 口伸展右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthUpperUpLeft 嘴上部左上 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationMouthUpperUpRight 嘴上部右上 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationNoseSneerLeft 鼻子冷笑左 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARBlendShapeLocationNoseSneerRight 鼻子冷笑右 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4

    ARFaceAnchor : ARAnchor <ARTrackable> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    表示面部及其几何形状的锚点

    • 属 性
    属性 说明 备注 SDK版本
    ARFaceGeometry *geometry 基于计算的混合形状更新面几何 iOS11.4
    NSDictionary<ARBlendShapeLocation, NSNumber*> *blendShapes 每个混合形状位置的混合形状系数的字典 混合形状系数定义了面部特定位置的中性形状的位移量 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
      (instancetype)initWithTransform:(matrix_float4x4)transform
    NS_UNAVAILABLE iOS11.4

    ARFaceGeometry.h

    ARFaceGeometry : NSObject<NSSecureCoding, NSCopying> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    表示面部几何的对象,面几何将具有恒定数量的三角形和顶点,只更新帧到帧的顶点位置

    • 属 性
    属性 说明 备注 SDK版本
    NSUInteger vertexCount 几何体的网格顶点数 NS_REFINED_FOR_SWIFT iOS11.4
    const vector_float3 *vertices 几何的网格顶点 NS_REFINED_FOR_SWIFT iOS11.4
    NSUInteger textureCoordinateCount 面几何的纹理坐标数 iOS11.4
    const vector_float2 *textureCoordinates 面几何的纹理坐标数 NS_REFINED_FOR_SWIFT iOS11.4
    NSUInteger triangleCount 面几何的三角形数 iOS11.4
    const int16_t *triangleIndices 几何的三角形索引 NS_REFINED_FOR_SWIFT iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (nullable instancetype)initWithBlendShapes:(NSDictionary<ARBlendShapeLocation, NSNumber*> *)blendShapes 通过应用一组给定的混合形状系数来创建并返回面几何 iOS11.4
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARSCNFaceGeometry : SCNGeometry

    表示面部的SceneKit几何体

    • 方 法

    方法 说明 备注 SDK版本
    + (nullable instancetype)faceGeometryWithDevice:(id<MTLDevice>)device 使用Metal设备创建新的面几何 iOS11.4
    + (nullable instancetype)faceGeometryWithDevice:(id<MTLDevice>)device fillMesh:(BOOL)fillMesh 使用Metal设备创建新的面几何 iOS11.4
    - (void)updateFromFaceGeometry:(ARFaceGeometry *)faceGeometry 使用面几何的顶点更新几何 iOS11.4
    - (instancetype)init iOS11.4
    + (instancetype)new iOS11.4

    ARFrame.h

    ARFrame : NSObject <NSCopying>

    • 属 性
    属性 说明 备注 SDK版本
    NSTimeInterval timestamp 标识帧的时间戳 iOS11.4
    CVPixelBufferRef capturedImage 帧的捕获图像 iOS11.4
    AVDepthData *capturedDepthData 帧的捕获深度数据 深度数据仅在捕获深度数据的帧上提供面部跟踪 iOS11.4
    NSTimeInterval capturedDepthDataTimestamp 场景中的锚点列表 iOS11.4
    ARCamera *camera 相机提供设备的位置和方向以及相机参数 iOS11.4
    NSArray<ARAnchor *> *anchor 场景中的锚点列表 iOS11.4
    ARLightEstimate *lightEstimate 表示场景中光线的光估计 如果没有光估计,则返回niliOS11.4
    ARPointCloud *rawFeaturePoints 场景中的特征点与帧的原点有关 特征点仅适用于使用世界跟踪的配置(add by ak 根据这些特征点坐标可自定义调试点的显示) iOS11.4
    • 方 法

    方法 说明 备注 SDK版本
    - (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types 在帧中搜索与捕获图像中的点对应的对象 捕获图像的坐标空间中的2D点可以指沿线段的任何点。在3D坐标空间中。命中测试是在该线段中找到世界中的对象的过程 iOS11.4
    - (CGAffineTransform)displayTransformForOrientation:(UIInterfaceOrientation)orientation viewportSize:(CGSize)viewportSize 返回提供的视口大小和方向的显示变换 显示变换可用于转换图像空间坐标系中的归一化点。捕获图像到视图坐标空间中的标准化点。变换提供正确的旋转和方面填充,用于以给定的方向和大小呈现捕获的图像 iOS11.4
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARHitTestResult.h

    ARHitTestResultType API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    命中测试结果类型的选项集

    • 枚 举
    常量 说明 备注 SDK版本
    ARHitTestResultTypeFeaturePoint 与最近的特征点相交的结果类型 iOS11.4
    ARHitTestResultTypeEstimatedHorizontalPlane 结果类型来自与当前帧确定的水平平面估计相交 iOS11.4
    ARHitTestResultTypeEstimatedVerticalPlane 结果类型来自与当前帧确定的垂直平面估计相交 API_AVAILABLE(ios(11.3)) iOS11.4
    ARHitTestResultTypeExistingPlane 结果类型与现有平面锚点相交 iOS11.4
    ARHitTestResultTypeExistingPlaneUsingGeometry 结果类型与现有平面锚点相交,同时考虑平面的几何图形 iOS11.4

    ARHitTestResult : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    在命中测试期间发现交叉点的结果

    • 属 性

    属性 说明 备注 SDK版本
    ARHitTestResultType type 命中测试结果的类型 iOS11.4
    CGFloat distance 从相机到交叉点的距离(以米为单位) iOS11.4
    matrix_float4x4 localTransform 用于定义交点的旋转,平移和比例的变换矩阵。相对于锚点或最近的特征点 iOS11.4
    matrix_float4x4 worldTransform 用于定义交点的旋转,平移和比例的变换矩阵。相对于世界 iOS11.4
    ARAnchor *anchor 击中测试相交的锚点 仅为现有的平面结果类型提供锚点 iOS11.4
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARImageAnchor.h

    ARImageAnchor : ARAnchor API_AVAILABLE(ios(11.3)) API_UNAVAILABLE(macos, watchos, tvos)

    代表世界图像的锚

    • 属 性
    属性 说明 备注 SDK版本
    ARReferenceImage *referenceImage 参考检测到的图像 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)initWithTransform:(matrix_float4x4)transform NS_UNAVAILABLE iOS11.4

    ARLightEstimate.h

    ARLightEstimate : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    表示场景中光线的光估计

    • 属 性
    属性 说明 备注 SDK版本
    CGFloat ambientIntensity 照明的环境强度 在光线充足的环境中,此值接近1000.通常范围从0(非常暗)到2000左右(非常明亮) iOS11.4
    CGFloat ambientColorTemperature 照明的环境色温 这指定了以开尔文为单位的照明的环境色温(6500对应于纯白色) iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARDirectionalLightEstimate : ARLightEstimate API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    定向光估计,表示场景中的光强度和方向

    • 属 性

    属性 说明 备注 SDK版本
    NSData *sphericalHarmonicsCoefficients 表示光强度的二度球谐函数系数 该数据是27个32位浮点值的数组,包含三个非交错数据集,对应的红色,绿色和蓝色系数集 iOS11.4
    vector_float3 primaryLightDirection 光的主要方向 iOS11.4
    CGFloat primaryLightIntensity 主要方向的光强度 iOS11.4

    ARPlaneAnchor.h

    ARPlaneAnchorAlignment API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    描述平面锚点对齐的值

    • 枚 举
    常量 说明 备注 SDK版本
    ARPlaneAnchorAlignmentHorizontal 相对于重力水平的平面 iOS11.4
    ARPlaneAnchorAlignmentVertical 垂直于重力的平面 API_AVAILABLE(ios(11.3)) iOS11.4

    ARPlaneAnchor : ARAnchor API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    代表世界平面的锚(平面在X和Z方向上定义,其中Y是表面的法线)

    • 属 性
    属性 说明 备注 SDK版本
    ARPlaneAnchorAlignment alignment 平面的对齐 iOS11.4
    vector_float3 center 锚点坐标空间中平面的中心 iOS11.4
    vector_float3 extent 锚点坐标空间中平面的范围 iOS11.4
    ARPlaneGeometry *geometry 锚点坐标空间中平面的几何 API_AVAILABLE(ios(11.3)) iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)initWithTransform:(matrix_float4x4)transform NS_UNAVAILABLE iOS11.4

    ARPlaneGeometry : NSObject<NSSecureCoding> API_AVAILABLE(ios(11.3))

    表示平面几何的对象(平面几何体将具有越来越多的三角形,和顶点从一帧到另一帧更新)

    • 属 性
    属性 说明 备注 SDK版本
    NSUInteger vertexCount 几何体的网格顶点数 只读 iOS11.4
    const vector_float3 *vertices 几何体的网格顶点 只读 iOS11.4
    NSUInteger textureCoordinateCount 几何体的纹理坐标数 只读 iOS11.4
    const vector_float2 *textureCoordinates 几何体的纹理坐标 只读 iOS11.4
    NSUInteger triangleCount 几何体的三角形数量 只读 iOS11.4
    const int16_t *triangleIndices 几何体的三角形索引 只读 iOS11.4
    NSUInteger boundaryVertexCount 几何体的边界顶点数 只读 iOS11.4
    const vector_float3 *boundaryVertices 几何体最外边界的顶点 只读 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARSCNPlaneGeometry : SCNGeometry API_AVAILABLE(ios(11.3))

    • 方 法

    方法 说明 备注 SDK版本
    + (nullable instancetype)planeGeometryWithDevice:(id<MTLDevice>)device 使用Metal设备创建新的平面几何体 iOS11.4
    - (void)updateFromPlaneGeometry:(ARPlaneGeometry *)planeGeometry 使用平面几何体的顶点更新几何体 iOS11.4

    ARPointCloud.h

    ARPointCloud : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    • 属 性
    属性 说明 备注 SDK版本
    NSUInteger count 点云中的点数 iOS11.4
    const vector_float3 *points 包含点云的3D点 iOS11.4
    const uint64_t *identifiers 包括点云的3D点标识符 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARReferenceImage.h

    ARReferenceImage : NSObject<NSCopying> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    要在场景中检测的参考图像

    • 属 性
    属性 说明 备注 SDK版本
    NSString *name 用于标识图像的可选名称 iOS11.4
    CGSize physicalSize 图像的物理尺寸,以米为单位 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)initWithCGImage:(CGImageRef)image orientation:(CGImagePropertyOrientation)orientation physicalWidth:(CGFloat)physicalWidth 创建新的参考图像 iOS11.4
    - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer orientation:(CGImagePropertyOrientation)orientation physicalWidth:(CGFloat)physicalWidth 创建新的参考图像 iOS11.4
    + (nullable NSSet<ARReferenceImage *> *)referenceImagesInGroupNamed:(NSString *)name bundle:(nullable NSBundle *)bundle 返回指定资源组和包中的ARReferenceImages集 iOS11.4
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4

    ARSCNView.h

    ARSCNView : SCNView API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    将ARSession渲染集成到SceneKit中的视图(视图绘制相机背景,提供和更新相机,管理锚点的节点,并更新照明。)

    • 属 性
    属性 说明 备注 SDK版本
    id<ARSCNViewDelegate> delegate 指定渲染器代理 iOS11.4
    ARSession *session 视图用于更新场景的会话 iOS11.4
    SCNScene *scene 指定视图的场景 iOS11.4
    BOOL automaticallyUpdatesLighting 确定视图是否将更新场景的光照 设置后,视图将自动为其创建和更新照明。光估计会话提供。默认为YES

    * 方 法

    方法 说明 备注 SDK版本
    - (nullable ARAnchor *)anchorForNode:(SCNNode *)node 在场景层次结构中搜索与提供的节点关联的锚点 iOS11.4
    - (nullable SCNNode *)nodeForAnchor:(ARAnchor *)anchor 返回已映射到特定锚点的节点 iOS11.4
    - (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types 在当前帧中搜索与视图中的点对应的对象。视图坐标空间中的2D点可以指沿线段的任何点。在3D坐标空间中。命中测试是在该线段中找到世界中的对象的过程 iOS11.4

    * 协 议

    ARSCNViewDelegate <SCNSceneRendererDelegate, ARSessionObserver>代理

    • 方 法
    方法 说明 备注 SDK版本
    - (nullable SCNNode *)renderer:(id <SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor 实现此目的以为给定锚提供自定义节点 此节点将自动添加到场景图中。如果未实现此方法,将自动创建节点。如果返回nil,则将忽略锚点 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 在将新节点映射到给定锚点时调用 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 在使用给定锚点的数据更新节点时调用 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 使用给定锚点的数据更新节点时调用 iOS11.4
    - (void)renderer:(id <SCNSceneRenderer>)renderer didRemoveNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 从已从给定锚点的场景图中删除映射节点时调用 iOS11.4

    ARSCNDebugOptions API_AVAILABLE(ios(11.0))

    ARSCNView扩展调试选项

    • 常 量

    常量 说明 备注 SDK版本
    ARSCNDebugOptionShowWorldOrigin 在场景中展示世界起源 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4
    ARSCNDebugOptionShowFeaturePoints 在世界中显示检测到的3D要素点 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos) iOS11.4

    ARSession.h

    ARSessionRunOptions API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    运行会话的选项集(这些选项会改变在会话上调用run的行为。不提供选项将导致恢复跟踪的默认行为。从最后的已知位置并保留所有现有的锚点)

    • 常 量
    常量 说明 备注 SDK版本
    ARSessionRunOptionResetTracking 会话将重置跟踪 iOS11.4
    ARSessionRunOptionRemoveExistingAnchors 会议将删除现有的锚点 iOS11.4

    ARSession : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    ARSession类在设备上配置和运行不同的增强现实技术

    • 属 性
    属性 说明 备注 SDK版本
    id <ARSessionDelegate> delegate 接收ARSession更新的代表 iOS11.4
    dispatch_queue_t delegateQueue 执行委托调用的调度队列(如果未提供或为nil,则将在主队列上执行委托调用) iOS11.4
    ARFrame *currentFrame 会话的当前帧 iOS11.4
    ARConfiguration *configuration 会话当前使用的配置 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (void)runWithConfiguration:(ARConfiguration *)configuration 使用提供的配置运行会话(在已经启动的会话上调用run立即转换为使用新配置) iOS11.4
    - (void)runWithConfiguration:(ARConfiguration *)configuration options:(ARSessionRunOptions)options 使用提供的配置和选项运行会话(在已经启动的会话上调用run立即转换为使用新配置。选项可用于在转换配置时更改默认行为) iOS11.4
    - (void)pause 暂停会话(暂停后,将不再收到更新的更新会话直到再次调用run) iOS11.4
    - (void)addAnchor:(ARAnchor *)anchor 向会话添加锚点(锚将添加到下一帧更新中) iOS11.4
    - (void)removeAnchor:(ARAnchor *)anchor 从会话中删除锚点 锚将从后续帧更新中删除 iOS11.4
    - (void)setWorldOrigin:(matrix_float4x4)relativeTransform NS_SWIFT_NAME(setWorldOrigin(relativeTransform:)) 将会话的世界原点设置为位置和方向由提供的转换指定 API_AVAILABLE(ios(11.3)) iOS11.4

    * 协 议

    ARSessionObserver <NSObject> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    方法 说明 备注 SDK版本
    - (void)session:(ARSession *)session didFailWithError:(NSError *)error 会话失败时调用此方法(如果失败,会话将暂停) iOS11.4
    - (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera 当摄像机的跟踪状态发生变化时,会调用此方法 iOS11.4
    - (void)sessionWasInterrupted:(ARSession *)session 会话中断时调用此方法 会话将被中断,不再能够跟踪何时,它无法接收所需的传感器数据。当视频捕获中断时会发生这种情况,例如,当应用程序发送到后台或有时多个前台应用程序(请参阅AVCaptureSessionInterruptionReason)。在中断结束之前,不会提供额外的帧更新。 iOS11.4
    - (void)sessionInterruptionEnded:(ARSession *)session 会话中断结束时调用此方法 会话将从上次已知状态继续运行一次中断已经结束。如果设备已移动,则锚将未对齐。为避免这种情况,某些应用程序可能希望重置跟踪(请参阅ARSessionRunOptions)或尝试重新定位(参见- [ARSessionObserver sessionShouldAttemptRelocalization:])。 iOS11.4
    - (BOOL)sessionShouldAttemptRelocalization:(ARSession *)session 在会话从暂停或中断恢复以确定之后调用此方法,会话是否应该尝试重新定位 为了避免未对齐的锚点,应用程序可能希望在之后尝试重定位会话暂停或中断。如果返回YES:会话将开始重新定位并且跟踪状态将切换到有限的原因重定位。如果成功的话,会话的跟踪状态将恢复正常。因为重定位取决于用户的位置,它可以无限期运行。希望放弃重定位的应用可以随时调用ARSessionRunOptionResetTracking运行 iOS11.4
    - (void)session:(ARSession *)session didOutputAudioSampleBuffer:(CMSampleBufferRef)audioSampleBuffer 当会话输出新的音频样本缓冲区时调用此方法 iOS11.4

    ARSessionDelegate <ARSessionObserver> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    方法 说明 备注 SDK版本
    - (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame 更新新帧时调用此方法 iOS11.4
    - (void)session:(ARSession *)session didAddAnchors:(NSArray<ARAnchor*>*)anchors 将新锚添加到会话时调用此方法 iOS11.4
    - (void)session:(ARSession *)session didUpdateAnchors:(NSArray<ARAnchor*>*)anchors 将新锚添加到会话时调用此方法 iOS11.4
    - (void)session:(ARSession *)session didRemoveAnchors:(NSArray<ARAnchor*>*)anchors 从会话中删除锚点时调用此方法 iOS11.4

    ARSKView.h

    • 协议

    ARSKViewDelegate <SKViewDelegate, ARSessionObserver> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    方法 说明 备注 SDK版本
    - (nullable SKNode *)view:(ARSKView *)view nodeForAnchor:(ARAnchor *)anchor 实现此目的以为给定锚提供自定义节点 此节点将自动添加到场景图中。如果未实现此方法,将自动创建节点。如果返回nil,则将忽略锚点。 iOS11.4
    - (void)view:(ARSKView *)view didAddNode:(SKNode *)node forAnchor:(ARAnchor *)anchor 在将新节点映射到给定锚点时调用 iOS11.4
    - (void)view:(ARSKView *)view willUpdateNode:(SKNode *)node forAnchor:(ARAnchor *)anchor 在使用给定锚点的数据更新节点时调用 iOS11.4
    - (void)view:(ARSKView *)view didUpdateNode:(SKNode *)node forAnchor:(ARAnchor *)anchor 使用给定锚点的数据更新节点时调用 iOS11.4
    - (void)view:(ARSKView *)view didRemoveNode:(SKNode *)node forAnchor:(ARAnchor *)anchor 从已从给定锚点的场景图中删除映射节点时调用 iOS11.4

    ARSKView : SKView API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

    将ARSession渲染集成到SpriteKit中的视图(视图绘制相机背景,并将锚点投影到地图并映射到节点)

    属性 说明 备注 SDK版本
    NSObject <ARSKViewDelegate> *delegate 指定视图的委托 iOS11.4
    ARSession *session 视图用于更新视图的会话 iOS11.4

    属性 说明 备注 SDK版本
    - (nullable ARAnchor *)anchorForNode:(SKNode *)node 将ARSession渲染集成到SpriteKit中的视图 iOS11.4
    - (nullable SKNode *)nodeForAnchor:(ARAnchor *)anchor 返回已映射到特定锚点的节点 iOS11.4
    - (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types 在当前帧中搜索与视图中的点对应的对象 视图坐标空间中的2D点可以指沿线段的任何点。在3D坐标空间中。命中测试是在该线段中找到世界中的对象的过程 iOS11.4

    ARVideoFormat : NSObject <NSCopying> API_AVAILABLE(ios(11.3))

    • 属性
    属性 说明 备注 SDK版本
    CGSize imageResolution 图像分辨率 iOS11.4
    NSInteger framesPerSecond 帧率 iOS11.4

    * 方 法

    方法 说明 备注 SDK版本
    - (instancetype)init NS_UNAVAILABLE iOS11.4
    + (instancetype)new NS_UNAVAILABLE iOS11.4
    展开全文
  • Xcode 11.4 beta 带来了很多很棒的功能! Swift 5.2,SwiftUI增加更加突出的错误提示。 Swift 5.2,带来了一批语法糖。方向就是减少代码数量。 Simulator 支持远程推送通知 UI debugger with layers Apple Watch的...
        

    快速阅读

    文章有些长,如果您比较忙可以快速浏览下面的简单清单

    Xcode 11.4 beta 带来了很多很棒的功能!

    • Swift 5.2,SwiftUI增加更加突出的错误提示。

    • Swift 5.2,带来了一批语法糖。方向就是减少代码数量。

    • Simulator 支持远程推送通知

    • UI debugger with layers

    • Apple Watch的应用内购买

    • macOS App 将可以和iOS捆绑销售

    • Simulator 支持拖拽SSL证书
    • Simulator 截屏保存在模拟器的相机照片中

    macOS App 将可以和iOS捆绑销售

    • Xcode 11.4支持以通用购买的方式构建和分发macOS应用。要将macOS应用作为通用购买进行分发,请在创建新项目时在Xcode模板助手中指定与iOS应用相同的捆绑包标识符。如果您有现有项目,请在“项目编辑器”中编辑其包标识符。

    • 默认情况下,在Xcode 11.4中创建的新Mac Catalyst应用程序启用通用购买。创建新的Mac Catalyst应用程序时,它将使用与iOS应用程序相同的捆绑包标识符。

    • Xcode 11.4中的自动签名支持使用自定义包标识符构建Mac Catalyst应用。您可以使用项目编辑器中的“签名和功能”选项卡编辑应用程序的捆绑包标识符。如果选择使用与iOS应用程序不匹配的自定义捆绑包标识符来构建Mac Catalyst应用程序,则将无法以通用购买的形式分发该应用程序。

    解决的问题

    通过选择“文件”>“新建”>“文件”来创建Objective-C类别文件,将不再创建包含AppKit框架导入的文件。 (55977950)(FB7346800)


    Swift Packages

    • 具有5.2版及更高版本工具的Remote Swift软件包不再解析仅在其测试目标中使用的软件包依赖关系,从而提高了性能并减少了依赖版本冲突的可能性。 (56925017)
    • Swift软件包管理器使用一种新的策略来解决软件包依赖性,从而显着提高了错误消息的质量以及复杂软件包图中的性能。 (45371461

    Swift

    • 您可以调用声明诸如函数之类的func callAsFunction方法的类型的值。调用语法是应用func callAsFunction方法的简写。
    struct Adder {
        var base: Int
    
        func callAsFunction(_ x: Int) -> Int {
          return x + base
        }
    }
    
    var adder = Adder(base: 3)
    adder(10) // returns 13, same as adder.callAsFunction(10)
    

    您可以在单个类型上添加多个func callAsFunction方法,并且可以将它们标记为变异。 func callAsFunction可用于引发和重新引发以及尾随闭包。 (59014791)

    • 下标现在可以声明默认参数。
    struct Subscriptable {
        subscript(x: Int, y: Int = 0) {
          ...
        }
    }
    
    let s = Subscriptable()
    print(s[0])
    
    • 类约束的协议扩展(其中扩展协议未施加类约束)现在隐式推断该约束。 (59011997)
    
    protocol Foo {}
    class Bar: Foo {
        var someProperty: Int = 0
    }
    
    // Even though 'Foo' does not impose a class constraint, it is automatically
    // inferred due to the Self: Bar constraint.
    extension Foo where Self: Bar {
        var anotherProperty: Int {
            get { return someProperty }
            // As a result, the setter is now implicitly nonmutating, just like it would
            // be if 'Foo' had a class constraint.
            set { someProperty = newValue }
        }
    }
    
    • 现在,在定义基类的模块外部定义的子类的便捷初始化程序继承具有附加的限制。当这些子类具有带有非公共指定初始化器的基类时,它们将不再从其超类中自动继承便捷初始化器。为了恢复这种自动继承行为,基类必须确保其所有指定的初始化器都是公共的或开放的。 (51249311)

    • 方法覆盖不能再具有通用签名,而通用签名没有由基本方法强加的要求。例如,以下代码会产生错误。 (23626260)(FB5382462)

    protocol P {}
          
    class Base {
        func foo<T>(arg: T) {}
    }
          
    class Derived: Base {
        // generates an error because of the added requirement
        override func foo<T: P>(arg: T) {}
    }
    

    Build系统的新属性

    构建设置具有一个新的评估运算符,即默认值,如果在评估的上下文中评估结果为nil,则可以使用该运算符指定构建设置的默认值。例如:

    $(SETTING:default=something)
    

    如果$(SETTING)为空,则此表达式的计算结果为“something”。默认值本身可以是包含构建设置评估的表达式。 (57402718)

    现在,要使用新的构建系统构建无代码内核扩展,需要将GENERATE_KERNEL_MODULE_INFO_FILE的构建设置设置为NO。 (57247534)


    Debbugging 新属性

    • 视图调试器现在提供布局指南(UILayoutGuide,NSLayoutGuide)及其引用约束。(20387325)

    • View debugging支持使用“编辑器”菜单中的“显示图层”菜单项显示图层。 (15775898)

    • 现在,异常原因作为编辑器注释浮现出来。您可以在“变量视图”中检查Exception对象,并在Debug Navigator中找到原始未捕获异常的回溯(如果有)。 (8045587)

    • 改进了视图调试器中视图轮廓的可见性。 (44861893)(FB5361403)


    设备

    已知问题

    运行iOS 13.0的设备的图标和名称可能无法在“设备和模拟器”窗口中反映正确的OS版本。 (55044395)

    解决办法:重新启动macOS。


    Simulator

    • 现在,拖放SSL证书(CER或PEM文件)会将证书安装到模拟设备的受信任根存储中。 (56225826)

    • 模拟器支持iOS模拟器(13.0及更高版本)的切换外观。在应用程序中,选择“调试”>“切换外观”。在命令行中使用simctl ui子命令,例如设置深色外观(54556446)(FB7093020)

    $ xcrun simctl ui <device> appearance dark
    
    • Simulator现在具有菜单项和键盘快捷键,可在iOS Simulators中调出应用程序切换器。 (54252732)

    • 模拟器现在有一个菜单项,可触发iOS模拟器中的来宾屏幕截图功能。这样会将屏幕截图保存到模拟设备的相机胶卷中。为了清晰起见,现有的屏幕截图功能已重命名为“保存屏幕”,并且默认情况下会继续将设备的帧缓冲区保存到Mac的桌面上。保存屏幕时按住选项可更改默认位置。 (52852628)

    • Simulator具有一个新的UI,可简化与仿真设备的协作。模拟设备窗口具有标准标题栏,带有用于执行常规任务的按钮。应用程序级设置现在在“首选项”窗口中可用。 (57715023、57380865、58013098)


    Instruments

    已知的问题
    在通过网络连接的设备上对应用程序进行性能分析时,Instruments可能会报告该设备不可用,表明它“正在等待Xcode从设备下载符号”。 (59169574)

    解决办法:使用有线连接在设备上或在模拟设备上对应用程序进行配置文件配置。


    Interface Builder

    为 inspector color pickers添加了动态系统灰色。 (55403376)(FB7281404)

    删除了检查器对配置NSTableColumn标头单元格字体以匹配API的支持。您可以通过子类化NSTableHeaderCell并覆盖代码中的font属性来配置标题单元格字体。 (23664679)(FB5630174)

    已知的问题

    Xcode可能会因iOS弹出框而挂在某些故事板上。 (59070586)

    解决方法:使用Shift重新打开Xcode。

    当打开使用弹出式演示文稿的特定nib(UIKit的TestVectorLabelController.storyboard)时,Xcode可能崩溃。 (58421606)

    解决方法:使用Shift重新打开Xcode。

    下载地址

    https://developer.apple.com/download/

    更多SwiftUI教程和代码关注专栏

    QQ:3365059189
    SwiftUI技术交流QQ群:518696470

    展开全文
  • Xcode 11.4 新特性概览

    2020-03-26 00:01:48
    作者丨->来源丨知识小集(zsxjtip)Xcode 11.4 发布,添加了不少新特性,同时也修改了原有的一些 BUG。本文依据官方文档 Xcod...

    作者丨->

    来源丨知识小集(zsxjtip)

    Xcode 11.4 发布,添加了不少新特性,同时也修改了原有的一些 BUG。本文依据官方文档 Xcode 11.4 Release Notes,将其中的新特性提取出来,如果需要了解修复的问题,可直接查看文档。

    Xcode 11.4 包含适用于 iOS 13.4,iPadOS 13.4,tvOS 13.4,watchOS 6.2 和 macOS Catalina 10.15.4 的SDK。Xcode 11.4 版本支持在 iOS 8+,tvOS 9+ 以及 watchOS 2+ 的设备上调试,同时需要运行 macOS Catalina 10.15.2+ 版本的 Mac。

    通用

    • Xcode 11.4 可以构建和分发支持 通用购买 的 macOS 应用。要将 macOS 应用以通用购买形式进行分发,请在创建新项目时在 Xcode 模板助手中指定与 iOS 应用相同的 bundle id。如果您有现有项目,请在“Project Editor”中编辑其 bundle id。

    • 在 Xcode 11.4 中创建的新 Mac Catalyst 应用程序时,默认启用通用购买。创建新的 Mac Catalyst 应用程序时,将使用与 iOS 应用程序相同的 bundle id。

    • Xcode 11.4 中的自动签名支持使用自定义 bundle id 构建 Mac Catalyst 应用。您可以在 Project Editor -> Signing & Capabilities选项卡中编辑应用程序的 bundle id。如果选择使用与 iOS 应用程序不匹配的自定义 bundle id 来构建 Mac Catalyst 应用程序,则将无法以通用购买的形式分发该应用程序。

    Apple Clang 编译器

    • Xcode 11.4 默认打开 -Watimport-in-framework-header 警告。不建议在框架头文件中使用 @import ,因为这样做需要所有导入程序都使用模块。

    要临时消除此警告,请使用:

    #if __has_feature(modules)
    #if __has_warning("-Watimport-in-framework-header")
    #pragma clang diagnostic ignored "-Watimport-in-framework-header"
    #endif
    @import NameOfFramework;
    #endif
    
    

    构建系统

    • 构建设置有一个新的操作符 default,如果构建设置表达式在其上下文中计算为空,则可以使用该运算符指定构建设置的默认值。例如:

    $(SETTING:default=something)
    
    

    如果 $(SETTING) 为空,则此表达式的计算结果为“something”。默认值本身可以是包含构建设置的表达式。(57402718)

    • 现在,要使用新的构建系统构建无代码内核扩展,就需要将 GENERATE_KERNEL_MODULE_INFO_FILE 构建设置设置为 NO。(57247534)

    调试

    • 视图调试器现在提供布局指南(UILayoutGuide,NSLayoutGuide)及其引用约束。

    • 视图调试支持使用“Editor”菜单中的“Show Layers”菜单项显示图层。

    • 现在,异常原因作为编辑器注释出现。您可以在“Variables View”中检查 Exception 对象,并在 Debug Navigator 中找到原始未捕获异常的回溯(如果有)。

    • 现在,您可以将 Terminal 用于标准 I/O,以取代 Xcode 的控制台。在 Scheme Editor 的 Options 标签中选择。

    Interface Builder

    • 为 inspector 颜色选择器添加了动态系统灰色。

    Metal

    • Metal Frame Debugger 现在支持 iOS 和 tvOS 模拟器。

    Organizer

    • Crashes Organizer 显示了通用购买 macOS 应用程序的崩溃日志。

    预览

    • 可以直接在 Xcode Previews 画布中复制,剪切,粘贴,复制和删除视图。

    • 在代码中选择 SwiftUI 预览将在画布中突出显示相应的预览,反之亦然。

    • Xcode Previews 现在支持预览转换到 Mac 的 iPad 应用程序。

    模拟器

    • 拖放 SSL 证书(CER或PEM文件)会将证书安装到模拟设备的受信任根存储中。

    • simctl 支持钥匙串子命令。此命令可以将证书添加到受信任的根存储或钥匙串。它还可以重置钥匙串,删除所有保存的项目。例如,将 my-selfsigned.cer 安装到受信任的根存储中:

    $ xcrun simctl keychain <device> add-root-cert my-selfsigned.cer
    
    

    将证书添加到受信任的根存储中会创建 TLS/SSL 连接来信任该证书。

    • simctl 现在支持修改隐私权限。您可以修改隐私权限以创建已知状态来进行测试。例如,要允许示例应用程序在没有任何提示的情况下访问照片库:

    xcrun simctl privacy <device> grant photos com.example.app
    
    

    要将所有权限重置为默认值,就像以前从未安装过该应用程序一样:

    xcrun simctl privacy <device> reset all com.example.app
    
    

    重置权限后,请测试您的应用程序,以确保您在 Info.plist 中具有正确的使用描述键,并且可以正确地请求和处理不同的授权状态。有关更多信息,请参考 xcrun simctl help privacy 。

    • 模拟器支持 iOS 模拟器(13.0及更高版本)切换外观。在应用程序中,选择 Debug > Toggle Appearance。在命令行中使用 simctl ui 子命令,例如设置深色外观(54556446)(FB7093020):

    $ xcrun simctl ui <device> appearance dark
    
    

    • Simulator 现在有一个菜单项和键盘快捷键,可在 iOS Simulators 中调出应用程序切换器。

    • simctl status_bar 现在允许更改操作符名称。

    • 模拟器现在有一个可在iOS模拟器中触发屏幕截图的菜单项。这样会将屏幕截图保存到模拟设备的相机中。为了清晰起见,现有的屏幕截图功能已重命名为 Save Screen,并且默认情况下会继续将设备的帧缓冲保存到 Mac 桌面。保存屏幕时按住 Option 键可更改默认位置。

    • tvOS 模拟器不再像与 Mac 配对的 Siri Remote 一样捕获 TouchBar。

    • Simulator 支持模拟远程推送通知,包括后台内容获取通知。在模拟器中,将 APNs 文件拖放到目标模拟器上。该文件必须是带有 Apple Push Notification Service 有效负载(包括“aps”键)的 JSON 文件。它还必须包含一个顶级 Simulator Target Bundle,其字符串值必须与目标应用程序的 bundle id 相匹配。

    simctl 也支持发送模拟的推送通知。如果文件包含 Simulator Target Bundle ,则不需要 bundle id,否则,必须将其作为参数提供:

    $ xcrun simctl push <device> com.example.my-app ExamplePush.apns
    
    

    • Simulator 具有一个新的 UI,可简化与模拟设备的协作。模拟设备窗口有标准标题栏,带有用于执行常规任务的按钮。应用程序级设置现在在 Preferences 窗口中可用。

    源码控制

    • 改进了核心源码控制功能的稳定性,并减少了与内存占用量有关的问题。

    • 将“Fetch and Refresh Status”菜单项的功能拆分为两个单独的菜单项,以分离获取和刷新状态。

    Swift Packages

    • 使用 5.2+ 工具的 Remote Swift 软件包不再解析仅在其测试目标中使用的软件包依赖关系,从而提高了性能并减少了依赖版本冲突的可能性。

    • Swift 包管理器使用一种新策略来解决包依赖问题,从而显着提高了错误消息的质量和复杂包依赖中的性能。

    Swift

    • 您可以像调用函数一样调用实现了 callAsFunction 方法的类型。调用语法是应用 func callAsFunction  方法的简写。

    struct Adder {
        var base: Int
    
        func callAsFunction(_ x: Int) -> Int {
          return x + base
        }
    }
    
    var adder = Adder(base: 3)
    adder(10) // returns 13, same as adder.callAsFunction(10)
    
    

    您必须在调用位置包含 func callAsFunction 参数标签。您可以在单个类型上添加多个 func callAsFunction 方法,并且可以将它们标记为 mutating。func callAsFunction 可用与 throws 和 rethrows 以及尾随闭包一起使用。

    • 下标现在可以声明默认参数。

    struct Subscriptable {
        subscript(x: Int, y: Int = 0) {
          ...
        }
    }
    
    let s = Subscriptable()
    print(s[0])
    
    

    • 类约束的协议扩展(其中扩展协议未施加类约束)现在可以隐式推断该约束。

    protocol Foo {}
    class Bar: Foo {
        var someProperty: Int = 0
    }
    
    // Even though 'Foo' does not impose a class constraint, it is automatically
    // inferred due to the Self: Bar constraint.
    extension Foo where Self: Bar {
        var anotherProperty: Int {
            get { return someProperty }
            // As a result, the setter is now implicitly nonmutating, just like it would
            // be if 'Foo' had a class constraint.
            set { someProperty = newValue }
        }
    }
    
    

    • 现在,在定义基类的模块外部定义的子类的便捷初始化构造器有附加的限制。当这些子类继承自带有非公开(non-public)指定初始化器的基类时,它们将不再从其超类中自动继承便捷初始化器。为了恢复这种自动继承行为,基类必须确保其所有指定的初始化器访问限制是 public 或 open。

    • Xcode 和相应的 Command Line Tools 包包含用于 Swift 和 C 语言的 SourceKit-LSP 语言服务器。语言服务器尚处于早期开发阶段,这是尝试它的好时机。SourceKit-LSP 可以与支持语言服务器协议(LSP)的第三方工具一起使用,并且它支持从命令行构建的 Swift 软件包。有关使用 SourceKit-LSP 的信息,请参阅 Getting Started with SourceKit-LSP。

    • Swift 编译器使用一种新策略来产生诊断,从而大大提高错误消息的质量和准确性。有关此新策略的详细信息,请参见 New Diagnostic Architecture Overview 。

    • 如果基类方法没有强制要求,则子类在重写时不能为泛型参数附加约束。例如,以下代码会产生错误。(23626260)(FB5382462)

    protocol P {}
          
    class Base {
        func foo<T>(arg: T) {}
    }
          
    class Derived: Base {
        // generates an error because of the added requirement
        override func foo<T: P>(arg: T) {}
    }
    
    

    测试

    • 要从 xcodebuild 启用测试超时行为,或覆盖测试计划中的相应设置,请传递 -test-timeouts-enabled 选项。要在启用超时后为单个测试配置默认执行时间,请传递 -default-test-execution-time-allowance 选项。要对测试的运行时间强加绝对上限(如果它通过executeTimeAllowance API请求更多时间),请传递 -maximum-test-execution-time-allowance 选项。有关更多信息,请参考 xcodebuild 手册页(man xcodebuild)。

    • 可以通过测试计划中的 Test Timeouts 选项启用测试超时。可以在命令行中通过 xcodebuild 的 -test-timeouts-enabled 选项覆盖此值。

    • XCTAssertEqualWithAccuracy 和 XCTAssnotNotEqualWithAccuracy API 现在支持所有 FloatingPoint 类型。

    • 当构建已转换为使用测试计划且其测试计划已启用代码覆盖率的方案时,Xcode 现在在为“Run”操作和“Test”操作构建时还包括代码覆盖率检测。这与不使用测试计划且启用了代码覆盖率的构建方案的行为相符,并且避免了在运行和测试操作之间交替进行时不必要的重建。

    • UI 测试上下文支持重置受保护资源(例如,联系人,蓝牙或位置)的授权状态。XCUIApplication 多了一个新方法 resetAuthorizationStatus(for:),该方法接受一个 XCUIProtectedResource。这使测试者可以轻松地将应用的授权状态设置为其初始状态,从而提供一种方便的方法来测试其资源的首次启动/首次访问流程。

    • Swift 中用于 XCTest 的 Xcode 的新文件模板在所有测试方法中包含了 throws 关键字。测试方法引发的错误标记为测试失败。

    • 如果您在活动方案/测试计划中为测试目标启用并行测试,并且将 -parallelize-tests-among-destinations 标志与多个目标指定符一起传递给 xcodebuild,则 Xcode 会在目标之间分配 target 的测试类以加快速度测试。

    • 在 macOS 上进行的 UI 测试和记录支持 Fn 键修饰符。

    • 当您为使用测试计划的方案运行 xcodebuild xcodebuild build-for-testing 时,其生成的 .xctestrun 文件现在包含有关每个测试计划的元数据,包括测试计划的名称以及该计划是否是默认计划。

    • 通过引入“Enable Testing Search Paths”构建设置,Xcode 现在对测试支持框架和库提供了更好的支持。对于测试包目标以及在其“Link Binary With Libraries”列表中明确包含 XCTest.framework 的目标,默认情况下此构建设置为启用。现在,此类目标中的源文件可以导入 XCTest,而无需设置任何自定义搜索路径。

    • 对于自定义 XCTestObservation 实现引发异常的情况,XCTest 改进了错误处理和日志记录。

    • 现在,当使用 -xctestrun 标志运行 xcodebuild test-without-build 时,xcodebuild 现在可以验证已构建产品的部署目标和体系结构。与请求的运行目标不兼容的目标将被忽略。

    • XCTest 现在包括 setUp() 和 tearDown() 实例方法的 throwing 变体,从而允许测试在设置或拆卸期间在 Swift 中抛出错误。分别重写 setUpWithError() 或 tearDownWithError() 方法,以取代 setUp() 或 tearDown() 方法。如果 setUpWithError() 引发错误,则不执行测试方法,并且如果该错误是由于调用 XCTSkip* API 引起的,则该测试将标记为已跳过而不是失败。

    • Xcode 现在验证测试包目标的部署目标,并跳过与所选运行目标不兼容的所有测试。某些目标可能需要更改其最低部署目标构建设置,才能继续在较旧的运行目标上运行。

    • Swift 测试方法抛出的错误现在记录了错误的源位置。Xcode 在源代码编辑器中突出显示了这些行,并允许从“Issue Navigator”跳转到这些位置。

    • 现在,通过单击“Test Navigator”中的“+”按钮,Xcode 现在可以在源代码编辑器中打开文件。

    • XCTest 现在支持根据运行时条件动态跳过测试,例如仅在某些设备类型上运行或可访问远程服务器时才执行某些测试。跳过测试时,Xcode在“Test Navigator”和“Test Report”中以不同的方式显示它,并突出显示发生跳过的代码行以及可选的用户描述。有关跳过的测试的信息也包含在 .xcresult 中。

    要跳过测试,请从测试方法或 setUp() 中调用新的 XCTSkip * 函数之一。例如:

    func test_canAuthenticate() throws {
        XCTSkipIf(AuthManager.canAccessServer == false, "Can't access server")
    
        // Perform test…
    }
    
    

    XCTSkipUnless(_:_:file:line:) API类似于 XCTSkipIf(_:_:file:line:)  API,但是如果提供的表达式为 false 而不是 true,则会跳过,同时可以使用 XCTSkip API 无条件跳过。

    • 现在,如果测试超过了配置的持续时间,XCTest 允许各个测试超时。如果通过测试计划选项或 xcodebuild 命令行选项启用了超时,则将为每个测试提供默认的余量,必须在此时间范围内完成测试。超过此时间长度的测试将失败,并且测试过程的转储将附加到测试报告中的相应的测试信息中。如果测试需要额外的时间来运行,则可以通过 XCTestCase 上的 executionTimeAllowance 属性进行请求。有关更多信息,请参考 XCTestCase.h 中的文档。

    近期精彩内容推荐:  

     直播界要哭了!罗永浩进军电商直播

     家裁员我加薪,他凭什么身价1200亿?

     什么?你还在使用fastjson,性能太差了

     2020年抖音用户画像报告

    在看点这里好文分享给更多人↓↓

    展开全文
  • 安装Xcode11.4后,新 Xcode只包含最新版本的 Swift5.2。但通常我们的代码或第三方库还来不及匹配,或者我们想看看新的特性在新旧版本之间的区别,这时候就比较蓝瘦。 苹果给的解决方案是:multiple Swift toolchains...
  • 《Swift权威指南》目录及其源代码下载

    千次阅读 热门讨论 2014-09-15 11:03:31
    源代码
  • 无二次幂限制的纹理(Non-Power-of-Two Textures)  OpenGL仅支持分辨率为2mx2n的纹理。但现在我们可以使用“无二次幂限制”的纹理。  OpenGL only supports textures with 2m x 2n resolution.But "Non-Power...
  • iOS操作系统》编著者莱文。 系统开发者、内核黑客和对苹果感到好奇的人们注意了!本书探讨了MacOSX系统和iOS系统的方方面面,深入讲解了两个系统的架构,讨论了框架手册没有讨论的内容。本书清晰而详细地讨论了...
  • 经过近一年的沉淀和总结,《OpenCV3编程入门》一书终于和大家见面了。最近有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的目录,方便大家更好的了解这本书的内容。其实最近浅墨实在是有些忙,个人...
  • iOS 审核被拒绝问题汇总

    千次阅读 2019-02-02 17:13:02
    iOS 审核被拒绝问题汇总 1. 5.1.1问题 1. 1 问题描述: Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage We noticed that your app requests the user’s consent to access their photos ...
  • iOS应用程序中,可以使用Apple Push Notification Service(APN)合并推送通知。 运行效果 noti02.gif 但是,这并不像听起来那样简单,因为要进行设置有很多事情要做。另外,更糟糕的是,由于Xcode的iOS...
  • cisco learn book index

    千次阅读 2016-05-11 16:23:29
    cisco book
  • WebSocket API总结

    千次阅读 2017-06-09 08:22:46
    WebSocket api详解
  • Linux下ip命令手册

    万次阅读 2009-08-04 13:33:00
    ip命令手册(一)摘要 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig、route等。这个手册将分章节介绍ip命令及其选项。 本文的原文在...
  • 年度新作目录/前言隆重发布

    千次阅读 2011-10-30 14:32:41
    备受业界关注,备受无数读者殷切期待的,我的2012年新作——《Cisco/H3C交换机高级配置与... 目录第一篇 交换机高可用性配置与管理 1第1章 Cisco IOS交换机 集群配置与管理 21.1 Cisco IOS交换机集群基础 31.1.1
  • c++程序设计基础(第五版)(上) 习题与解答

    万次阅读 多人点赞 2019-10-26 12:03:05
    习题与解答 C++程序设计基础(第5版)(上) 习题与解答 第1章练习题 同步练习1.1 一、选择题 1.一个最简单的C++程序,可以只有一个( )。 (A)库函数 (B)自定义函数 (C)main函数 (D)空函数 ...
  • 《Boost程序完全开发指南》

    千次阅读 2016-01-27 20:23:42
    1.3开发环境 由于Boost大量使用了C++高级特性(如模板偏特化、ADL),因此不是所有的编译器都 能够很好地支持Boost。 ...在VC集成环境中使用嵌入工程编译的方式需要定义宏BOOST_ALL_NO_LIB或者 ...
  • Vue.js与React的全面对比

    万次阅读 多人点赞 2017-11-02 18:39:37
    Vue与React的对比Vue.js与React.js从某些反面来说很相似,通过两个框架的学习,有时候对一些用法会有一点思考,为加深学习的思索,特翻阅了两个文档,从以下各方面进行了对比,加深了对这两个框架的认知。...
  • 既《苹果Swift编程语言开发指南》视频教程推出以来,受到大家高度关注,再接再厉推出: 国内第一本Swift开发图书; 配有同步习题、同步视频教程,并全程展现即将上线的iPhone计算器项目; 分层架构设计解决Swift与...
  • 在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低,Xcode中没有匹配的配置文件,我们可以通过这个路径进入配置的存放...
1 2 3 4 5 ... 14
收藏数 267
精华内容 106
关键字:

11.4匹配包 ios