SceneKit中文文档

  • Post author:
  • Post category:其他


作者:


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

文件 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 矩阵

矩阵详解

























































m


11










m


21










m


31










m


41
















m


12










m


22










m


32










m


42
















m


13










m


23










m


33










m


43
















m


14










m


24










m


34










m


44






























































(1)


















(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的颜色立方体应作为尺寸为256×16的图像提供
iOS10.0
iOS11.4

NSUInteger categoryBitMask
确定从接收器可见的节点类别。默认为所有设置的位
MacOS10.10
iOS11.4

CGFloat focalBlurRadius
确定接收器的焦点半径。动画。 已废弃(使用fStop代替)

iOS8.0-11.0
iOS11.4

double xFov
确定接收器在X轴上的视野(以度为单位)。动画 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)

iOS8.0-11.0
iOS11.4

double yFov
确定Y轴上接收器的视野(以度为单位)。动画 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)

iOS8.0-11.0
iOS11.4

CGFloat aperture
确定接收器的光圈。动画 已废弃(使用-[SCNCamera fStop] instead with fStop = sensorHeight / aperture代替)

iOS8.0-11.0
iOS11.4

CGFloat focalSize
确定接收器的焦点大小。动画 已废弃(使用-focusDistance代替)

iOS8.0-11.0
iOS11.4

CGFloat focalDistance
确定接收器的焦距。动画 已废弃(使用-focusDistance代替)

iOS8.0-11.0
iOS11.4

文件SCNMaterial.h


#import <SceneKit/SCNMaterial.h>

内容简介

SCNLightingModel

属 性 说 明 备 注 SDK版本

SCNLightingModelPhong
产生一个镜面阴影表面,根据Phong BRDF近似,镜面反射被遮蔽 iOS11.4

SCNLightingModelBlinn
使用Blinn BRDF近似产生镜面阴影表面 iOS11.4

SCNLightingModelLambert
产生漫反射阴影表面,没有镜面反射 iOS11.4

SCNLightingModelConstant
产生一个独立于灯光的阴影表面 iOS11.4

SCNLightingModelPhysicallyBased

iOS10.0
iOS11.4

SCNFillMode

属 性 说 明 备 注 SDK版本

SCNFillModeFill

iOS11.0
iOS11.4

SCNFillModeLines

iOS11.0
iOS11.4

SCNCullMode

属 性 说 明 备 注 SDK版本

SCNCullModeBack
iOS11.4

SCNCullModeFront
iOS11.4

*

#define SCNCullBack SCNCullModeBack


*

#define SCNCullFront SCNCullModeFront

SCNTransparencyMode

属 性 说 明 备 注 SDK版本

SCNTransparencyModeAOne
从Alpha通道获取透明度信息。值1.0是不透明的 iOS11.4

SCNTransparencyModeRGBZero
忽略Alpha通道并从红色,绿色和蓝色通道的亮度中 获取透明度信息。值0.0是不透明的 iOS11.4

SCNTransparencyModeSingleLayer
确保正确绘制一层透明度
iOS11.0
iOS11.4

SCNTransparencyModeDualLayer
确保正确排序和绘制两层透明度。当您想要同时看到正面和背面时,这应该用于透明凸面对象,如立方体和球体
iOS11.0
iOS11.4

SCNTransparencyModeDefault
SCNTransparencyModeAOne
iOS11.0
iOS11.4

SCNBlendMode

属 性 说 明 备 注 SDK版本

SCNBlendModeAlpha
通过将源乘以源alpha并将目标乘以1减去源alpha来混合源颜色和目标颜色 iOS11.4

SCNBlendModeAdd
通过添加源颜色和目标颜色来混合它们 iOS11.4

SCNBlendModeSubtract
通过从目标中减去源来混合源颜色和目标颜色 通过将它们相乘来混合源颜色和目标颜色 iOS11.4

SCNBlendModeMultiply
通过将它们相乘来混合源颜色和目标颜色 iOS11.4

SCNBlendModeScreen
通过将一个减去源与目标相乘并添加源来混合源颜色和目标颜色 iOS11.4

SCNBlendModeReplace
用源替换目标(忽略alpha) iOS11.4

SCNBlendModeMax
使用源最大化目标(忽略alpha) iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)material
创建并初始化一个材质实例 iOS11.4
方 法 说 明 备 注 SDK版本

NSString *name
确定接收者的名称 iOS11.4

材质属性

方 法 说 明 备 注 SDK版本

SCNMaterialProperty *diffuse
指定接收者的漫反射属性 iOS11.4

SCNMaterialProperty *ambient
指定接收者的环境属性 iOS11.4

SCNMaterialProperty *specular
指定接收器的镜面属性 iOS11.4

SCNMaterialProperty *emission
发射属性指定材料发射的光量。此发射不会照亮场景中的其他表面 iOS11.4

SCNMaterialProperty *transparent
transparent属性指定材质的透明区域 iOS11.4

SCNMaterialProperty *multiply
multiply属性指定用于将输出片段与其相乘的颜色或图像。计算的片段与乘法值相乘以产生最终片段。此属性可用于阴影贴图,淡出或着色3d对象 iOS11.4

SCNMaterialProperty *normal
normal属性指定曲面方向 iOS11.4

SCNMaterialProperty *displacement

iOS11.0
iOS11.4

SCNMaterialProperty *ambientOcclusion
ambientOcclusion属性指定曲面的环境光遮挡。环境遮挡与环境光相乘,然后将结果添加到照明贡献中。此属性对没有环境光的场景没有视觉影响。设置环境光遮挡贴图时,将忽略环境属性
iOS9.0
iOS11.4

SCNMaterialProperty *selfIllumination
selfIllumination属性指定添加到曲面的光照贡献的纹理或颜色。设置selfIllumination时,将忽略发射属性
iOS9.0
iOS11.4

SCNMaterialProperty *metalness
金属属性指定材料表面的金属化程度。较低的值(较暗的颜色)使材料看起来更像电介质表面。较高的值(较亮的颜色)会使表面看起来更金属。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性
iOS10.0
iOS11.4

SCNMaterialProperty *roughness
粗糙度属性指定表面的表观光滑度。较低的值(较暗的颜色)会使材质看起来有光泽,并具有明确定义的镜面高光。较高的值(较亮的颜色)会使镜面反射高光扩散,并使材料的漫反射特性变得更具逆向反射性。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性
iOS10.0
iOS11.4

CGFloat shininess
指定接收器的光泽度值。默认为1.0。动画 iOS11.4

CGFloat transparency
确定接收器的照明模型。请参阅上面的照明模型列表。默认为SCNLightingModelBlinn
iOS10.0
iOS11.4

BOOL litPerPixel
确定接收器是否按每个像素点亮。默认为YES。动画 iOS11.4

BOOL doubleSided
确定接收器是否为双面。默认为NO。动画 iOS11.4

SCNFillMode fillMode
确定如何光栅化接收器的基元。默认为SCNFillModeFill
iOS11.0
iOS11.4

SCNCullMode cullMode
确定接收器的剔除模式。默认为SCNCullBack。动画 iOS11.4

SCNTransparencyMode transparencyMode
确定接收器的透明度模式。有关透明度模式,请参见上文。默认为SCNTransparencyModeDefault iOS11.4

BOOL locksAmbientWithDiffuse
使ambient属性自动匹配diffuse属性。默认为YES。动画 iOS11.4

BOOL writesToDepthBuffer
确定接收器在渲染时是否写入深度缓冲区。默认为YES iOS11.4

SCNColorMask colorBufferWriteMask
确定接收器在渲染时是否写入颜色缓冲区。默认为SCNColorMaskAll
iOS11.0
iOS11.4

BOOL readsFromDepthBuffer
确定接收器在渲染时是否从深度缓冲区读取。默认为YES
MacOS10.9
iOS11.4

CGFloat fresnelExponent
指定接收者的菲涅耳指数值。默认为0.0。动画
MacOS10.9
iOS11.4

SCNBlendMode blendMode
指定接收器的混合模式。默认为SCNBlendModeAlpha
iOS9.0
iOS11.4

文件SCNMaterialProperty.h


#import <SceneKit/SCNMaterialProperty.h>

内容简介

SCNFilterMode(过滤模式)

属 性 说 明 备 注 SDK版本

SCNFilterModeNone

MacOS10.9
iOS11.4

SCNFilterModeNearest

MacOS10.9
iOS11.4

SCNFilterModeLinear

MacOS10.9
iOS11.4

SCNWrapeMode(包裹模式)

属 性 说 明 备 注 SDK版本

SCNWrapModeClamp

MacOS10.9
iOS11.4

SCNWrapModeRepeat

MacOS10.9
iOS11.4

SCNWrapModeClampToBorder

MacOS10.9
iOS11.4

SCNWrapModeMirror

MacOS10.9
iOS11.4

SCNMaterialProperty(SCNMaterial插槽的内容)

方 法 说 明 备 注 SDK版本

+ (instancetype)materialPropertyWithContents:(id)contents
使用指定的内容创建并初始化属性实例
MacOS10.9
iOS11.4
属 性 说 明 备 注 SDK版本

id contents
指定接收者的内容。这可以是颜色(NSColor,UIColor,CGColorRef),图像(NSImage,UIImage,CGImageRef),图层(CALayer),路径(NSString或NSURL),SpriteKit场景(SKScene),纹理(SKTexture,id) 或GLKTextureInfo),或介于0和1之间的浮动值(NSNumber),用于金属度和粗糙度属性。 iOS 11支持AVCaptureDevice,macOS 10.13,iOS 11和tvOS 11支持AVPlayer。设置为颜色时可动画 iOS11.4

CGFloat intensity
确定接收器的强度。该强度用于以几种方式调节性质。它使漫反射,镜面反射和发射特性变暗,它改变了普通属性的凹凸感过滤属性与白色混合。默认值为1.0。动画
MacOS10.9
iOS11.4

SCNFilterMode minificationFilter
指定呈现内容时使用的过滤器类型(在`contents’属性中指定) iOS11.4

SCNFilterMode magnificationFilter
指定呈现内容时使用的过滤器类型(在`contents’属性中指定) iOS11.4

SCNFilterMode mipFilter
指定在缩小期间使用的mipmap过滤器 iOS11.4

SCNMatrix4 contentsTransform
确定接收者的内容变换。动画 iOS11.4

SCNWrapMode wrapS
确定接收器的s纹理坐标的包裹模式。默认为SCNWrapModeClamp iOS11.4

SCNWrapMode wrapT
确定t纹理坐标的接收器换行模式。默认为SCNWrapModeClamp iOS11.4

id borderColor
确定接收器的边框颜色(CGColorRef或UIColor)。动画 已废弃

iOS8.0-9.0
iOS11.4

NSInteger mappingChannel
确定接收器的映射通道。默认为0 iOS11.4

SCNColorMask textureComponents
指定要在着色器中采样的纹理组件。对于displa属性,默认为SCNColorMaskRed;对于其他属性,默认为SCNColorMaskAll
iOS11.0
iOS11.4

CGFloat maxAnisotropy
指定接收器的最大各向异性。默认为1.0
MacOS10.9
iOS11.4

文件SCNGeometry.h


#import <SceneKit/SCNGeometry.h>

内容简介

SCNGeometryPrimitiveType

属 性 说 明 备 注 SDK版本

