SceneKit中文文档

文件 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) [ m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33 m 34 m 41 m 42 m 43 m 44 ]

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

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

猜你喜欢

转载自blog.csdn.net/philm_ios/article/details/81004596