SCNGeometryPrimitiveTypeTriangles
iOS11.4

SCNGeometryPrimitiveTypeTriangleStrip
iOS11.4

SCNGeometryPrimitiveTypeLine
iOS11.4

SCNGeometryPrimitiveTypePoint
iOS11.4

SCNGeometryPrimitiveTypePolygon

iOS10.0
iOS11.4

SCNGeometrySourceSemantic

属 性 说 明 备 注 SDK版本

SCNGeometrySourceSemanticVertex
iOS11.4

SCNGeometrySourceSemanticNormal
iOS11.4

SCNGeometrySourceSemanticColor
iOS11.4

SCNGeometrySourceSemanticTexcoord
iOS11.4

SCNGeometrySourceSemanticTangent

iOS10.0
iOS11.4

SCNGeometrySourceSemanticVertexCrease

MacOS10.10
iOS11.4

SCNGeometrySourceSemanticEdgeCrease

MacOS10.10
iOS11.4

SCNGeometrySourceSemanticBoneWeights

MacOS10.10
iOS11.4

SCNGeometrySourceSemanticBoneIndices

MacOS10.10
iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)geometry
创建并返回一个空的几何体对象
MacOS10.9
iOS11.4

- (void)insertMaterial:(SCNMaterial *)material atIndex:(NSUInteger)index
在指定索引处的材质数组中插入材质 iOS11.4

- (void)removeMaterialAtIndex:(NSUInteger)index
从材料数组中删除指定索引处的材质 iOS11.4

- (void)replaceMaterialAtIndex:(NSUInteger)index withMaterial:(SCNMaterial *)material
从接收器的材料阵列中删除索引’index’处的材料,并在其位置插入’material’ iOS11.4

- (nullable SCNMaterial *)materialWithName:(NSString *)name
返回具有指定名称的接收器的材质数组中的第一个材质 iOS11.4

+ (instancetype)geometryWithSources:(NSArray<SCNGeometrySource *> *)sources elements:(nullable NSArray<SCNGeometryElement *> *)elements
创建并返回从几何体源和几何元素构建的新几何体 iOS11.4

- (NSArray<SCNGeometrySource *> *)geometrySourcesForSemantic:(SCNGeometrySourceSemantic)semantic
返回给定语义的几何源 iOS11.4
属 性 说 明 备 注 SDK版本

NSString *name
确定接收器的名称 iOS11.4

NSArray<SCNMaterial *> *materials
指定接收器的材质数组 iOS11.4

SCNMaterial *firstMaterial
确定几何体的第一个材质。如果几何体没有材质,则返回nil iOS11.4

NSArray<SCNGeometrySource *> *geometrySources
接收器的几何源阵列
MacOS10.10
iOS11.4

NSArray<SCNGeometryElement *> *geometryElements
接收器的几何元素数组
MacOS10.10
iOS11.4

NSInteger geometryElementCount
返回几何所拥有的几何元素的数量 iOS11.4

NSArray<SCNLevelOfDetail *> *levelsOfDetail
确定接收器的详细程度。默认为nil
MacOS10.9
iOS11.4

SCNGeometryTessellator *tessellator
指定如何在GPU上的渲染时对几何体进行细分。默认为零
iOS11.0
iOS11.4

NSUInteger subdivisionLevel
指定接收器的细分级别。默认为0
MacOS10.10
iOS11.4

BOOL wantsAdaptiveSubdivision
指定细分是自适应还是统一。默认为YES
iOS11.0
iOS11.4

SCNGeometryElement *edgeCreasesElement
指定控制细分的边缘折痕。默认为零
MacOS10.10
iOS11.4

SCNGeometrySource *edgeCreasesSource
指定edgeCreasesElement指定的边的折痕值。默认为nil
MacOS10.10
iOS11.4

SCNGeometrySource

方 法 说 明 备 注 SDK版本

+ (instancetype)geometrySourceWithData:(NSData *)data semantic:(SCNGeometrySourceSemantic)semantic vectorCount:(NSInteger)vectorCount floatComponents:(BOOL)floatComponents componentsPerVector:(NSInteger)componentsPerVector bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride
根据给定的数据和参数创建并返回几何源 iOS11.4

+ (instancetype)geometrySourceWithVertices:(const SCNVector3 *)vertices count:(NSInteger)count
从存储在SCNVector3值的缓冲区中的顶点创建并返回几何源 iOS11.4

+ (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count
从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 iOS11.4

+ (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count
从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 iOS11.4

+ (instancetype)geometrySourceWithTextureCoordinates:(const CGPoint *)texcoord count:(NSInteger)count
iOS11.4

- (void)renderer:(id <SCNSceneRenderer>)aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time
iOS11.4

+ (instancetype)geometrySourceWithBuffer:(id <MTLBuffer>)mtlBuffer vertexFormat:(MTLVertexFormat)vertexFormat semantic:(SCNGeometrySourceSemantic)semantic vertexCount:(NSInteger)vertexCount dataOffset:(NSInteger)offset dataStride:(NSInteger)stride

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

NSData *data
几何源的数据 iOS11.4

SCNGeometrySourceSemantic semantic
几何源的语义 iOS11.4

NSInteger vectorCount
数据中的向量数 iOS11.4

BOOL floatComponents
一个标志,指示矢量组件是否为浮点值 iOS11.4

NSInteger componentsPerVector
每个向量中的标量分量数 iOS11.4

NSInteger bytesPerComponent
矢量分量的大小(以字节为单位) iOS11.4

NSInteger dataOffset
从数据开头的偏移量。以字节为单位 iOS11.4

NSInteger dataStride
数据中从向量到下一个向量的字节数 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)geometryElementWithData:(nullable NSData *)data primitiveType:(SCNGeometryPrimitiveType)primitiveType primitiveCount:(NSInteger)primitiveCount bytesPerIndex:(NSInteger)bytesPerIndex
根据给定的数据和数据格式信息创建并返回几何元素 iOS11.4
属 性 说 明 备 注 SDK版本

NSData *data
几何元素的数据 iOS11.4

SCNGeometryPrimitiveType primitiveType
几何元素的类型。可能的值列在SCNGeometryPrimitiveType枚举中 iOS11.4

NSInteger primitiveCount
数据中的基元数量 iOS11.4

NSRange primitiveRange
要渲染的基元的子范围。默认为[NSNotFound,0]
iOS11.0
iOS11.4

NSInteger bytesPerIndex
表示索引值的字节数 iOS11.4

CGFloat pointSize
指定本地空间中的点的大小。默认为1
iOS11.0
iOS11.4

CGFloat minimumPointScreenSpaceRadius
指定屏幕空间中的最小大小(以像素为单位)。默认为1
iOS11.0
iOS11.4

CGFloat maximumPointScreenSpaceRadius
指定屏幕空间中的最大大小(以像素为单位)。默认为1
iOS11.0
iOS11.4

SCNTessellationSmoothingMode

常 量 说 明 备 注 SDK版本

SCNTessellationSmoothingModeNone
iOS11.4

SCNTessellationSmoothingModePNTriangles
iOS11.4

SCNTessellationSmoothingModePhong
iOS11.4

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

属 性 说 明 备 注 SDK版本

CGFloat tessellationFactorScale
指定应用于每个修补程序细分因子的比例因子。默认为1 iOS11.4

MTLTessellationPartitionMode tessellationPartitionMode
指定细分分区模式。默认为MTLTessellationPartitionModeInteger iOS11.4

BOOL adaptive
指定曲面细分应该是统一的还是自适应的。默认为NO iOS11.4

BOOL screenSpace
指定是否应在screenSpace中调整曲面细分级别。默认为NO iOS11.4

CGFloat edgeTessellationFactor
指定边缘细分因子。默认为1 iOS11.4

CGFloat insideTessellationFactor
指定内部曲面细分因子。默认为1 iOS11.4

CGFloat maximumEdgeLength
指定最大边长。默认为1 iOS11.4

SCNTessellationSmoothingMode smoothingMode
默认为SCNTessellationSmoothingModeNone iOS11.4

文件SCNParametricGeometry.h


#import <SceneKit/SCNParametricGeometry.h>

内容简介

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

方 法 说 明 备 注 SDK版本

+ (instancetype)planeWithWidth:(CGFloat)width height:(CGFloat)height
创建并返回具有给定宽度和高度的平面 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat width
沿X轴的平面范围。动画 iOS11.4

CGFloat height
沿Y轴的平面范围。动画 iOS11.4

NSInteger widthSegmentCount
沿X轴的细分数。动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。默认值为1.可动画 iOS11.4

CGFloat cornerRadius
角半径。动画
MacOS10.9
iOS11.4

NSInteger cornerSegmentCount
圆角的细分数量。动画
MacOS10.9
iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius
创建并返回具有给定宽度,高度,长度和倒角半径的框 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat width
盒子的宽度。动画 iOS11.4

CGFloat height
盒子的高度。动画 iOS11.4

CGFloat length
盒子的长度。动画 iOS11.4

CGFloat chamferRadius
倒角半径。动画 iOS11.4

NSInteger widthSegmentCount
沿X轴的细分数。默认值为1.可动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。默认值为1.可动画 iOS11.4

NSInteger lengthSegmentCount
沿Z轴的细分数。默认值为1.可动画 iOS11.4

NSInteger chamferSegmentCount
倒角细分的数量。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius
创建并返回具有给定宽度,高度和长度的金字塔 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat width
金字塔的宽度。动画 iOS11.4

CGFloat height
金字塔的高度。动画 iOS11.4

CGFloat length
金字塔底座的长度。动画 iOS11.4

NSInteger widthSegmentCount
沿X轴的细分数。默认值为1.可动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。默认值为1.可动画 iOS11.4

NSInteger lengthSegmentCount
沿Z轴的细分数。默认值为1.可动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)sphereWithRadius:(CGFloat)radius
创建并返回给定半径的球体 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat radius
球体半径。动画 iOS11.4

BOOL geodesic
指出几何是否是地圈 iOS11.4

NSInteger segmentCount
沿两个球面坐标的段数。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)cylinderWithRadius:(CGFloat)radius height:(CGFloat)height
创建并返回给定半径和高度的圆柱体 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat radius
圆柱的半径。动画 iOS11.4

CGFloat height
圆柱的高度。动画 iOS11.4

NSInteger segmentCount
沿径向坐标的细分数。动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)coneWithTopRadius:(CGFloat)topRadius bottomRadius:(CGFloat)bottomRadius height:(CGFloat)height
创建并返回给定半径和高度的圆柱体 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat topRadius
锥顶部的半径。动画 iOS11.4

CGFloat bottomRadius
锥体底部的半径。动画 iOS11.4

CGFloat height
锥体的高度。动画 iOS11.4

NSInteger radialSegmentCount
沿径向坐标的细分数。动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)tubeWithInnerRadius:(CGFloat)innerRadius outerRadius:(CGFloat)outerRadius height:(CGFloat)height
创建并返回具有给定内半径,外半径和高度的管 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat innerRadius
管的内半径。动画 iOS11.4

CGFloat outerRadius
管的外半径。动画 iOS11.4

CGFloat height
管的高度。动画 iOS11.4

NSInteger radialSegmentCount
沿径向坐标的细分数。动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)capsuleWithCapRadius:(CGFloat)capRadius height:(CGFloat)height
创建并返回具有给定半径和高度的胶囊 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat capRadius
胶囊的帽半径。动画 iOS11.4

CGFloat height
胶囊的高度。动画 iOS11.4

NSInteger radialSegmentCount
沿径向坐标的细分数。动画 iOS11.4

NSInteger heightSegmentCount
沿Y轴的细分数。动画 iOS11.4

NSInteger capSegmentCount
上限中的细分数量。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)torusWithRingRadius:(CGFloat)ringRadius pipeRadius:(CGFloat)pipeRadius
创建并返回具有给定环半径和管道半径的圆环 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat ringRadius
圆环的半径。动画 iOS11.4

CGFloat pipeRadius
圆环管的半径。动画 iOS11.4

NSInteger ringSegmentCount
戒指的细分数量。动画 iOS11.4

NSInteger pipeSegmentCount
管道的细分数量。动画 iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)floor
创建并返回一个地板 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat reflectivity
指定地板的反射率。动画 iOS11.4

CGFloat reflectionFalloffStart
指定从衰减开始的楼层开始的距离。动画 iOS11.4

CGFloat reflectionFalloffEnd
指定距离落差的地板的距离。动画 iOS11.4

NSUInteger reflectionCategoryBitMask
确定要反映的节点类别。默认为所有设置的位
iOS11.0
iOS11.4

CGFloat width
沿X轴的地板范围。动画
iOS11.0
iOS11.4

CGFloat length
沿Z轴的地板范围。动画
iOS11.0
iOS11.4

CGFloat reflectionResolutionScaleFactor
指定用于渲染反射的缓冲区的分辨率比例因子
MacOS10.10
iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)textWithString:(nullable id)string extrusionDepth:(CGFloat)extrusionDepth;
使用给定的拉伸深度创建并返回给定文本的3D表示 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat extrusionDepth
挤出深度。动画 iOS11.4

id string
要表示的文本。该文本必须是NSString或NSAttributedString的实例 iOS11.4

UIFont *font
用于表示文本的字体 iOS11.4

BOOL wrapped
确定文本是否被包装以适合边界 iOS11.4

CGRect containerFrame
可以包装或截断文本的容器 iOS11.4

NSString *truncationMode
描述如何截断文本以适应边界 iOS11.4

NSString *alignmentMode
确定各个文本行在边界内的水平对齐方式 iOS11.4

CGFloat chamferRadius
倒角半径。动画 iOS11.4

UIBezierPath *chamferProfile
描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 iOS11.4

CGFloat flatness
指定呈现字体的精度(或平滑度)`
MacOS10.9
iOS11.4

SCNChamferMode(倒角模式)

属 性 说 明 备 注 SDK版本

SCNChamferModeBoth

MacOS10.9
iOS11.4

SCNChamferModeFront

MacOS10.9
iOS11.4

SCNChamferModeBack

MacOS10.9
iOS11.4

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

方 法 说 明 备 注 SDK版本

+ (instancetype)shapeWithPath:(nullable UIBezierPath *)path extrusionDepth:(CGFloat)extrusionDepth
使用给定的拉伸深度创建并返回给定形状的3D表示 iOS11.4
属 性 说 明 备 注 SDK版本

UIBezierPath *path
定义要渲染的形状的路径 iOS11.4

CGFloat extrusionDepth
挤出深度。动画 iOS11.4

SCNChamferMode chamferMode
被倒角的文本的边 iOS11.4

CGFloat chamferRadius
倒角半径。动画 iOS11.4

UIBezierPath *chamferProfile
描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 iOS11.4

文件SCNTransaction.h


#import <SceneKit/SCNTransaction.h>

内容简介

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

方 法 说 明 备 注 SDK版本

+ (void)begin
为当前线程开始一个新事务 iOS11.4

+ (void)commit
提交当前事务期间所做的所有更改 iOS11.4

+ (void)flush
提交任何现存的隐含交易。将延迟实际提交,直到任何嵌套显式事务完成 iOS11.4

+ (void)lock
锁定全局锁的方法 iOS11.4

+ (void)unlock
解锁全局锁的方法 iOS11.4

+ (nullable id)valueForKey:(NSString *)key
将任意键控数据与当前事务(即与当前线程)相关联 iOS11.4

+ (void)setValue:(nullable id)value forKey:(NSString *)key
iOS11.4
属 性 说 明 备 注 SDK版本

CFTimeInterval animationDuration
每个线程事务属性的“animationDuration”访问器。定义动画的默认持续时间。显式事务的默认值为1 / 4s,隐式事务的默认值为0 iOS11.4

CAMediaTimingFunction *animationTimingFunction
每个线程事务属性的“animationTimingFunction”的访问器。默认值为nil,当设置为非零值时,添加到场景图中的任何动画都将此值设置为其“timingFunction”属性 iOS11.4

BOOL disableActions
每个线程事务属性的“disableActions”的访问器。定义是否执行隐式动画。默认为NO,即启用隐式动画 iOS11.4

void (^completionBlock)(void)
“completionBlock”每线程事务属性的访问器。一旦设置为非空,只要此事务组随后添加的所有动画都已完成(或已被删除),就可以保证在该主线程上调用该块)。 iOS11.4

文件SCNMorpher.h


#import <SceneKit/SCNMorpher.h>

内容简介

属 性 说 明 备 注 SDK版本

NSArray<SCNGeometry *> *target
将变形目标指定为SCNGeometry数组 iOS11.4

SCNMorpherCalculationMode calculationMode
指定接收器如何计算变形结果。默认为SCNMorpherCalculationModeNormalized iOS11.4

NSArray<NSNumber *> *weights
访问所有目标的所有权重
iOS11.0
iOS11.4

BOOL unifiesNormals
设置为YES时,法线不会变形,而是在变形顶点后重新计算。设置为NO时,如果几何目标具有法线,则变形器将变形法线。默认为NO
iOS11.0
iOS11.4
方法 说 明 备 注 SDK版本

- (void)setWeight:(CGFloat)weight forTargetAtIndex:(NSUInteger)targetIndex
设置指定索引处目标的权重。使用keyPath“weights [index]”或“weights [”targetName“]”隐式或显式动画化(targetName是目标几何体的名称) iOS11.4

- (CGFloat)weightForTargetAtIndex:(NSUInteger)targetIndex;
检索指定索引处目标的权重 iOS11.4

- (void)setWeight:(CGFloat)weight forTargetNamed:(NSString *)targetName
设置具有指定名称的目标的权重(targetName是目标几何的名称)
iOS11.0
iOS11.4

- (CGFloat)weightForTargetNamed:(NSString *)targetName
使用指定的名称检索目标的权重(targetName是目标几何的名称)
iOS11.0
iOS11.4

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


#import <SceneKit/SCNSkinner.h>

内容简介

属 性 说 明 备 注 SDK版本

SCNNode *skeleton
指定接收器的骨架 iOS11.4

SCNGeometry *baseGeometry
指定接收器的基本几何体
MacOS10.9
iOS11.4

SCNMatrix4 baseGeometryBindTransform
指定网格绑定到骨架时baseGeometry的变换。这会将baseGeometry从对象空间转换为应用蒙皮的空间
MacOS10.10
iOS11.4

NSArray<NSValue *> *boneInverseBindTransforms
绑定形状绑定到此骨骼时骨骼的绑定空间转换矩阵的反转
MacOS10.10
iOS11.4

NSArray<SCNNode *> *bones
皮肤的骨骼
MacOS10.10
iOS11.4

SCNGeometrySource *boneWeights
接收器的骨骼权重
MacOS10.10
iOS11.4

SCNGeometrySource *boneIndices
接收器的骨骼索引
MacOS10.10
iOS11.4
方法 说 明 备 注 SDK版本

+ (instancetype)skinnerWithBaseGeometry:(nullable SCNGeometry *)baseGeometry bones:(NSArray<SCNNode *> *)bones boneInverseBindTransforms:(nullable NSArray<NSValue *> *)boneInverseBindTransforms boneWeights:(SCNGeometrySource *)boneWeights boneIndices:(SCNGeometrySource *)boneIndices
使用指定的参数创建并初始化skinner实例
MacOS10.10
iOS11.4

文件SCNConstraint.h


#import <SceneKit/SCNConstraint.h>

内容简介

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

属 性 说 明 备 注 SDK版本

BOOL enabled
确定是否启用约束。默认为YES
MacOS10.10
iOS11.4

CGFloat influenceFactor
指定接收器的影响因子。默认为1.动画
MacOS10.10
iOS11.4

BOOL incremental
指定约束是否应以递增方式应用,并使其在渲染帧上累积效果。在macOS 10.13,iOS 11,tvOS 11和watchOS 4上默认为YES。在早期版本中默认为NO
iOS11.0
iOS11.4

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

MacOS10.9

属 性 说 明 备 注 SDK版本

SCNNode *target
定义要查看的目标节点
iOS10.0
iOS11.4

SCNVector3 targetOffset
偏移看目标空间中的位置。默认为零。动画
iOS11.0
iOS11.4

SCNVector3 localFront
约束所有者本地空间中的前向。默认为[SCNNode localFront]。动画
iOS11.0
iOS11.4

SCNVector3 worldUp
世界空间中的参考方向。默认为[SCNNode localUp]。动画
iOS11.0
iOS11.4

BOOL gimbalLockEnabled
指定接收器是否启用万向节锁定。默认为NO iOS11.4
方法 说 明 备 注 SDK版本

+ (instancetype)lookAtConstraintWithTarget:(nullable SCNNode *)target
创建并返回具有指定目标的SCNLookAtConstraint对象 iOS11.4

- (nullable SCNNode *)target
iOS11.4

- (void)setTarget:(nullable SCNNode *)target
iOS11.4

SCNBillboardAxis

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

SCNBillboardConstraint:SCNConstraint

iOS9.0

属 性 说 明 备 注 SDK版本

+ (instancetype)billboardConstraint
创建并返回SCNBillboardConstraint约束 iOS11.4

SCNBillboardAxis freeAxes
指定广告牌方向运行的轴。默认为SCNBillboardAxisAll iOS11.4

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

MacOS10.9

方 法 说 明 备 注 SDK版本

+ (instancetype)transformConstraintInWorldSpace:(BOOL)world withBlock:(SCNMatrix4 (^)(SCNNode *node, SCNMatrix4 transform))block
使用指定的参数创建并返回SCNTransformConstraint对象 iOS11.4

+ (instancetype)positionConstraintInWorldSpace:(BOOL)world withBlock:(SCNVector3 (^)(SCNNode *node, SCNVector3 position))block
使用指定的参数创建并返回SCNTransformConstraint对象
iOS11.0
iOS11.4

+ (instancetype)orientationConstraintInWorldSpace:(BOOL)world withBlock:(SCNQuaternion (^)(SCNNode *node, SCNQuaternion quaternion))block
使用指定的参数创建并返回SCNTransformConstraint对象
iOS11.0
iOS11.4

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

MacOS10.10

方 法 说 明 备 注 SDK版本

- (instancetype)initWithChainRootNode:(SCNNode *)chainRootNode
使用指定的参数创建并返回SCNIKConstraint对象
iOS9.0
iOS11.4

+ (instancetype)inverseKinematicsConstraintWithChainRootNode:(SCNNode *)chainRootNode
使用指定的参数创建并返回SCNIKConstraint对象 iOS11.4
属 性 说 明 备 注 SDK版本

SCNNode *chainRootNode
指定运动链的根节点 iOS11.4

SCNVector3 targetPosition
指定结束关节的目标位置(在世界空间坐标中)(即拥有IK约束的节点)。默认为(0,0,0)。动画 iOS11.4

- (void)setMaxAllowedRotationAngle:(CGFloat)angle forJoint:(SCNNode *)node
指定指定关节从其初始方向允许的最大旋转(以度为单位)。默认为180 iOS11.4

- (CGFloat)maxAllowedRotationAngleForJoint:(SCNNode *)node
iOS11.4

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

iOS11.0

方 法 说 明 备 注 SDK版本

+ (instancetype)distanceConstraintWithTarget:(nullable SCNNode *)target
创建并返回SCNDistanceConstraint约束 iOS11.4

SCNNode *target
定义目标节点以保持距离 iOS11.4

CGFloat minimumDistance
最小距离。默认为0.可动画 iOS11.4

CGFloat maximumDistance
最小距离。默认为MAXFLOAT。动画 iOS11.4

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

iOS11.0

方 法 说 明 备 注 SDK版本

+ (instancetype)replicatorConstraintWithTarget:(nullable SCNNode *)target
创建并返回SCNReplicatorConstraint约束 iOS11.4
属 性 说 明 备 注 SDK版本

SCNNode *target
定义要复制的目标节点 iOS11.4

BOOL replicatesOrientation
定义约束是否应复制目标方向。默认为YES iOS11.4

BOOL replicatesPosition
定义约束是否应复制目标位置。默认为YES iOS11.4

BOOL replicatesScale
定义约束是否应复制目标比例。默认为YES iOS11.4

SCNQuaternion orientationOffset
定义添加方向偏移。默认为无偏移。动画 iOS11.4

SCNVector3 positionOffset
定义添加方向偏移。默认为无偏移。动画 iOS11.4

SCNVector3 scaleOffset
定义附加比例偏移。默认为无偏移。动画 iOS11.4

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

iOS11.0

)

方 法 说 明 备 注 SDK版本

+ (instancetype)accelerationConstraint;
创建并返回SCNAccelerationConstraint对象 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat maximumLinearAcceleration
控制最大线性加速度。默认为MAXFLOAT。动画 iOS11.4

CGFloat maximumLinearVelocity
控制最大线速度。默认为MAXFLOAT。动画 iOS11.4

CGFloat decelerationDistance
控制节点开始减速的距离。默认为0。动画 iOS11.4

CGFloat damping
指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1。动画 iOS11.4

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

iOS11.0

方 法 说 明 备 注 SDK版本

+ (instancetype)sliderConstraint;
创建并返回SCNSliderConstraint对象。 iOS11.4
属 性 说 明 备 注 SDK版本

NSUInteger collisionCategoryBitMask
定义要冲突的节点类别。默认为0 iOS11.4

CGFloat radius
定义滑块的半径。默认为1 iOS11.4

SCNVector3 offset
定义滑块的偏移量。默认为(0,0,0) iOS11.4

SCNAvoidOccluderConstraintDelegate代理

方 法 说 明 备 注 SDK版本

- (BOOL)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint shouldAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node
iOS11.4

- (void)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint didAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node
iOS11.4

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

iOS11.0

方 法 说 明 备 注 SDK版本

+ (instancetype)avoidOccluderConstraintWithTarget:(nullable SCNNode *)target
创建并返回SCNAvoidOccluderConstraint对象 iOS11.4
属 性 说 明 备 注 SDK版本

id <SCNAvoidOccluderConstraintDelegate> delegate
接收者的代表 iOS11.4

NSUInteger occluderCategoryBitMask
定义要视为封堵器的节点类别。默认为1 iOS11.4

CGFloat bias
定义移动接收器后应用的偏置以避免遮挡物。默认为10e-5 iOS11.4

文件SCNLevelOfDetail.h


#import <SceneKit/SCNLevelOfDetail.h>

内容简介

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

iOS10.9

方 法 说 明 备 注 SDK版本

+ (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry screenSpaceRadius:(CGFloat)radius
这是一种使用覆盖半径阈值模式创建细节级别的便捷方法 iOS11.4

+ (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry worldSpaceDistance:(CGFloat)distance
这是使用距离阈值模式创建细节级别的便捷方法 iOS11.4
属 性 说 明 备 注 SDK版本

SCNGeometry *geometry
返回接收器的几何 iOS11.4

CGFloat screenSpaceRadius
返回接收器的屏幕空间半径(如果有),否则返回0 iOS11.4

CGFloat worldSpaceDistance
返回接收器的世界空间距离(如果有),否则返回0 iOS11.4

文件SCNParticleSystem.h


#import <SceneKit/SCNParticleSystem.h>

内容简介

SCNParticleProperty(粒子属性)

属 性 说 明 备 注 SDK版本

SCNParticlePropertyPosition
float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}
MacOS10.10
iOS11.4

SCNParticlePropertyAngle
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyRotationAxis
float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}
MacOS10.10
iOS11.4

SCNParticlePropertyVelocity
float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}
MacOS10.10
iOS11.4

SCNParticlePropertyAngularVelocity
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyLife
float 不可控制
MacOS10.10
iOS11.4

SCNParticlePropertyColor
float4 : {r,g,b,a} 控制器动画类型:{UIColor}
MacOS10.10
iOS11.4

SCNParticlePropertyOpacity
float 控制器动画类型:{NSNumber}
iOMacOS10.10S10.10
iOS11.4

SCNParticlePropertySize
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyFrame
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyFrameRate
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyBounce
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyCharge
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyFriction
float 控制器动画类型:{NSNumber}
MacOS10.10
iOS11.4

SCNParticlePropertyContactPoint
float3 不可控制 仅在处理SCNParticleEventCollision类型的事件时可用

(只读) MacOS10.10
iOS11.4

SCNParticlePropertyContactNormal
float3 不可控制 仅在处理SCNParticleEventCollision类型的事件时可用

(只读) MacOS10.10
iOS11.4

粒子事件回调


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

粒子修改回调


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

SCNParticleSortingMode(粒子排序模式)

常 量 说 明 备 注 SDK版本

SCNParticleSortingModeNone
粒子没有排序
MacOS10.10
iOS11.4

SCNParticleSortingModeProjectedDepth
粒子按深度排序(远远渲染)
MacOS10.10
iOS11.4

SCNParticleSortingModeDistance
粒子按距离的角度排序
MacOS10.10
iOS11.4

SCNParticleSortingModeOldestFirst
颗粒按出生日期排序 – 最早出现
MacOS10.10
iOS11.4

SCNParticleSortingModeYoungestFirst
粒子按出生日期排序 – 先取消
MacOS10.10
iOS11.4

SCNParticleBlendMode(粒子混合模式)

常 量 说 明 备 注 SDK版本

SCNParticleBlendModeAdditive
粒子没有排序
MacOS10.10
iOS11.4

SCNParticleBlendModeSubtract
粒子按深度排序(远远渲染)
MacOS10.10
iOS11.4

SCNParticleBlendModeMultiply
粒子按距离的角度排序
MacOS10.10
iOS11.4

SCNParticleBlendModeScreen
颗粒按出生日期排序 – 最早出现
MacOS10.10
iOS11.4

SCNParticleBlendModeAlpha
粒子按出生日期排序 – 先取消
MacOS10.10
iOS11.4

SCNParticleBlendModeReplace
粒子按出生日期排序 – 先取消
MacOS10.10
iOS11.4

SCNParticleOrientationMode(粒子方向模式)

常 量 说 明 备 注 SDK版本

SCNParticleOrientationModeBillboardScreenAligned
粒子在屏幕上对齐
MacOS10.10
iOS11.4

SCNParticleOrientationModeBillboardViewAligned
从视点到粒子,粒子与矢量垂直
MacOS10.10
iOS11.4

SCNParticleOrientationModeFree
在所有轴上自由
MacOS10.10
iOS11.4

SCNParticleOrientationModeBillboardYAligned
固定在Y轴上
MacOS10.10
iOS11.4

SCNParticleBirthLocation(粒子出生位置)

常 量 说 明 备 注 SDK版本

SCNParticleBirthLocationSurface
粒子在发射器形状的表面上发射
MacOS10.10
iOS11.4

SCNParticleBirthLocationVolume
粒子在发射器形状的体积内发射
MacOS10.10
iOS11.4

SCNParticleBirthLocationVertex
粒子在发射器形状的顶点上发射
MacOS10.10
iOS11.4

SCNParticleBirthDirection(粒子出生方向)

常 量 说 明 备 注 SDK版本

SCNParticleBirthDirectionConstant
Z发射器的方向
MacOS10.10
iOS11.4

SCNParticleBirthDirectionSurfaceNormal
使用形状引起的方向
MacOS10.10
iOS11.4

SCNParticleBirthDirectionRandom
随机方向
MacOS10.10
iOS11.4

SCNParticleImageSequenceAnimationMode(纹理动画模式)

常 量 说 明 备 注 SDK版本

SCNParticleImageSequenceAnimationModeRepeat
动画将循环播放
MacOS10.10
iOS11.4

SCNParticleImageSequenceAnimationModeClamp
动画将在两端停止
MacOS10.10
iOS11.4

SCNParticleImageSequenceAnimationModeAutoReverse
到达终点时动画将反转
MacOS10.10
iOS11.4

SCNParticleInputMode(粒子变化模式)

常 量 说 明 备 注 SDK版本

SCNParticleInputModeOverLife
控制器动画的输入时间是粒子的当前生命周期
MacOS10.10
iOS11.4

SCNParticleInputModeOverDistance
控制器动画的输入时间是距变化原点节点的距离
MacOS10.10
iOS11.4

SCNParticleInputModeOverOtherProperty
控制器动画的输入时间是另一个指定属性的当前值
MacOS10.10
iOS11.4

SCNParticleModifierStage(粒子修改器阶段)

常 量 说 明 备 注 SDK版本

SCNParticleModifierStagePreDynamics

MacOS10.10
iOS11.4

SCNParticleModifierStagePostDynamics

MacOS10.10
iOS11.4

SCNParticleModifierStagePreCollision

MacOS10.10
iOS11.4

SCNParticleModifierStagePostCollision

MacOS10.10
iOS11.4

SCNParticleEvent(粒子事件)

常 量 说 明 备 注 SDK版本

SCNParticleEventBirth
新粒子产生时触发的事件
MacOS10.10
iOS11.4

SCNParticleEventDeath
粒子死亡时触发事件
MacOS10.10
iOS11.4

SCNParticleEventCollision
粒子与碰撞器节点碰撞时触发的事件
MacOS10.10
iOS11.4

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

MacOS10.10

方 法 说 明 备 注 SDK版本

+ (instancetype)controllerWithAnimation:(CAAnimation *)animation
使用指定的动画创建并初始化粒子属性控制器 iOS11.4
属性 说 明 备 注 SDK版本

CAAnimation *animation
指定要在粒子系统属性上应用的动画。动画的类型取决于受控制的属性。请参阅属性名称定义中的文档 iOS11.4

SCNParticleInputMode inputMode
指定接收器的输入模式。这可以是生命,远距离或另一个属性的演变。默认为SCNParticleInputModeOverLife iOS11.4

CGFloat inputScale
指定输入比例。inputScale默认为1 iOS11.4

CGFloat inputBias
指定输入偏差。inputBias默认为0 iOS11.4

SCNNode *inputOrigin
指定变体模式“SCNParticleInputModeOverDistance”的原点 iOS11.4

SCNParticleProperty inputProperty
指定将哪个属性用作输入模式“SCNParticleInputModeOverOtherProperty”的输入 iOS11.4

SCNParticleSystem(SCNParticleSystem类表示粒子系统)

MacOS10.10

方 法 说 明 备 注 SDK版本

+ (instancetype)particleSystem
创建粒子系统的实例 iOS11.4

+ (nullable instancetype)particleSystemNamed:(NSString *)name inDirectory:(nullable NSString *)directory
iOS11.4

Emitter properties(发射器属性)

属性 说 明 备 注 SDK版本

CGFloat emissionDuration
指定发射的持续时间。默认为1.动画 iOS11.4

CGFloat emissionDurationVariation
指定发射持续时间的变化。默认为0.可动画 iOS11.4

CGFloat idleDuration
指定两次发射之间的空闲持续时间。默认为0.可动画 iOS11.4

CGFloat idleDurationVariation
指定空闲持续时间的变化。默认为0.可动画 iOS11.4

BOOL loops
指定发射的循环行为。默认为YES iOS11.4

CGFloat birthRate
指定粒子速率流,以每个emissionDuration的粒子数表示。没有循环的emissionDuration为0意味着粒子瞬间发射.0表示发射器不发光,除非它有变化。默认为1.动画 iOS11.4

CGFloat birthRateVariation
指定费率流的变化。默认为0.可动画 iOS11.4

CGFloat warmupDuration
指定在第一次渲染系统之前发射粒子的时间长度。例如,这允许启动已经下降的雪场景。默认为0.可动画 iOS11.4

SCNGeometry *emitterShape
指定发射器的形状。零意味着一个准时发射器。默认为零 iOS11.4

SCNParticleBirthLocation birthLocation
指定新创建的粒子的位置。默认为SCNParticleBirthLocationSurface iOS11.4

SCNParticleBirthDirection birthDirection
指定新创建的粒子的方向。默认为SCNParticleBirthDirectionConstant iOS11.4

CGFloat spreadingAngle
指定新创建的粒子的传播方向,以度为单位。未在SCNParticleBirthDirectionRandom中使用。默认为0.可动画 iOS11.4

SCNVector3 emittingDirection
指定在SCNParticleBirthDirectionConstant模式中使用的新创建的粒子的发射方向。默认为{0,0,1}。动画 iOS11.4

SCNVector3 orientationDirection
指定在SCNParticleOrientationModeFree模式中使用的新创建的粒子的方向。粒子将围绕此轴旋转。默认为{0,0,0},表示随机。然后粒子将任意旋转。动画
iOS11.0
iOS11.4

SCNVector3 acceleration
以世界坐标指定应用于粒子的加速度。允许模拟风或重力。默认为{0,0,0}。动画 iOS11.4

BOOL local
指定系统的呈现和模拟类型。如果设置为YES,系统将使用附加节点的变换进行渲染。默认为NO iOS11.4

Particle properties(粒子属性)

属性 说 明 备 注 SDK版本

CGFloat particleAngle
指定出生时粒子的初始角度,单位为度。默认为0.可动画 iOS11.4

CGFloat particleAngleVariation
指定出生时粒子初始角度的变化,以度为单位。默认为0.可动画 iOS11.4

CGFloat particleVelocity
指定出生时粒子的初始速度,以每秒为单位。默认为0.可动画 iOS11.4

CGFloat particleVelocityVariation
指定速度的变化。默认为0.可动画 iOS11.4

CGFloat particleAngularVelocity
指定出生时粒子的初始角速度,以每秒度数。默认为0.可动画 iOS11.4

CGFloat particleAngularVelocityVariation
指定角速度的变化,以度/秒为单位。默认为0.可动画 iOS11.4

CGFloat particleLifeSpan
指定粒子的寿命。动画 iOS11.4

CGFloat particleLifeSpanVariation
指定粒子的寿命变化。动画 iOS11.4

SCNParticleSystem *systemSpawnedOnDyin
指定在粒子死亡时生成新粒子的可选系统 iOS11.4

SCNParticleSystem *systemSpawnedOnCollision
指定在粒子死亡时生成新粒子的可选系统 iOS11.4

SCNParticleSystem *systemSpawnedOnLiving
指定在粒子处于活动状态时生成新粒子的可选系统 iOS11.4

Particle Rendering(粒子渲染)

属性 说 明 备 注 SDK版本

id particleImage
指定粒子的图像。可以设置为NSImage/UIImage,路径或URL iOS11.4

NSUInteger imageSequenceColumnCount
指定图像序列中的列数。默认为1 iOS11.4

NSUInteger imageSequenceRowCount
指定图像序列中的行数。默认为1 iOS11.4

CGFloat imageSequenceInitialFrame
指定纹理初始帧索引。范围从0到(imageSequenceColumnCount * imageSequenceRowCount – 1)。默认为0.可动画 iOS11.4

CGFloat imageSequenceInitialFrameVariation
指定纹理初始帧变体。动画 iOS11.4

CGFloat imageSequenceFrameRate
指定纹理动画帧速率,以每秒帧数为单位。默认为0.可动画 iOS11.4

CGFloat imageSequenceFrameRateVariation
指定纹理动画帧速率变化,以每秒帧数为单位。默认为0.可动画 iOS11.4

SCNParticleImageSequenceAnimationMode imageSequenceAnimationMode
指定纹理动画模式。默认为SCNTextureAnimationModeRepeat iOS11.4

UIColor *particleColor
指定粒子的初始颜色。动画。默认为不透明白色 iOS11.4

SCNVector4 particleColorVariation
指定颜色的标准化变化。使用x:色调变化,y:饱和度变化,z:亮度变化,w:alpha变化。动画 iOS11.4

CGFloat particleSize
指定粒子的初始大小。动画 iOS11.4

CGFloat particleSizeVariation
指定粒子的初始大小变化。动画 iOS11.4

CGFloat particleIntensity
指定粒子的初始强度。动画
iOS11.0
iOS11.4

CGFloat particleIntensityVariation
指定粒子的初始强度变化。动画 iOS11.4

SCNParticleBlendMode blendMode
指定用于渲染粒子系统的混合模式。默认为SCNParticleBlendModeAdditive iOS11.4

BOOL blackPassEnabled
指定渲染粒子系统时是否需要黑色传递。这加强了添加剂/光系统的对比度。默认为NO iOS11.4

SCNParticleOrientationMode orientationMode
指定粒子的方向模式。默认为SCNParticleOrientationModeBillboardScreenAligned iOS11.4

SCNParticleSortingMode sortingMode
指定粒子的排序模式。默认为SCNParticleSortingModeNone iOS11.4

BOOL lightingEnabled
实现粒子系统的照明 iOS11.4

Particle Simulation(粒子模拟)

属 性 说 明 备 注 SDK版本

BOOL affectedByGravity
允许使用SCNPhysicsWorld中定义的重力 iOS11.4

BOOL affectedByPhysicsFields
启用添加到SCNPhysicsWorld的物理字段的效果 iOS11.4

BOOL particleDiesOnCollision
指定粒子在碰撞时是否死亡 iOS11.4

NSArray<SCNNode *> *colliderNodes
指定要与之冲突的SCNNode数组 iOS11.4

CGFloat particleMass
指定粒子质量。动画 iOS11.4

CGFloat particleMassVariation
指定粒子质量变化。动画 iOS11.4

CGFloat particleBounce
指定粒子反弹。动画 iOS11.4

CGFloat particleBounceVariation
指定粒子反弹变化。动画 iOS11.4

CGFloat particleFriction
指定粒子摩擦力。动画 iOS11.4

CGFloat particleFrictionVariation
指定粒子摩擦变化。动画 iOS11.4

CGFloat particleCharge
指定粒子上的电荷。电荷决定了粒子受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0。动画 iOS11.4

CGFloat particleChargeVariation
指定粒子电荷变化。动画 iOS11.4

CGFloat dampingFactor
指定颗粒空气阻力。默认为0.可动画 iOS11.4

CGFloat speedFactor
指定模拟速度乘数。默认为1.动画 iOS11.4

CGFloat stretchFactor
指定粒子是否沿其方向伸展。默认为0.可动画 iOS11.4

CGFloat fresnelExponent
指定接收者的菲涅耳指数值。默认为3.可动画。仅在particleImage是立方体贴图时使用。数量越大,边缘周围的反射越集中 iOS11.4

NSDictionary<SCNParticleProperty, SCNParticlePropertyController *> *propertyControllers
属性控制器 iOS11.4
方 法 说 明 备 注 SDK版本

- (void)reset
删除所有已发射的粒子并重新开始模拟 iOS11.4

Events handling(事件控制)

方 法 说 明 备 注 SDK版本

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

Modifications handling(修改处理)

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

方 法 说 明 备 注 SDK版本

- (void)addModifierForProperties:(NSArray<SCNParticleProperty> *)properties atStage:(SCNParticleModifierStage)stage withBlock:(SCNParticleModifierBlock)block
iOS11.4

- (void)removeModifiersOfStage:(SCNParticleModifierStage)stage
iOS11.4

- (void)removeAllModifiers
iOS11.4

SCNNode(SCNParticleSystemSupport) 粒子系统支持

方 法 说 明 备 注 SDK版本

- (void)addParticleSystem:(SCNParticleSystem *)system
将粒子系统添加到接收器
MacOS10.10
iOS11.4

- (void)removeAllParticleSystems
删除接收器的所有粒子系统
MacOS10.10
iOS11.4

- (void)removeParticleSystem:(SCNParticleSystem *)system
从接收器中删除指定的粒子系统
MacOS10.10
iOS11.4
属 性 说 明 备 注 SDK版本

NSArray<SCNParticleSystem *> *particleSystems
粒子系统附加到节点
MacOS10.10
iOS11.4

文件SCNPhysicsBody.h


#import <SceneKit/SCNPhysicsBody.h>

内容简介

SCNPhysicsBodyType 物理体类型

MacOS10.10

属 性 说 明 备 注 SDK版本

SCNPhysicsBodyTypeStatic
iOS11.4

SCNPhysicsBodyTypeDynamic
iOS11.4

SCNPhysicsBodyTypeKinematic
iOS11.4

SCNPhysicsCollisionCategory 碰撞默认类别

MacOS10.10

属 性 说 明 备 注 SDK版本

SCNPhysicsCollisionCategoryDefault
动态和运动对象的默认碰撞组 iOS11.4

SCNPhysicsCollisionCategoryStatic
静态对象的默认冲突组 iOS11.4

SCNPhysicsCollisionCategoryAll
冲突掩码的默认值 iOS11.4

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

MacOS10.10

方 法 说 明 备 注 SDK版本

+ (instancetype)staticBody
使用默认属性创建静态实体的实例 iOS11.4

+ (instancetype)dynamicBody
使用默认属性创建动态主体的实例 iOS11.4

+ (instancetype)kinematicBody
使用默认属性创建运动体的实例 iOS11.4

+ (instancetype)bodyWithType:(SCNPhysicsBodyType)type shape:(nullable SCNPhysicsShape *)shape
创建具有特定形状的刚体的实例 iOS11.4
属 性 说 明 备 注 SDK版本

SCNPhysicsBodyType type
指定接收器的类型 iOS11.4

CGFloat mass
以千克为单位指定主体的质量。动态实体默认为1,静态实体默认为0 iOS11.4

SCNVector3 momentOfInertia
将身体的惯性矩指定为3D中的矢量。禁用usesDefaultMomentOfInertia以使用此值而不是根据形状几何计算的默认惯性矩
iOS9.0
iOS11.4

BOOL usesDefaultMomentOfInertia
允许禁用默认惯性力矩,以支持存储在momentOfInertia中的惯性力矩
iOS9.0
iOS11.4

CGFloat charge
指定身体上的电荷。电荷决定了身体受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0 iOS11.4

CGFloat friction
指定抵抗实体相对滑动的相对运动的力。默认为0.5 iOS11.4

CGFloat restitution
指定冲突的恢复。默认为0.5 iOS11.4

CGFloat rollingFriction
指定抵抗实体相对于彼此的相对运动的力。默认为0 iOS11.4

SCNPhysicsShape *physicsShape
指定接收器的物理形状。离开这个零将让系统决定并使用实际几何的最有效的边界表示 iOS11.4

BOOL isResting
如果物理模拟确定该物体处于静止状态,则可以将静止属性设置为YES。在与非静止物体发生碰撞或施加冲动之后,静止物体不会参与模拟,从而使其失效。如果世界上所有的身体都在休息,那么模拟作为一个整体就是“静止不动” iOS11.4

BOOL allowsResting
指定接收器是否可以设置为静止 iOS11.4

SCNVector3 velocity
指定接收器的线速度 iOS11.4

SCNVector4 angularVelocity
将接收器的角速度指定为轴角度 iOS11.4

CGFloat damping
指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1 iOS11.4

CGFloat angularDamping
指定接收器的角度阻尼。可选择降低每帧的车身角速度以模拟旋转摩擦。 (0.0 – 1.0)。默认为0.1 iOS11.4

NSUInteger categoryBitMask
定义这个主体所属的逻辑“类别”。静态实体默认为SCNPhysicsCollisionCategoryStatic,其他实体类型默认为SCNPhysicsCollisionCategoryDe​​fault。限制在macOS 10.10和iOS 8上的前15位 iOS11.4

NSUInteger collisionBitMask
定义这个身体响应碰撞的物体的逻辑“类别”。默认为所有设置的位(所有类别) iOS11.4

NSUInteger contactTestBitMask
一个掩码,用于定义哪些类别的实体与此物理实体进行交叉通知。默认为0。在iOS 8和macOS 10.10及更低版本上,发生碰撞时始终会发送交叉点通知
iOS9.0
iOS11.4

BOOL affectedByGravity
如果设置为YES,则此节点将受到重力的影响。默认值为YES
iOS9.0
iOS11.4
方 法 说 明 备 注 SDK版本

- (void)applyForce:(SCNVector3)direction impulse:(BOOL)impulse
在指定方向上施加线性力。线性力施加在接收器的质心上。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力 iOS11.4

- (void)applyForce:(SCNVector3)direction atPosition:(SCNVector3)position impulse:(BOOL)impulse
使用指定位置和方向的线性力。该位置相对于拥有物理主体的节点 iOS11.4

- (void)applyTorque:(SCNVector4)torque impulse:(BOOL)impulse
施加角力(扭矩)。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力。扭矩指定为轴角 iOS11.4

- (void)clearAllForces
清除接收器上施加的力 iOS11.4

- (void)resetTransform
将物理变换重置为节点的模型变换 iOS11.4

文件SCNPhysicsField.h


#import <SceneKit/SCNPhysicsField.h>

内容简介

SCNPhysicsFieldScope 指定物理场的影响域

MacOS10.10

属 性 说 明 备 注 SDK版本

SCNPhysicsFieldScopeInsideExtent
iOS11.4

SCNPhysicsFieldScopeOutsideExtent
iOS11.4

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

MacOS10.10

控制行为属性

属 性 说 明 备 注 SDK版本

CGFloat strength
力场的强度因子。默认为1.0 iOS11.4

CGFloat falloffExponent
根据距离场中心的距离(1 /距离^衰减指数)改变力的力量。默认为0.0。 iOS11.4

CGFloat minimumDistance
与效果达到最大强度的场地中心的距离。默认为1e-6 iOS11.4

BOOL active
指定强制字段是否处于活动状态。默认为YES iOS11.4

BOOL exclusive
如果是,则抑制其区域中的任何其他字段。默认为NO iOS11.4

控制效果属性

属 性 说 明 备 注 SDK版本

SCNVector3 halfExtent
指定效果区域的半范围。默认为FLT_MAX iOS11.4

BOOL usesEllipsoidalExtent
YES表示效果区域在范围内四舍五入。默认为NO iOS11.4

SCNPhysicsFieldScope scope
控制力场是应该应用于区域内部还是外部。默认为内部 iOS11.4

SCNVector3 offset
该区域内的原点效应偏移 iOS11.4

SCNVector3 direction
场的方向。仅适用于线性重力和涡旋场。默认为(0,-1,0) iOS11.4

NSUInteger categoryBitMask
确定将受接收器影响的节点physicsBody的类别。默认为所有位设置
MacOS10.10
iOS11.4
方 法 说 明 备 注 SDK版本

+ (SCNPhysicsField *)dragField
使对象按比例减慢对象的速度。用它来模拟诸如空气中运动的摩擦等效果 iOS11.4

+ (SCNPhysicsField *)vortexField
应用与从采样点到场的位置的方向相切的力。这股力量将向CCW方向发展。使强度为负以在CW方向上施加力。数量与中心距离和物体质量成正比。用它来创建龙卷风等效果 iOS11.4

+ (SCNPhysicsField *)radialGravityField
在局部空间中沿场的原点方向施加力。要击退物体,请使用负强度。力与场原点的距离成比例。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 iOS11.4

+ (SCNPhysicsField *)linearGravityField
在局部空间中的“方向”向量的方向上施加力。要击退物体,请使用负强度。在该领域的任何地方都有相同的力量。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 iOS11.4

+ (SCNPhysicsField *)noiseFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed
时变微分Perlin单纯噪声场。平滑度为0表示尽可能嘈杂。用它来模拟萤火虫或雪等效果。要冻结噪声,请将animationSpeed设置为0.0。质量被忽略了。您可以使用KVC更改“smoothness”和“animationSpeed” iOS11.4

+ (SCNPhysicsField *)turbulenceFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed
就像噪音一样,除了噪音的强度与场中物体的速度成正比 iOS11.4

+ (SCNPhysicsField *)springField
胡克定律力 – 与距离场中心的距离成线性比例的力。这个中的一个对象场将以与质量的倒数成比例的周期振荡。一个示例用途是将对象限制在特定区域 iOS11.4

+ (SCNPhysicsField *)electricField
与物体上的电荷成比例的力。此字段的示例用法是使对象行为不同。当他们进入一个地区时,彼此之间的关系或使一个物体的行为与其基于群众的行为不同该场模拟了洛伦兹方程的第一部分, F = qE iOS11.4

+ (SCNPhysicsField *)magneticField
与物体上的电荷和物体速度成比例的力。此字段的一个示例用法是在对象进入区域时使对象行为彼此不同,或使对象的行为与其基于质量的行为不同。该场模拟了洛伦兹方程的第二部分, F = qvB iOS11.4

typedef SCNVector3 (^SCNFieldForceEvaluator)(SCNVector3 position, SCNVector3 velocity, float mass, float charge, NSTimeInterval time)
iOS11.4

+ (SCNPhysicsField *)customFieldWithEvaluationBlock:(SCNFieldForceEvaluator)block
具有自定义力评估器的场力 iOS11.4

文件SCNPhysicsShape.h


#import <SceneKit/SCNPhysicsShape.h>

内容简介

常 量 说 明 备 注 SDK版本

SCNPhysicsShapeTypeKey
物理形状的类型。默认值为SCNPhysicsShapeTypeConvexHull。请参阅下面的形状类型列表
MacOS10.10
iOS11.4

SCNPhysicsShapeKeepAsCompoundKey
一个布尔值决定是否一个层级被保持为一个形状的复合物或扁平化为一个单一的体积。默认值是true
MacOS10.10
iOS11.4

SCNPhysicsShapeScaleKey
物理形状的局部缩放(作为包含在NSValue中的SCNVector3)
MacOS10.10
iOS11.4

SCNPhysicsShapeOptionCollisionMargin
物理形状的碰撞边缘(作为NSNumber)
iOS10.0
iOS11.4
#define SCNPhysicsShapeOptionType           SCNPhysicsShapeTypeKey
#define SCNPhysicsShapeOptionKeepAsCompound SCNPhysicsShapeKeepAsCompoundKey
#define SCNPhysicsShapeOptionScale          SCNPhysicsShapeScaleKey

SCNPhysicsShapeOptionType值

常 量 说 明 备 注 SDK版本

SCNPhysicsShapeTypeBoundingBox

MacOS10.10
iOS11.4

SCNPhysicsShapeTypeConvexHull

MacOS10.10
iOS11.4

SCNPhysicsShapeTypeConcavePolyhedron

MacOS10.10
iOS11.4

SCNPhysicsShape 表示物理体的形状

MacOS10.10

方 法 说 明 备 注 SDK版本

+ (instancetype)shapeWithGeometry:(SCNGeometry *)geometry options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options
基于几何创建物理形状的实例。请参阅上面的可能选项 iOS11.4

+ (instancetype)shapeWithNode:(SCNNode *)node options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options
基于节点层次创建物理形状的实例。层次结构必须在某些点包含几何以创建有效形状。请参阅上面的可能选项 iOS11.4

+ (instancetype)shapeWithShapes:(NSArray<SCNPhysicsShape *> *)shapes transforms:(nullable NSArray<NSValue *> *)transforms
基于与变换关联的多个子形状创建物理形状的实例。转换将作为NSValue包装SCNMatrix4的数组传递 iOS11.4
属 性 说 明 备 注 SDK版本

NSDictionary<SCNPhysicsShapeOption, id> *options
返回初始时请求的选项
iOS9.0
iOS11.4

id sourceObject
返回从中创建此物理形状的对象。它可以是SCNGeometry

,SCNNode

或子形状的NSArray *

iOS9.0
iOS11.4

NSArray<NSValue *> *transforms
如果物理形状是从子形状数组创建的,则变换包含关联的变换,如SCNMatrix4包裹在NSValue中
iOS9.0
iOS11.4

文件SCNPhysicsWorld.h


#import <SceneKit/SCNPhysicsWorld.h>

内容简介

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

属 性 说 明 备 注 SDK版本

SCNPhysicsTestCollisionBitMaskKey
允许过滤由rayTest,contactTest和convexSweep测试的对象。默认为SCNPhysicsCollisionCategoryAll
MacOS10.10
iOS11.4

SCNPhysicsTestSearchModeKey
指定如何执行光线/接触/扫描测试。值定义如下。如果未定义,则默认为SCNPhysicsTestSearchModeAny
MacOS10.10
iOS11.4

SCNPhysicsTestBackfaceCullingKey
指定是否应忽略背面。默认为YES
MacOS10.10
iOS11.4
#define SCNPhysicsTestOptionCollisionBitMask SCNPhysicsTestCollisionBitMaskKey
#define SCNPhysicsTestOptionSearchMode       SCNPhysicsTestSearchModeKey
#define SCNPhysicsTestOptionBackfaceCulling  SCNPhysicsTestBackfaceCullingKey

SCNPhysicsTestSearchModeKey值

属 性 说 明 备 注 SDK版本

SCNPhysicsTestSearchModeAny
返回找到的第一个联系人
MacOS10.10
iOS11.4

SCNPhysicsTestSearchModeClosest
返回仅找到的最近的联系人
MacOS10.10
iOS11.4

SCNPhysicsTestSearchModeAll
返回所有联系人
MacOS10.10
iOS11.4

SCNPhysicsContactDelegate协议

方 法 说 明 备 注 SDK版本

- (void)physicsWorld:(SCNPhysicsWorld *)world didBeginContact:(SCNPhysicsContact *)contact
iOS11.4

- (void)physicsWorld:(SCNPhysicsWorld *)world didUpdateContact:(SCNPhysicsContact *)contact
iOS11.4

- (void)physicsWorld:(SCNPhysicsWorld *)world didEndContact:(SCNPhysicsContact *)contact
iOS11.4

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

方 法 说 明 备 注 SDK版本

SCNVector3 gravity
全局3D矢量,指定由于重力引起的场力加速度。单位是米/秒。默认值为{0,-9.8,0} iOS11.4

CGFloat speed
速度倍增器应用于物理模拟。默认值为1.0。可以降低速度以减慢模拟速度,但要注意增加速度因子会降低模拟的准确性 iOS11.4

NSTimeInterval timeStep
物理模拟的时间步骤。默认值为1/60秒(60赫兹) iOS11.4

id <SCNPhysicsContactDelegate> contactDelegate
当两个物理实体相互接触时调用的代表 iOS11.4

行为管理

方 法 说 明 备 注 SDK版本

- (void)addBehavior:(SCNPhysicsBehavior *)behavior
iOS11.4

- (void)removeBehavior:(SCNPhysicsBehavior *)behavior
iOS11.4

- (void)removeAllBehaviors
iOS11.4
属 性 说 明 备 注 SDK版本

NSArray<SCNPhysicsBehavior *> *allBehaviors
iOS11.4

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


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

执行接触测试

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

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


- (void)updateCollisionPairs;

文件SCNPhysicsContact.h


#import <SceneKit/SCNPhysicsContact.h>

SCNPhysicsContact

MacOS10.10

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

接触的两个节点

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

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

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

文件SCNPhysicsBehavior.h


#import <SceneKit/SCNPhysicsBehavior.h>

SCNPhysicsBehavior

MacOS10.10

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

SCNPhysicsHingeJoint:SCNPhysicsBehavior

MacOS10.10

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

方 法 说 明 备 注 SDK版本

+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB
初始化并返回物理铰链接头。铰链分别将主体A和主体连接在锚和锚上。 “axis”和“axisB”指定bodyA和bodyB的旋转轴。 iOS11.4

+ (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor
初始化并返回物理铰链接头。铰链将主体附加到由“锚点”指定的3d空间中的特定位置,并相对于拥有主体的节点。 “axis”指定“body”的旋转轴。 iOS11.4
属 性 说 明 备 注 SDK版本

SCNPhysicsBody *bodyA
第一个被铰链约束的身体 iOS11.4

SCNVector3 axisA
bodyA的旋转轴 iOS11.4

SCNVector3 anchorA
身体所附着的锚点 iOS11.4

SCNPhysicsBody *bodyB
第二个身体连接到铰链 iOS11.4

SCNVector3 axisB
bodyB的旋转轴 iOS11.4

SCNVector3 anchorB
bodyB附着的锚点 iOS11.4

SCNPhysicsBallSocketJoint:SCNPhysicsBehavior

MacOS10.10

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

方 法 说 明 备 注 SDK版本

+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB anchorB:(SCNVector3)anchorB
初始化并返回物理球窝关节。关节分别在bodyA和anchorB上附加bodyA和bodyB iOS11.4

+ (instancetype)jointWithBody:(SCNPhysicsBody *)body anchor:(SCNVector3)anchor
初始化并返回物理球窝关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 iOS11.4
属 性 说 明 备 注 SDK版本

SCNPhysicsBody *bodyA
第一个身体连接到球窝关节 iOS11.4

SCNVector3 anchorA
bodyA的附着点 iOS11.4

SCNPhysicsBody *bodyB
第二个身体连接到球窝关节 iOS11.4

SCNVector3 anchorB
bodyB的附着点 iOS11.4

SCNPhysicsSliderJoint:SCNPhysicsBehavior

MacOS10.10

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

方 法 说 明 备 注 SDK版本

+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB
初始化并返回物理滑块关节。关节分别将bodyA和body连接在锚和锚上 iOS11.4

+ (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor
初始化并返回物理滑块关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 iOS11.4
属 性 说 明 备 注 SDK版本

SCNPhysicsBody *bodyA
第一个主体连接到滑块接头 iOS11.4

SCNVector3 axisA
bodyA可以滑动的轴 iOS11.4

SCNVector3 anchorA
身体的附着点A iOS11.4

SCNPhysicsBody *bodyB
第二个主体连接到滑块接头 iOS11.4

SCNVector3 axisB
bodyB可以滑动的轴 iOS11.4

SCNVector3 anchorB
bodyB的附着点 iOS11.4

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

属 性 说 明 备 注 SDK版本

CGFloat minimumLinearLimit
iOS11.4

CGFloat maximumLinearLimit
iOS11.4

CGFloat minimumAngularLimit
iOS11.4

CGFloat maximumAngularLimit
iOS11.4

牛顿线性和角度电机

属 性 说 明 备 注 SDK版本

CGFloat motorTargetLinearVelocity
iOS11.4

CGFloat motorMaximumForce
iOS11.4

CGFloat motorTargetAngularVelocity
iOS11.4

CGFloat motorMaximumTorque
iOS11.4

SCNPhysicsConeTwistJoint:SCNPhysicsBehavior

MacOS10.10

SCNPhysicsConeTwistJoint

方 法 说 明 备 注 SDK版本

+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA frameA:(SCNMatrix4)frameA bodyB:(SCNPhysicsBody *)bodyB frameB:(SCNMatrix4)frameB
初始化并返回物理锥 – 扭曲关节。关节分别将bodyA和body连接在框架和框架上。 iOS11.4

+ (instancetype)jointWithBody:(SCNPhysicsBody *)body frame:(SCNMatrix4)frame
初始化并返回物理锥形扭曲关节。关节将“body”附加到“frame”指定的3d位置,并相对于拥有该body的节点 iOS11.4
属 性 说 明 备 注 SDK版本

SCNPhysicsBody *bodyA
第一个主体连接到滑块接头 iOS11.4

SCNMatrix4 frameA
iOS11.4

SCNPhysicsBody *bodyB
第二个主体连接到滑块接头 iOS11.4

SCNMatrix4 frameB
iOS11.4

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

属 性 说 明 备 注 SDK版本

CGFloat maximumAngularLimit1
iOS11.4

CGFloat maximumAngularLimit2
iOS11.4

沿锥轴的最大扭转角

属 性 说 明 备 注 SDK版本

CGFloat maximumTwistAngle
iOS11.4

SCNPhysicsVehicleWheel:NSObject

MacOS10.10

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

方 法 说 明 备 注 SDK版本

+ (instancetype)wheelWithNode:(SCNNode *)node
初始化并返回一个轮子 iOS11.4
属 性 说 明 备 注 SDK版本

SCNNode *node
接收器的节点 iOS11.4

CGFloat suspensionStiffness
车轮悬架刚度。默认为2.0 iOS11.4

CGFloat suspensionCompression
车轮悬架压缩。默认为4.4 iOS11.4

CGFloat suspensionDamping
车轮悬架减震。默认为2.3 iOS11.4

CGFloat maximumSuspensionTravel
车轮最大悬架行程以厘米为单位。默认为500 iOS11.4

CGFloat frictionSlip
车轮摩擦滑动系数。默认为1 iOS11.4

CGFloat maximumSuspensionForce
车轮最大悬挂力以牛顿为单位。默认为6000 iOS11.4

SCNVector3 connectionPosition
车轮连接点相对于底盘。默认为节点位置 iOS11.4

SCNVector3 steeringAxis
车轮底盘中的车轮转向轴。默认为(0,-1,0) iOS11.4

SCNVector3 axle
车轮底盘中的轮轴。默认为(-1,0,0) iOS11.4

CGFloat radius
车轮半径。默认为节点边界框​​的最大维度的一半 iOS11.4

CGFloat suspensionRestLength
车轮悬架休息长度。默认为1.6 iOS11.4

SCNPhysicsVehicle:SCNPhysicsBehavior

MacOS10.10

方 法 说 明 备 注 SDK版本

+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray<SCNPhysicsVehicleWheel *> *)wheels
iOS11.4

- (void)applyEngineForce:(CGFloat)value forWheelAtIndex:(NSInteger)index
在指定索引处对车轮施加力 iOS11.4

- (void)setSteeringAngle:(CGFloat)value forWheelAtIndex:(NSInteger)index
允许控制指定索引处车轮的方向。转向值以弧度表示,0表示直线前进 iOS11.4

- (void)applyBrakingForce:(CGFloat)value forWheelAtIndex:(NSInteger)index
在指定的索引处对车轮施加制动力 iOS11.4
属 性 说 明 备 注 SDK版本

CGFloat speedInKilometersPerHour
以每小时公里数表示的实际速度 iOS11.4

NSArray<SCNPhysicsVehicleWheel *> *wheels
车轮 iOS11.4

SCNPhysicsBody *chassisBody
车辆的底盘 iOS11.4

文件SCNTechnique.h

SCNTechnique : NSObject

SCNTechniqueSupport协议

属 性 说 明 备 注 SDK版本

SCNTechnique *technique
指定接收器的技术。默认为零 iOS11.4

文件SCNReferenceNode.h


#import <SceneKit/SCNReferenceNode.h>

SCNReferenceLoadingPolicy

iOS9.0

控制何时加载参考节点

常 量 说 明 备 注 SDK版本

SCNReferenceLoadingPolicyImmediate
iOS11.4

SCNReferenceLoadingPolicyOnDemand
iOS11.4

SCNReferenceNode:SCNNode

iOS9.0

引用外部文件的节点

方 法 说 明 备 注 SDK版本

- (nullable instancetype)initWithURL:(NSURL *)referenceURL
使用url创建引用节点 iOS11.4

- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
通过NSKeyedArchiver支持编码和解码 iOS11.4

+ (nullable instancetype)referenceNodeWithURL:(NSURL *)referenceURL
使用url创建引用节点 iOS11.4

- (void)load
如果尚未加载引用,则强制加载引用。将添加已解析的节点作为接收器的子节点 iOS11.4

- (void)unload
删除子节点并标记为已卸载 iOS11.4
属 性 说 明 备 注 SDK版本

NSURL *referenceURL
指定要解析的网址 iOS11.4

SCNReferenceLoadingPolicy loadingPolicy
指定何时加载引用。请参阅上面的SCNReferenceLoadingPolicy。默认为SCNReferenceLoadingPolicyImmediately iOS11.4

BOOL loaded
指示是否已加载引用的URL iOS11.4

文件SCNAudioSource.h

SCNAudioSource : NSObject <NSCopying, NSSecureCoding>

iOS9.0+

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

方 法 说 明 备 注 SDK版本

- (nullable instancetype)initWithFileNamed:(NSString *)name
方便初始化程序,它从主程序包中的指定音频资产创建AVAudioNode iOS11.4

- (nullable instancetype)initWithURL:(NSURL *)url
便利初始化程序,它从包含音频资产的URL创建AVAudioNode iOS11.4

+ (nullable instancetype)audioSourceNamed:(NSString *)fileName
方便类初始化程序缓存audioSources iOS11.4

- (void)load
在内存中加载和解压缩音频源。如果“shouldStream”设置为YES或者音频源已加载,则此方法无效 iOS11.4
属 性 说 明 备 注 SDK版本

BOOL positional
将音频源标记为位置,以便音频混合考虑相对于SCNSceneRenderer的当前侦听器节点的相对位置和速度。默认为YES iOS11.4

float volume
此音频缓冲区的默认音量。默认值为1.0(完整音量) iOS11.4

float rate
此音频缓冲区的默认速率。默认值为1.0(音频源的原始速率) iOS11.4

float reverbBlend
此音频缓冲区的默认reverbBlend。默认值为0.0(没有声音发送到混响) iOS11.4

BOOL loops
指定音频源是否应循环。默认为NO iOS11.4

BOOL shouldStream
指定是否应该流式传输音频源。默认为NO iOS11.4

SCNAudioPlayer : NSObject

iOS9.0

方 法 说 明 备 注 SDK版本

- (instancetype)init
iOS11.4

- (instancetype)initWithSource:(SCNAudioSource *)source
使用源启动音频播放器。大多数人应该使用audioPlayerWithSource,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 iOS11.4

- (instancetype)initWithAVAudioNode:(AVAudioNode *)audioNode
使用AVAudioNode初始化音频播放器。大多数人应该使用audioPlayerWithAVAudioNode,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 iOS11.4

+ (instancetype)audioPlayerWithSource:(SCNAudioSource *)source
使用源创建音频播放器 iOS11.4

+ (instancetype)audioPlayerWithAVAudioNode:(AVAudioNode *)audioNode
使用自定义AVAudioNode实例创建音频播放器 iOS11.4
属 性 说 明 备 注 SDK版本

void (^willStartPlayback)(void)
如果存在有效的音频源,则在播放开始时调用此块 iOS11.4

void (^didFinishPlayback)(void)
如果存在有效的音频源,则在播放停止时调用此块 iOS11.4

AVAudioNode *audioNode
audioNode。如果此播放器未使用自定义AVAudioNode进行初始化,则它包含内部场景工具包使用的内部音频播放器节点 iOS11.4

SCNAudioSource *audioSource
audioSource如果有的话 iOS11.4

SCNNode (SCNAudioSupport)

方 法 说 明 备 注 SDK版本

- (void)addAudioPlayer:(SCNAudioPlayer *)player
将音频播放器添加到节点并立即开始播放
iOS9.0
iOS11.4

- (void)removeAllAudioPlayers
从此节点中删除所有音频播放器并停止播放
iOS9.0
iOS11.4

- (void)removeAudioPlayer:(SCNAudioPlayer *)player
从此节点中删除给定的音频播放器并停止播放
iOS9.0
iOS11.4
属 性 说 明 备 注 SDK版本

NSArray<SCNAudioPlayer *> *audioPlayers
获取一个阵列,连接所有音频播放器并在此节点上播放
iOS9.0
iOS11.4

文件SCNHitTest.h


#import <SceneKit/SCNHitTest.h>

SCNHitTestSearchMode

iOS11.0

点击测试模式

常 量 说 明 备 注 SDK版本

SCNHitTestSearchModeClosest
找到最近的对象 iOS11.4

SCNHitTestSearchModeAll
所有找到的对象从最近到最远排序 iOS11.4

SCNHitTestSearchModeAny
找到第一个对象。这个对象不一定是最近的 iOS11.4

SCNHitTestOption

常 量 说 明 备 注 SDK版本

SCNHitTestClipToZRangeKey
如果设置为YES,则忽略当前视点的zNear / zFar范围剪切的对象。默认为YES iOS11.4

SCNHitTestBackFaceCullingKey
如果设置为YES,则忽略不面向相机的脸部。默认为YES iOS11.4

SCNHitTestBoundingBoxOnlyKey
如果设置为YES,则仅测试3D对象的边界框。默认为NO iOS11.4

SCNHitTestIgnoreChildNodesKey
确定是否忽略子节点。默认为NO iOS11.4

SCNHitTestRootNodeKey
指定用于命中测试的根节点。默认为场景的根节点 iOS11.4

SCNHitTestIgnoreHiddenNodesKey
确定是否应忽略隐藏节点。默认为YES
MacOS10.9
iOS11.4

SCNHitTestOptionCategoryBitMask
确定要测试的节点类别。默认为所有设置的位
iOS10.0
iOS11.4

SCNHitTestOptionSearchMode
确定搜索是否应该是详尽无遗的。默认为SCNHitTestSearchModeClosest
iOS11.0
iOS11.4

SCNHitTestFirstFoundOnlyKey
已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAny iOS11.4

SCNHitTestSortResultsKey
已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAll iOS11.4
#define SCNHitTestOptionFirstFoundOnly    SCNHitTestFirstFoundOnlyKey
#define SCNHitTestOptionSortResults       SCNHitTestSortResultsKey
#define SCNHitTestOptionClipToZRange      SCNHitTestClipToZRangeKey
#define SCNHitTestOptionBackFaceCulling   SCNHitTestBackFaceCullingKey
#define SCNHitTestOptionBoundingBoxOnly   SCNHitTestBoundingBoxOnlyKey
#define SCNHitTestOptionIgnoreChildNodes  SCNHitTestIgnoreChildNodesKey
#define SCNHitTestOptionRootNode          SCNHitTestRootNodeKey
#define SCNHitTestOptionIgnoreHiddenNodes SCNHitTestIgnoreHiddenNodesKey

SCNHitTestResult : NSObject

命中测试方法返回的结果

属 性 说 明 备 注 SDK版本

SCNNode *node
节点命中 iOS11.4

NSInteger geometryIndex
命中几何体的索引 iOS11.4

NSInteger faceIndex
命中面部的索引 iOS11.4

SCNVector3 localCoordinates
节点局部坐标系中的交点 iOS11.4

SCNVector3 worldCoordinates
世界坐标系中的交点 iOS11.4

SCNVector3 localNormal
节点局部坐标系中的交点法线 iOS11.4

SCNVector3 worldNormal
世界坐标系中的交点法线 iOS11.4

SCNMatrix4 modelTransform
交点的世界变换 iOS11.4

SCNNode *boneNode
骨节点命中。仅在节点命中附加了SCNSkinner时才可用
iOS10.0
iOS11.4
属 性 说 明 备 注 SDK版本

- (CGPoint)textureCoordinatesWithMappingChannel:(NSInteger)channel
对于给定的映射通道,返回交叉点处的纹理坐标 iOS11.4

文件SCNCameraController.h

SCNInteractionMode

iOS11.0

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

常 量 说 明 备 注 SDK版本

SCNInteractionModeFly
相对于向上矢量 iOS11.4

SCNInteractionModeOrbitTurntable
从角度累积以绝对方向围绕目标旋转。向上没有考虑向量 iOS11.4

SCNInteractionModeOrbitAngleMapping
通过将2D屏幕坐标映射到球面坐标来围绕目标旋转 iOS11.4

SCNInteractionModeOrbitCenteredArcball
iOS11.4

SCNInteractionModeOrbitArcball
通过将2D屏幕坐标映射到半球来围绕目标旋转 iOS11.4

SCNInteractionModePan
X/Y上的相机空间转换 iOS11.4

SCNInteractionModeTruck
X/Z上的相机空间转换 iOS11.4

SCNCameraControllerDelegate协议

iOS11.0

方 法 说 明 备 注 SDK版本

- (void)cameraInertiaWillStartForController:(SCNCameraController *)cameraController
可选 iOS11.4

- (void)cameraInertiaDidEndForController:(SCNCameraController *)cameraController
可选 iOS11.4

SCNCameraController : NSObject

iOS11.0

属 性 说 明 备 注 SDK版本

id <SCNCameraControllerDelegate> delegate
iOS11.4

SCNNode *pointOfView
iOS11.4

SCNInteractionMode interactionMode
iOS11.4

SCNVector3 target
轨道旋转的世界空间中的摄像机目标 iOS11.4

BOOL automaticTarget
在beginInteraction中自动更新目标。默认为NO iOS11.4

SCNVector3 worldUp
世界空间中的向上矢量用作SCNInteractionModeFly和SCNInteractionModeOrbitTurntable相机模式的参考。默认为UnitY(0,1,0) iOS11.4

BOOL inertiaEnabled
设置为YES以在endInteraction上启用惯性。默认为NO iOS11.4

float inertiaFriction
摩擦系数适用于惯性。默认为0.05 iOS11.4

BOOL inertiaRunning
如果惯性正在运行,则返回YES iOS11.4

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

属 性 说 明 备 注 SDK版本

float minimumVerticalAngle
iOS11.4

float maximumVerticalAngle
iOS11.4

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

属 性 说 明 备 注 SDK版本

float minimumHorizontalAngle
iOS11.4

float maximumHorizontalAngle
iOS11.4
方 法 说 明 备 注 SDK版本

- (void)translateInCameraSpaceByX:(float)deltaX Y:(float)deltaY Z:(float)deltaX
沿着局部X / Y / Z轴平移相机 iOS11.4

- (void)frameNodes:(NSArray<SCNNode *> *)nodes
将摄像机移动到所有节点的边界球体完全可见的位置。还设置相机目标具有边界球体的中心 iOS11.4

- (void)rotateByX:(float)deltaX Y:(float)deltaY
旋转三角形是度 iOS11.4

- (void)rollBy:(float)delta aroundScreenPoint:(CGPoint)point viewport:(CGSize)viewport
围绕给定的屏幕空间点旋转相机。Delta是 iOS11.4

- (void)dollyBy:(float)delta onScreenPoint:(CGPoint)point viewport:(CGSize)viewport
通过屏幕空间点沿轴移动相机进行缩放。 iOS11.4

- (void)rollAroundTarget:(float)delta
通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 iOS11.4

- (void)dollyToTarget:(float)delta
通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 iOS11.4

- (void)clearRoll
如果有的话清除相机胶卷 iOS11.4

- (void)stopInertia
停止当前的惯性 iOS11.4

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

方 法 说 明 备 注 SDK版本

- (void)beginInteraction:(CGPoint)location withViewport:(CGSize)viewport
iOS11.4

- (void)continueInteraction:(CGPoint)location withViewport:(CGSize)viewport sensitivity:(CGFloat)sensitivity
iOS11.4

- (void)endInteraction:(CGPoint)location withViewport:(CGSize)viewport velocity:(CGPoint)velocity
iOS11.4

文件SCNJavascript.h

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

方 法 说 明 备 注 SDK版本

void SCNExportJavaScriptModule(JSContext *context)
iOS11.4