SceneKit中文文档

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

文件 SceneKitTypes.h

#import <SceneKit/SceneKitTypes.h>

内容简介:

SCNActionTimingMode 动画时间模式

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

SCNColorMask 颜色遮罩

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

Vectors 矢量

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

Quaternions 四元数

typedef SCNVector4 SCNQuaternion;

Matrices 矩阵

矩阵详解

m11m21m31m41m12m22m32m42m13m23m33m43m14m24m34m44(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转SCNVector3iOS11.4
SCNVector3ToGLKVector3(SCNVector3 vector)SCNVector3转GLKVector3iOS11.4
SCNVector4FromGLKVector4(GLKVector4 vector)GLKVector4转SCNVector4iOS11.4
SCNVector4ToGLKVector4(SCNVector4 vector)SCNVector4转GLKVector4iOS11.4
SCNMatrix4ToGLKMatrix4(SCNMatrix4 mat)SCNMatrix4转GLKMatrix4iOS11.4
SCNMatrix4FromGLKMatrix4(GLKMatrix4 mat)GLKMatrix4转SCNMatrix4iOS11.4

SIMD桥接

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

NSValue加成

方 法说 明SDK版本
+ (NSValue *)valueWithSCNVector3:(SCNVector3)vSCNVector3转NSValueiOS11.4
+ (NSValue *)valueWithSCNVector4:(SCNVector4)vSCNVector4转NSValueiOS11.4
+ (NSValue *)valueWithSCNMatrix4:(SCNMatrix4)vSCNMatrix4转NSValueiOS11.4
属 性说 明SDK版本
SCNVector3 SCNVector3ValueSCNVector3iOS11.4
SCNVector4 SCNVector4ValueSCNVector4iOS11.4
SCNMatrix4 SCNMatrix4ValueSCNMatrix4iOS11.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.0iOS11.4
- (void)removeAllAnimations移除所有动画iOS11.4
- (void)removeAnimationForKey:(NSString *)key移除给定标识的动画iOS11.4
- (nullable SCNAnimationPlayer *)animationPlayerForKey:(NSString *)key用给定标识获取动画播放器iOS11.0iOS11.4
- (void)removeAnimationForKey:(NSString *)key blendOutDuration:(CGFloat)duration移除指定标识的动画iOS11.0iOS11.4
- (void)removeAnimationForKey:(NSString *)key fadeOutDuration:(CGFloat)duration移除指定标识的动画已废弃(推荐使用-removeAnimationForKey:blendOutDuration:)iOS8.0-11.0iOS11.4
- (nullable CAAnimation *)animationForKey:(NSString *)key获取给定标识的动画已废弃(推荐使用-animationPlayerForKey:)iOS8.0-11.0iOS11.4
- (void)pauseAnimationForKey:(NSString *)key暂停指定标识动画已废弃(推荐使用-[SCNAnimationPlayer setPaused:])iOS8.0-11.0iOS11.4
- (void)resumeAnimationForKey:(NSString *)key继续给定标识的动画已废弃(推荐使用-[SCNAnimationPlayer setPaused:])iOS8.0-11.0iOS11.4
- (void)setSpeed:(CGFloat)speed forAnimationKey:(NSString *)key更新指定标识的动画速度已废弃(推荐使用-[SCNAnimationPlayer setSpeed:])iOS10.0-11.0iOS11.4
- (BOOL)isAnimationForKeyPaused:(NSString *)key是否指定标识的动画被暂停已废弃(推荐使用-[SCNAnimationPlayer paused])iOS8.0-11.0iOS11.4

SCNAnimation

属 性说 明SDK 版本
NSTimeInterval duration动画时长(单位秒,默认是0)iOS11.4
NSString *keyPath动画keyiOS11.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初始化的SCNAnimationiOS11.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版本
SCNRenderingAPIMetalMetaliOS11.4
SCNRenderingAPIOpenGLES2OpenGLES2iOS11.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.0iOS11.4
SCNDebugOptionShowSkeletons显示皮肤骨骼iOS11.0iOS11.4
SCNDebugOptionShowCreases显示细分折痕iOS11.0iOS11.4
SCNDebugOptionShowConstraints显示滑块约束iOS11.0iOS11.4
SCNDebugOptionShowCameras显示相机iOS11.0iOS11.4

SCNSceneRenderer协议

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

SCNSceneRendererDelegate协议

方 法说 明备 注SDK版本
- (void)renderer:(id <SCNSceneRenderer>)renderer updateAtTime:(NSTimeInterval)time实现此功能以执行每帧游戏逻辑。在评估任何动画和动作并模拟任何物理之前,每帧只调用一次。MacOS10.10iOS11.4
- (void)renderer:(id <SCNSceneRenderer>)renderer didApplyAnimationsAtTime:(NSTimeInterval)time一旦场景渲染器确实应用了动画,就在代理上调用。MacOS10.10iOS11.4
- (void)renderer:(id <SCNSceneRenderer>)renderer didSimulatePhysicsAtTime:(NSTimeInterval)time一旦场景渲染器确实模拟了物理,就在代理上调用。MacOS10.10iOS11.4
- (void)renderer:(id <SCNSceneRenderer>)renderer didApplyConstraintsAtTime:(NSTimeInterval)time一旦场景渲染器确实应用了约束,就在代理上调用。iOS11.0iOS11.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
SCNBufferFrequencyPerShadableSCNMaterial or SCNGeometryiOS11.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.9iOS11.4
- (void)handleUnbindingOfSymbol:(NSString *)symbol usingBlock:(nullable SCNBindingBlock)block设置要在渲染时调用的块,以取消绑定接收器SCNProgram的指定符号的值。此方法对着色器修改器中声明的符号无效。MacOS10.9iOS11.4

SCNProgram

属 性说 明备 注SDK版本
NSString *vertexShader顶点着色iOS11.4
NSString *fragmentShader片元着色iOS11.4
NSString *vertexFunctionName顶点函数名iOS9.0iOS11.4
NSString *fragmentFunctionName片元函数名iOS9.0iOS11.4
BOOL opaque确定接收器的片段是否不透明MacOS10.10iOS11.4
id <SCNProgramDelegate> delegate接收器的代理iOS11.4
id <MTLLibrary> libraryMetal库iOS9.0iOS11.4
方 法说 明备 注SDK版本
- (void)handleBindingOfBufferNamed:(NSString *)name frequency:(SCNBufferFrequency)frequency usingBlock:(SCNBufferBindingBlock)block设置要在渲染时调用的块,以绑定接收器程序的指定符号的缓冲区iOS9.0iOS11.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 autoSwitchToFreeCameraiOS11.4
BOOL allowsTranslationiOS11.4
CGFloat flyModeVelocity飞行模式速率(m/s)iOS11.4
CGFloat panSensitivityiOS11.4
CGFloat truckSensitivityiOS11.4
CGFloat rotationSensitivityiOS11.4

SCNView

属 性说 明备 注SDK版本
SCNScene *scene场景iOS11.4
BOOL rendersContinuously设置为YES时,视图会以显示链接帧速率不断重绘。设置为NO时,视图将仅在接收器场景中的某些内容发生变化或动画时重绘。默认为NO。iOS11.4
BOOL allowsCameraControl一个布尔值,用于确定用户是否可以操纵用于渲染场景的视点。iOS11.4
id <SCNCameraControlConfiguration> cameraControlConfiguration描述导航默认摄像机控制器的事件处理程序的当前配置的对象。iOS11.0iOS11.4
SCNCameraController* defaultCameraController当allowCameraController设置为YES时,返回用于驱动当前视点的默认SCNCameraController。iOS11.0iOS11.4
NSInteger preferredFramesPerSecond您希望视图重绘其内容的速率。MacOS10.12iOS11.4
EAGLContext *eaglContext指定与接收器关联的EAGL上下文。iOS11.4
SCNAntialiasingMode antialiasingMode在iOS上默认为SCNAntialiasingModeMultisampling4X,在iOS上默认为SCNAntialiasingModeNoneMacOS10.10iOS11.4
方 法说 明备 注SDK版本
- (instancetype)initWithFrame:(CGRect)frame options:(nullable NSDictionary<NSString *, id> *)options初始化并返回具有指定框架矩形的新分配的SCNView对象iOS11.4
- (UIImage *)snapshot绘制视图的内容并将其作为新图像对象返回MacOS10.10iOS11.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.10iOS11.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.0iOS11.4
- (void)renderAtTime:(CFTimeInterval)time viewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor更新并在指定时间(系统时间)视口,金属命令缓冲区和传递描述符中呈现接收器的场景iOS9.0iOS11.4
- (void)renderAtTime:(CFTimeInterval)time更新并在指定时间(系统时间)渲染接收器的场景MacOS10.10iOS11.4
- (void)updateAtTime:(CFTimeInterval)time在指定时间(系统时间)更新接收器的场景iOS11.0iOS11.4
- (void)renderWithViewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor使用指定的视口,Metal命令缓冲区和传递描述符呈现接收器的场景iOS11.0iOS11.4
- (UIImage *)snapshotAtTime:(CFTimeInterval)time withSize:(CGSize)size antialiasingMode:(SCNAntialiasingMode)antialiasingMode将指定时间(系统时间)的接收器场景渲染成图像iOS10.0iOS11.4
- (void)updateProbes:(NSArray<SCNNode*> *)lightProbes atTime:(CFTimeInterval)time通过在指定时间计算接收器场景中的入射辐照度来更新指定的探测器iOS10.0iOS11.4
- (void)render在当前系统时间呈现接收器的场景已废弃(请使用-renderAtTime:withEncoder:pass:commandQueue:)iOS8.0-9.0iOS11.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.9iOS11.4
SCNMaterialProperty *lightingEnvironment指定接收器的基于图像的照明环境(IBL)iOS10.10iOS11.4
CGFloat fogStartDistance指定接收器的雾起始距离。动画。默认为0。MacOS10.10iOS11.4
CGFloat fogEndDistance指定接收器的雾端距离。动画。默认为0。MacOS10.10iOS11.4
CGFloat fogDensityExponent指定接收器的雾功率指数。动画。默认为1。MacOS10.10iOS11.4
id fogColor指定接收器的雾色(NSColor或CGColorRef)。动画。默认为白色。MacOS10.10iOS11.4
BOOL paused控制场景是否暂停。默认为NO。MacOS10.10iOS11.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.9iOS11.4
+ (nullable instancetype)sceneNamed:(NSString *)name inDirectory:(nullable NSString *)directory options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options创建并返回与指定文件名关联的场景。MacOS10.10iOS11.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将场景写入指定的URLiOS10.0iOS11.4

SCNSceneExportDelegate协议

方 法说 明备 注SDK版本
- (nullable NSURL *)writeImage:(UIImage *)image withSceneDocumentURL:(NSURL *)documentURL originalImageURL:(nullable NSURL *)originalImageURL在委托上调用以编写引用的图像并返回目标URL。iOS10.0iOS11.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
SCNSceneSourceAssetUnitMeterKeyNSNumber,封装浮点值,表示单位是多少米。例如,如果名称是\ @“厘米”,那么这将是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.0iOS11.4
SCNSceneSourceAssetDirectoryURLsKey传递一个目录URL数组,其中SceneKit应该查找资源iOS11.4
SCNSceneSourceOverrideAssetURLsKey传递YES以覆盖具有通过SCNSceneSourceAssetDirectoryURLsKey传递的目录URL的资产URL。iOS11.4
SCNSceneSourceStrictConformanceKey传递YES以严格的方式解释文件的3D格式。iOS11.4
SCNSceneSourceConvertUnitsToMetersKey传递要转换场景的单位(以米为单位)。iOS11.0iOS11.4
SCNSceneSourceConvertToYUpKey如果场景当前具有不同的向上轴,则应将场景转换为Y,否则通过YES。iOS11.0iOS11.4
SCNSceneSourceAnimationImportPolicyKey传递以下值之一以指定如何处理已加载的动画。MacOS10.10iOS11.4
SCNSceneSourceLoadingOptionPreserveOriginalTopology传递YES以使SceneKit保留原始拓扑,而不是在加载时进行三角测量。iOS10.0iOS11.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的格式,发生错误的元素的IDiOS11.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版本
SCNSceneSourceStatusErrorSceneKit尝试加载场景时发生错误iOS11.4
SCNSceneSourceStatusParsingSceneKit已开始反序列化源文件iOS11.4
SCNSceneSourceStatusValidatingSceneKit已经开始验证场景文件的格式iOS11.4
SCNSceneSourceStatusProcessingSceneKit已经开始从场景文件的内容生成场景图形对象iOS11.4
SCNSceneSourceStatusCompleteSceneKit已成功加载场景文件的内容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”类找到的IDiOS11.4
- (NSArray<id> *)entriesPassingTest:(NS_NOESCAPE BOOL (^)(id entry, NSString *identifier, BOOL *stop))predicate返回接收器库中通过给定块中的测试的条目MacOS10.9iOS11.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.0iOS11.4
SCNMovabilityHintMovable该节点预计会随着时间的推移而移动iOS10.0iOS11.4

SCNNodeFocusBehavior 控制焦点(UIFocus)行为

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

SCNNode

创建节点
方 法说 明备 注SDK版本
+ (instancetype)node创建并初始化一个节点实例iOS11.4
+ (SCNNode *)nodeWithGeometry:(nullable SCNGeometry *)geometry用指定几何体附件创建并初始化一个节点实例iOS11.4
拷贝节点
方 法说 明备 注SDK版本
- (instancetype)clone返回接收者的副本。返回的实例是自动释放的iOS11.4
- (instancetype)flattenedClone返回包含几何的节点的克隆,该几何连接节点层次结构中包含的所有几何。返回的克隆是自动释放的。MacOS10.9iOS11.4
管理节点属性
属 性说 明备 注SDK版本
NSString *name确定接收器的名称iOS11.4
SCNLight *light确定连接到接收器的光照iOS11.4
SCNCamera *camera确定连接到接收器的相机iOS11.4
SCNGeometry *geometry返回附加到接收器的几何体iOS11.4
SCNSkinner *skinner返回附加到接收器的skinnerMacOS10.9iOS11.4
SCNMorpher *morpher返回连接到接收器的变形器MacOS10.9iOS11.4
修改节点变换
属 性 与 方 法说 明备 注SDK版本
SCNMatrix4 transform确定接收器的变换。动画。
SCNMatrix4 worldTransform确定接收器在世界空间中的变换(相对于场景的根节点)。动画。iOS11.0iOS11.4
- (void)setWorldTransform:(SCNMatrix4)worldTransformiOS11.0iOS11.4
SCNVector3 position确定接收器的位置。动画iOS11.4
SCNVector3 worldPosition确定接收器在世界空间中的位置(相对于场景的根节点)iOS11.0iOS11.4
SCNVector4 rotation确定接收器的旋转。动画。iOS11.4
SCNQuaternion orientation将接收器的方向确定为单位四元数。动画MacOS10.10iOS11.4
SCNQuaternion worldOrientation确定接收器在世界空间中的方向(相对于场景的根节点)。动画iOS11.0iOS11.4
SCNVector3 eulerAngles确定接收器的欧拉角。动画MacOS10.10iOS11.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.10iOS11.4
SCNMovabilityHint movabilityHint与SceneKit的渲染系统沟通,了解如何在场景中移动内容;它不会影响您更改节点位置或向节点添加动画或物理的能力。默认SCNMovabilityHintFixed。iOS10.0iOS11.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.10iOS11.4
- (void)enumerateHierarchyUsingBlock:(NS_NOESCAPE void (^)(SCNNode *node, BOOL *stop))block在接收器及其子节点上执行给定块iOS10.0iOS11.4
在节点坐标系之间转换
方 法说 明备 注SDK版本
- (SCNVector3)convertPosition:(SCNVector3)position toNode:(nullable SCNNode *)node将位置从接收器的坐标系转换为指定节点的位置MacOS10.9iOS11.4
- (SCNVector3)convertPosition:(SCNVector3)position fromNode:(nullable SCNNode *)node将位置从给定节点的坐标系转换为接收器的坐标系MacOS10.9iOS11.4
- (SCNVector3)convertVector:(SCNVector3)vector toNode:(nullable SCNNode *)node将矢量从给定节点的坐标系转换为接收器的坐标系iOS11.0iOS11.4
- (SCNVector3)convertVector:(SCNVector3)vector fromNode:(nullable SCNNode *)node将矢量从给定节点的坐标系转换为接收器的坐标系iOS11.0iOS11.4
- (SCNMatrix4)convertTransform:(SCNMatrix4)transform toNode:(nullable SCNNode *)node将转换从接收器的坐标系转换为指定节点的转换MacOS10.9iOS11.4
- (SCNMatrix4)convertTransform:(SCNMatrix4)transform fromNode:(nullable SCNNode *)node将变换从给定节点的坐标系转换为接收器的坐标系MacOS10.9iOS11.4
管理SCNNode的物理主体
属 性说 明备 注SDK版本
SCNPhysicsBody *physicsBody接收器物理主体的描述MacOS10.10iOS11.4
管理节点的物理场
属 性说 明备 注SDK版本
SCNPhysicsField *physicsField接收器物理场的描述MacOS10.10iOS11.4
管理节点的约束
属 性说 明备 注SDK版本
NSArray<SCNConstraint *> *constraints应用于接收器的SCNConstraint数组MacOS10.9iOS11.4
访问节点的过滤器
属 性说 明备 注SDK版本
NSArray<CIFilter *> *filters一组核心图像过滤器,应用于接收器及其子节点的渲染。动画iOS11.4
访问演示节点
属 性说 明备 注SDK版本
SCNNode *presentationNode返回表示节点iOS11.4
暂停
属 性说 明备 注SDK版本
BOOL paused控制节点的动作和动画是否更新或暂停。默认为NO。MacOS10.10iOS11.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.9iOS11.4
节点类别
属 性说 明备 注SDK版本
NSUInteger categoryBitMask定义接收器所属的逻辑“类别”。默认为1MacOS10.10iOS11.4
UIFocus支持
属 性说 明备 注SDK版本
SCNNodeFocusBehavior focusBehavior控制接收器关于UIFocus系统的行为。默认为SCNNodeFocusBehaviorNoneiOS11.0iOS11.4

SCNNode(变换)

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

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

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

SCNNode(SIMD)

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

文件SCNLight.h

#import <SceneKit/SCNLight.h>

内容简介

光照类型(SCNLightType)

属 性说 明备 注SDK版本
SCNLightTypeAmbient环境光iOS11.4
SCNLightTypeOmni全向光iOS11.4
SCNLightTypeDirectional定向光iOS11.4
SCNLightTypeSpot点光iOS11.4
SCNLightTypeIESIES光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.10iOS11.4
CGSize shadowMapSize指定每个片元采样数量来计算阴影映射。默认是0MacOS10.10iOS11.4
SCNShadowMode shadowMode投射阴影模式。默认是SCNShadowModeForwardMacOS10.10
CGFloat shadowBias指定要应用于阴影贴图以校正痤疮假象的校正。它乘以特定于实现的值以创建恒定的深度偏移。默认为1.0MacOS10.10iOS11.4
BOOL automaticallyAdjustsShadowProjection指定阴影贴图投影是应由用户自动完成还是手动完成。默认为YESiOS11.0iOS11.4
CGFloat maximumShadowDistance指定距离视点的最大距离,从该视点不会计算接收器光的阴影。默认为100.0iOS11.0iOS11.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指定用于从定向光渲染到阴影贴图的正交比例。默认为1MacOS10.10iOS11.4
CGFloat zNear指定灯光和投射阴影的曲面之间的最小距离。如果表面比这个最小距离更接近光线,那么表面将不会被遮蔽。近值必须不等于零。动画。默认为1MacOS10.10iOS11.4
CGFloat zFar指定灯光和可见曲面之间的最大距离以投射阴影。如果表面离光线的距离超过该最大距离,则表面不会被遮蔽。动画。默认为100MacOS10.10iOS11.4
衰减
属 性说 明备 注SDK版本
CGFloat attenuationStartDistance衰减开始的距离(仅限Omni或Spot光类型)。动画。默认为0MacOS10.10iOS11.4
CGFloat attenuationEndDistance衰减结束的距离(仅限Omni或Spot光类型)。动画。默认为0MacOS10.10iOS11.4
CGFloat attenuationFalloffExponent指定起始和结束衰减距离之间的衰减。 0表示恒定衰减,1表示线性衰减,2表示二次衰减,但任何正值均可使用(仅限Omni或Spot光类型)。动画。默认为2MacOS10.10iOS11.4
点光参数
属 性说 明备 注SDK版本
CGFloat spotInnerAngle光点方向与点亮元素之间的角度,低于该角度,照明处于全强度。动画。默认为0MacOS10.10iOS11.4
CGFloat spotOuterAngle点光源与点亮元件之间的角度,在此之后照明处于零强度。动画。默认为45度MacOS10.10iOS11.4
其他
属 性说 明备 注SDK版本
SCNMaterialProperty *gobo指定灯光的遮光板(或“cookie”),用于控制发光的形状。默认为零MacOS10.9iOS11.4
NSURL *IESProfileURL指定IES文件,从中确定照明的形状,方向和强度。默认为零iOS10.0iOS11.4
NSUInteger categoryBitMask确定接收器将点亮的节点类别。默认为所有位设置MacOS10.10iOS11.4
NSData *sphericalHarmonicsCoefficients接收器的球谐函数系数iOS11.0iOS11.4

文件SCNCamera

#import <SceneKit/SCNCamera.h>

内容简介

SCNCameraProjectionDirection

属 性说 明备 注SDK版本
SCNCameraProjectionDirectionVerticaliOS11.4
SCNCameraProjectionDirectionHorizontaliOS11.4

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

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

景深

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

SCNFillMode

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

SCNCullMode

属 性说 明备 注SDK版本
SCNCullModeBackiOS11.4
SCNCullModeFrontiOS11.4

* #define SCNCullBack SCNCullModeBack
* #define SCNCullFront SCNCullModeFront

SCNTransparencyMode

属 性说 明备 注SDK版本
SCNTransparencyModeAOne从Alpha通道获取透明度信息。值1.0是不透明的iOS11.4
SCNTransparencyModeRGBZero忽略Alpha通道并从红色,绿色和蓝色通道的亮度中 获取透明度信息。值0.0是不透明的iOS11.4
SCNTransparencyModeSingleLayer确保正确绘制一层透明度iOS11.0iOS11.4
SCNTransparencyModeDualLayer确保正确排序和绘制两层透明度。当您想要同时看到正面和背面时,这应该用于透明凸面对象,如立方体和球体iOS11.0iOS11.4
SCNTransparencyModeDefaultSCNTransparencyModeAOneiOS11.0iOS11.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 *transparenttransparent属性指定材质的透明区域iOS11.4
SCNMaterialProperty *multiplymultiply属性指定用于将输出片段与其相乘的颜色或图像。计算的片段与乘法值相乘以产生最终片段。此属性可用于阴影贴图,淡出或着色3d对象iOS11.4
SCNMaterialProperty *normalnormal属性指定曲面方向iOS11.4
SCNMaterialProperty *displacementiOS11.0iOS11.4
SCNMaterialProperty *ambientOcclusionambientOcclusion属性指定曲面的环境光遮挡。环境遮挡与环境光相乘,然后将结果添加到照明贡献中。此属性对没有环境光的场景没有视觉影响。设置环境光遮挡贴图时,将忽略环境属性iOS9.0iOS11.4
SCNMaterialProperty *selfIlluminationselfIllumination属性指定添加到曲面的光照贡献的纹理或颜色。设置selfIllumination时,将忽略发射属性iOS9.0iOS11.4
SCNMaterialProperty *metalness金属属性指定材料表面的金属化程度。较低的值(较暗的颜色)使材料看起来更像电介质表面。较高的值(较亮的颜色)会使表面看起来更金属。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性iOS10.0iOS11.4
SCNMaterialProperty *roughness粗糙度属性指定表面的表观光滑度。较低的值(较暗的颜色)会使材质看起来有光泽,并具有明确定义的镜面高光。较高的值(较亮的颜色)会使镜面反射高光扩散,并使材料的漫反射特性变得更具逆向反射性。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性iOS10.0iOS11.4
CGFloat shininess指定接收器的光泽度值。默认为1.0。动画iOS11.4
CGFloat transparency确定接收器的照明模型。请参阅上面的照明模型列表。默认为SCNLightingModelBlinniOS10.0iOS11.4
BOOL litPerPixel确定接收器是否按每个像素点亮。默认为YES。动画iOS11.4
BOOL doubleSided确定接收器是否为双面。默认为NO。动画iOS11.4
SCNFillMode fillMode确定如何光栅化接收器的基元。默认为SCNFillModeFilliOS11.0iOS11.4
SCNCullMode cullMode确定接收器的剔除模式。默认为SCNCullBack。动画iOS11.4
SCNTransparencyMode transparencyMode确定接收器的透明度模式。有关透明度模式,请参见上文。默认为SCNTransparencyModeDefaultiOS11.4
BOOL locksAmbientWithDiffuse使ambient属性自动匹配diffuse属性。默认为YES。动画iOS11.4
BOOL writesToDepthBuffer确定接收器在渲染时是否写入深度缓冲区。默认为YESiOS11.4
SCNColorMask colorBufferWriteMask确定接收器在渲染时是否写入颜色缓冲区。默认为SCNColorMaskAlliOS11.0iOS11.4
BOOL readsFromDepthBuffer确定接收器在渲染时是否从深度缓冲区读取。默认为YESMacOS10.9iOS11.4
CGFloat fresnelExponent指定接收者的菲涅耳指数值。默认为0.0。动画MacOS10.9iOS11.4
SCNBlendMode blendMode指定接收器的混合模式。默认为SCNBlendModeAlphaiOS9.0iOS11.4

文件SCNMaterialProperty.h

#import <SceneKit/SCNMaterialProperty.h>

内容简介

SCNFilterMode(过滤模式)

属 性说 明备 注SDK版本
SCNFilterModeNoneMacOS10.9iOS11.4
SCNFilterModeNearestMacOS10.9iOS11.4
SCNFilterModeLinearMacOS10.9iOS11.4

SCNWrapeMode(包裹模式)

属 性说 明备 注SDK版本
SCNWrapModeClampMacOS10.9iOS11.4
SCNWrapModeRepeatMacOS10.9iOS11.4
SCNWrapModeClampToBorderMacOS10.9iOS11.4
SCNWrapModeMirrorMacOS10.9iOS11.4

SCNMaterialProperty(SCNMaterial插槽的内容)

方 法说 明备 注SDK版本
+ (instancetype)materialPropertyWithContents:(id)contents使用指定的内容创建并初始化属性实例MacOS10.9iOS11.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.9iOS11.4
SCNFilterMode minificationFilter指定呈现内容时使用的过滤器类型(在`contents’属性中指定)iOS11.4
SCNFilterMode magnificationFilter指定呈现内容时使用的过滤器类型(在`contents’属性中指定)iOS11.4
SCNFilterMode mipFilter指定在缩小期间使用的mipmap过滤器iOS11.4
SCNMatrix4 contentsTransform确定接收者的内容变换。动画iOS11.4
SCNWrapMode wrapS确定接收器的s纹理坐标的包裹模式。默认为SCNWrapModeClampiOS11.4
SCNWrapMode wrapT确定t纹理坐标的接收器换行模式。默认为SCNWrapModeClampiOS11.4
id borderColor确定接收器的边框颜色(CGColorRef或UIColor)。动画已废弃 iOS8.0-9.0iOS11.4
NSInteger mappingChannel确定接收器的映射通道。默认为0iOS11.4
SCNColorMask textureComponents指定要在着色器中采样的纹理组件。对于displa属性,默认为SCNColorMaskRed;对于其他属性,默认为SCNColorMaskAlliOS11.0iOS11.4
CGFloat maxAnisotropy指定接收器的最大各向异性。默认为1.0MacOS10.9iOS11.4

文件SCNGeometry.h

#import <SceneKit/SCNGeometry.h>

内容简介

SCNGeometryPrimitiveType

属 性说 明备 注SDK版本
SCNGeometryPrimitiveTypeTrianglesiOS11.4
SCNGeometryPrimitiveTypeTriangleStripiOS11.4
SCNGeometryPrimitiveTypeLineiOS11.4
SCNGeometryPrimitiveTypePointiOS11.4
SCNGeometryPrimitiveTypePolygoniOS10.0iOS11.4

SCNGeometrySourceSemantic

属 性说 明备 注SDK版本
SCNGeometrySourceSemanticVertexiOS11.4
SCNGeometrySourceSemanticNormaliOS11.4
SCNGeometrySourceSemanticColoriOS11.4
SCNGeometrySourceSemanticTexcoordiOS11.4
SCNGeometrySourceSemanticTangentiOS10.0iOS11.4
SCNGeometrySourceSemanticVertexCreaseMacOS10.10iOS11.4
SCNGeometrySourceSemanticEdgeCreaseMacOS10.10iOS11.4
SCNGeometrySourceSemanticBoneWeightsMacOS10.10iOS11.4
SCNGeometrySourceSemanticBoneIndicesMacOS10.10iOS11.4

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

方 法说 明备 注SDK版本
+ (instancetype)geometry创建并返回一个空的几何体对象MacOS10.9iOS11.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确定几何体的第一个材质。如果几何体没有材质,则返回niliOS11.4
NSArray<SCNGeometrySource *> *geometrySources接收器的几何源阵列MacOS10.10iOS11.4
NSArray<SCNGeometryElement *> *geometryElements接收器的几何元素数组MacOS10.10iOS11.4
NSInteger geometryElementCount返回几何所拥有的几何元素的数量iOS11.4
NSArray<SCNLevelOfDetail *> *levelsOfDetail确定接收器的详细程度。默认为nilMacOS10.9iOS11.4
SCNGeometryTessellator *tessellator指定如何在GPU上的渲染时对几何体进行细分。默认为零iOS11.0iOS11.4
NSUInteger subdivisionLevel指定接收器的细分级别。默认为0MacOS10.10iOS11.4
BOOL wantsAdaptiveSubdivision指定细分是自适应还是统一。默认为YESiOS11.0iOS11.4
SCNGeometryElement *edgeCreasesElement指定控制细分的边缘折痕。默认为零MacOS10.10iOS11.4
SCNGeometrySource *edgeCreasesSource指定edgeCreasesElement指定的边的折痕值。默认为nilMacOS10.10iOS11.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)countiOS11.4
- (void)renderer:(id <SCNSceneRenderer>)aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)timeiOS11.4
+ (instancetype)geometrySourceWithBuffer:(id <MTLBuffer>)mtlBuffer vertexFormat:(MTLVertexFormat)vertexFormat semantic:(SCNGeometrySourceSemantic)semantic vertexCount:(NSInteger)vertexCount dataOffset:(NSInteger)offset dataStride:(NSInteger)strideiOS9.0iOS11.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.0iOS11.4
NSInteger bytesPerIndex表示索引值的字节数iOS11.4
CGFloat pointSize指定本地空间中的点的大小。默认为1iOS11.0iOS11.4
CGFloat minimumPointScreenSpaceRadius指定屏幕空间中的最小大小(以像素为单位)。默认为1iOS11.0iOS11.4
CGFloat maximumPointScreenSpaceRadius指定屏幕空间中的最大大小(以像素为单位)。默认为1iOS11.0iOS11.4

SCNTessellationSmoothingMode

常 量说 明备 注SDK版本
SCNTessellationSmoothingModeNoneiOS11.4
SCNTessellationSmoothingModePNTrianglesiOS11.4
SCNTessellationSmoothingModePhongiOS11.4

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

属 性说 明备 注SDK版本
CGFloat tessellationFactorScale指定应用于每个修补程序细分因子的比例因子。默认为1iOS11.4
MTLTessellationPartitionMode tessellationPartitionMode指定细分分区模式。默认为MTLTessellationPartitionModeIntegeriOS11.4
BOOL adaptive指定曲面细分应该是统一的还是自适应的。默认为NOiOS11.4
BOOL screenSpace指定是否应在screenSpace中调整曲面细分级别。默认为NOiOS11.4
CGFloat edgeTessellationFactor指定边缘细分因子。默认为1iOS11.4
CGFloat insideTessellationFactor指定内部曲面细分因子。默认为1iOS11.4
CGFloat maximumEdgeLength指定最大边长。默认为1iOS11.4
SCNTessellationSmoothingMode smoothingMode默认为SCNTessellationSmoothingModeNoneiOS11.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.9iOS11.4
NSInteger cornerSegmentCount圆角的细分数量。动画MacOS10.9iOS11.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.0iOS11.4
CGFloat width沿X轴的地板范围。动画iOS11.0iOS11.4
CGFloat length沿Z轴的地板范围。动画iOS11.0iOS11.4
CGFloat reflectionResolutionScaleFactor指定用于渲染反射的缓冲区的分辨率比例因子MacOS10.10iOS11.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.9iOS11.4

SCNChamferMode(倒角模式)

属 性说 明备 注SDK版本
SCNChamferModeBothMacOS10.9iOS11.4
SCNChamferModeFrontMacOS10.9iOS11.4
SCNChamferModeBackMacOS10.9iOS11.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 *)keyiOS11.4
属 性说 明备 注SDK版本
CFTimeInterval animationDuration每个线程事务属性的“animationDuration”访问器。定义动画的默认持续时间。显式事务的默认值为1 / 4s,隐式事务的默认值为0iOS11.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指定接收器如何计算变形结果。默认为SCNMorpherCalculationModeNormalizediOS11.4
NSArray<NSNumber *> *weights访问所有目标的所有权重iOS11.0iOS11.4
BOOL unifiesNormals设置为YES时,法线不会变形,而是在变形顶点后重新计算。设置为NO时,如果几何目标具有法线,则变形器将变形法线。默认为NOiOS11.0iOS11.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.0iOS11.4
- (CGFloat)weightForTargetNamed:(NSString *)targetName使用指定的名称检索目标的权重(targetName是目标几何的名称)iOS11.0iOS11.4

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

#import <SceneKit/SCNSkinner.h>

内容简介

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

文件SCNConstraint.h

#import <SceneKit/SCNConstraint.h>

内容简介

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

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

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

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

SCNBillboardAxis

属 性说 明备 注SDK版本
SCNBillboardAxisXiOS11.4
SCNBillboardAxisYiOS11.4
SCNBillboardAxisZiOS11.4
SCNBillboardAxisAllSCNBillboardAxisX | SCNBillboardAxisY | SCNBillboardAxisZiOS11.4

SCNBillboardConstraint:SCNConstraint iOS9.0

属 性说 明备 注SDK版本
+ (instancetype)billboardConstraint创建并返回SCNBillboardConstraint约束iOS11.4
SCNBillboardAxis freeAxes指定广告牌方向运行的轴。默认为SCNBillboardAxisAlliOS11.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.0iOS11.4
+ (instancetype)orientationConstraintInWorldSpace:(BOOL)world withBlock:(SCNQuaternion (^)(SCNNode *node, SCNQuaternion quaternion))block使用指定的参数创建并返回SCNTransformConstraint对象iOS11.0iOS11.4

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

方 法说 明备 注SDK版本
- (instancetype)initWithChainRootNode:(SCNNode *)chainRootNode使用指定的参数创建并返回SCNIKConstraint对象iOS9.0iOS11.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指定指定关节从其初始方向允许的最大旋转(以度为单位)。默认为180iOS11.4
- (CGFloat)maxAllowedRotationAngleForJoint:(SCNNode *)nodeiOS11.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定义约束是否应复制目标方向。默认为YESiOS11.4
BOOL replicatesPosition定义约束是否应复制目标位置。默认为YESiOS11.4
BOOL replicatesScale定义约束是否应复制目标比例。默认为YESiOS11.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定义要冲突的节点类别。默认为0iOS11.4
CGFloat radius定义滑块的半径。默认为1iOS11.4
SCNVector3 offset定义滑块的偏移量。默认为(0,0,0)iOS11.4

SCNAvoidOccluderConstraintDelegate代理

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

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

方 法说 明备 注SDK版本
+ (instancetype)avoidOccluderConstraintWithTarget:(nullable SCNNode *)target创建并返回SCNAvoidOccluderConstraint对象iOS11.4
属 性说 明备 注SDK版本
id <SCNAvoidOccluderConstraintDelegate> delegate接收者的代表iOS11.4
NSUInteger occluderCategoryBitMask定义要视为封堵器的节点类别。默认为1iOS11.4
CGFloat bias定义移动接收器后应用的偏置以避免遮挡物。默认为10e-5iOS11.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返回接收器的屏幕空间半径(如果有),否则返回0iOS11.4
CGFloat worldSpaceDistance返回接收器的世界空间距离(如果有),否则返回0iOS11.4

文件SCNParticleSystem.h

#import <SceneKit/SCNParticleSystem.h>

内容简介

SCNParticleProperty(粒子属性)

属 性说 明备 注SDK版本
SCNParticlePropertyPositionfloat3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}MacOS10.10iOS11.4
SCNParticlePropertyAnglefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyRotationAxisfloat3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}MacOS10.10iOS11.4
SCNParticlePropertyVelocityfloat3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)}MacOS10.10iOS11.4
SCNParticlePropertyAngularVelocityfloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyLifefloat 不可控制MacOS10.10iOS11.4
SCNParticlePropertyColorfloat4 : {r,g,b,a} 控制器动画类型:{UIColor}MacOS10.10iOS11.4
SCNParticlePropertyOpacityfloat 控制器动画类型:{NSNumber}iOMacOS10.10S10.10iOS11.4
SCNParticlePropertySizefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyFramefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyFrameRatefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyBouncefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyChargefloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyFrictionfloat 控制器动画类型:{NSNumber}MacOS10.10iOS11.4
SCNParticlePropertyContactPointfloat3 不可控制仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10iOS11.4
SCNParticlePropertyContactNormalfloat3 不可控制仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10iOS11.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.10iOS11.4
SCNParticleSortingModeProjectedDepth粒子按深度排序(远远渲染)MacOS10.10iOS11.4
SCNParticleSortingModeDistance粒子按距离的角度排序MacOS10.10iOS11.4
SCNParticleSortingModeOldestFirst颗粒按出生日期排序 - 最早出现MacOS10.10iOS11.4
SCNParticleSortingModeYoungestFirst粒子按出生日期排序 - 先取消MacOS10.10iOS11.4

SCNParticleBlendMode(粒子混合模式)

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

SCNParticleOrientationMode(粒子方向模式)

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

SCNParticleBirthLocation(粒子出生位置)

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

SCNParticleBirthDirection(粒子出生方向)

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

SCNParticleImageSequenceAnimationMode(纹理动画模式)

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

SCNParticleInputMode(粒子变化模式)

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

SCNParticleModifierStage(粒子修改器阶段)

常 量说 明备 注SDK版本
SCNParticleModifierStagePreDynamicsMacOS10.10iOS11.4
SCNParticleModifierStagePostDynamicsMacOS10.10iOS11.4
SCNParticleModifierStagePreCollisionMacOS10.10iOS11.4
SCNParticleModifierStagePostCollisionMacOS10.10iOS11.4

SCNParticleEvent(粒子事件)

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

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

方 法说 明备 注SDK版本
+ (instancetype)controllerWithAnimation:(CAAnimation *)animation使用指定的动画创建并初始化粒子属性控制器iOS11.4
属性说 明备 注SDK版本
CAAnimation *animation指定要在粒子系统属性上应用的动画。动画的类型取决于受控制的属性。请参阅属性名称定义中的文档iOS11.4
SCNParticleInputMode inputMode指定接收器的输入模式。这可以是生命,远距离或另一个属性的演变。默认为SCNParticleInputModeOverLifeiOS11.4
CGFloat inputScale指定输入比例。inputScale默认为1iOS11.4
CGFloat inputBias指定输入偏差。inputBias默认为0iOS11.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 *)directoryiOS11.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指定发射的循环行为。默认为YESiOS11.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指定新创建的粒子的位置。默认为SCNParticleBirthLocationSurfaceiOS11.4
SCNParticleBirthDirection birthDirection指定新创建的粒子的方向。默认为SCNParticleBirthDirectionConstantiOS11.4
CGFloat spreadingAngle指定新创建的粒子的传播方向,以度为单位。未在SCNParticleBirthDirectionRandom中使用。默认为0.可动画iOS11.4
SCNVector3 emittingDirection指定在SCNParticleBirthDirectionConstant模式中使用的新创建的粒子的发射方向。默认为{0,0,1}。动画iOS11.4
SCNVector3 orientationDirection指定在SCNParticleOrientationModeFree模式中使用的新创建的粒子的方向。粒子将围绕此轴旋转。默认为{0,0,0},表示随机。然后粒子将任意旋转。动画iOS11.0iOS11.4
SCNVector3 acceleration以世界坐标指定应用于粒子的加速度。允许模拟风或重力。默认为{0,0,0}。动画iOS11.4
BOOL local指定系统的呈现和模拟类型。如果设置为YES,系统将使用附加节点的变换进行渲染。默认为NOiOS11.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,路径或URLiOS11.4
NSUInteger imageSequenceColumnCount指定图像序列中的列数。默认为1iOS11.4
NSUInteger imageSequenceRowCount指定图像序列中的行数。默认为1iOS11.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指定纹理动画模式。默认为SCNTextureAnimationModeRepeatiOS11.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.0iOS11.4
CGFloat particleIntensityVariation指定粒子的初始强度变化。动画iOS11.4
SCNParticleBlendMode blendMode指定用于渲染粒子系统的混合模式。默认为SCNParticleBlendModeAdditiveiOS11.4
BOOL blackPassEnabled指定渲染粒子系统时是否需要黑色传递。这加强了添加剂/光系统的对比度。默认为NOiOS11.4
SCNParticleOrientationMode orientationMode指定粒子的方向模式。默认为SCNParticleOrientationModeBillboardScreenAlignediOS11.4
SCNParticleSortingMode sortingMode指定粒子的排序模式。默认为SCNParticleSortingModeNoneiOS11.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)blockiOS11.4
- (void)removeModifiersOfStage:(SCNParticleModifierStage)stageiOS11.4
- (void)removeAllModifiersiOS11.4

SCNNode(SCNParticleSystemSupport) 粒子系统支持

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

文件SCNPhysicsBody.h

#import <SceneKit/SCNPhysicsBody.h>

内容简介

SCNPhysicsBodyType 物理体类型 MacOS10.10

属 性说 明备 注SDK版本
SCNPhysicsBodyTypeStaticiOS11.4
SCNPhysicsBodyTypeDynamiciOS11.4
SCNPhysicsBodyTypeKinematiciOS11.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,静态实体默认为0iOS11.4
SCNVector3 momentOfInertia将身体的惯性矩指定为3D中的矢量。禁用usesDefaultMomentOfInertia以使用此值而不是根据形状几何计算的默认惯性矩iOS9.0iOS11.4
BOOL usesDefaultMomentOfInertia允许禁用默认惯性力矩,以支持存储在momentOfInertia中的惯性力矩iOS9.0iOS11.4
CGFloat charge指定身体上的电荷。电荷决定了身体受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0iOS11.4
CGFloat friction指定抵抗实体相对滑动的相对运动的力。默认为0.5iOS11.4
CGFloat restitution指定冲突的恢复。默认为0.5iOS11.4
CGFloat rollingFriction指定抵抗实体相对于彼此的相对运动的力。默认为0iOS11.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.1iOS11.4
CGFloat angularDamping指定接收器的角度阻尼。可选择降低每帧的车身角速度以模拟旋转摩擦。 (0.0 - 1.0)。默认为0.1iOS11.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.0iOS11.4
BOOL affectedByGravity如果设置为YES,则此节点将受到重力的影响。默认值为YESiOS9.0iOS11.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版本
SCNPhysicsFieldScopeInsideExtentiOS11.4
SCNPhysicsFieldScopeOutsideExtentiOS11.4

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

控制行为属性

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

控制效果属性

属 性说 明备 注SDK版本
SCNVector3 halfExtent指定效果区域的半范围。默认为FLT_MAXiOS11.4
BOOL usesEllipsoidalExtentYES表示效果区域在范围内四舍五入。默认为NOiOS11.4
SCNPhysicsFieldScope scope控制力场是应该应用于区域内部还是外部。默认为内部iOS11.4
SCNVector3 offset该区域内的原点效应偏移iOS11.4
SCNVector3 direction场的方向。仅适用于线性重力和涡旋场。默认为(0,-1,0)iOS11.4
NSUInteger categoryBitMask确定将受接收器影响的节点physicsBody的类别。默认为所有位设置MacOS10.10iOS11.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 = qEiOS11.4
+ (SCNPhysicsField *)magneticField与物体上的电荷和物体速度成比例的力。此字段的一个示例用法是在对象进入区域时使对象行为彼此不同,或使对象的行为与其基于质量的行为不同。该场模拟了洛伦兹方程的第二部分, F = qvBiOS11.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.10iOS11.4
SCNPhysicsShapeKeepAsCompoundKey一个布尔值决定是否一个层级被保持为一个形状的复合物或扁平化为一个单一的体积。默认值是trueMacOS10.10iOS11.4
SCNPhysicsShapeScaleKey物理形状的局部缩放(作为包含在NSValue中的SCNVector3)MacOS10.10iOS11.4
SCNPhysicsShapeOptionCollisionMargin物理形状的碰撞边缘(作为NSNumber)iOS10.0iOS11.4
#define SCNPhysicsShapeOptionType           SCNPhysicsShapeTypeKey
#define SCNPhysicsShapeOptionKeepAsCompound SCNPhysicsShapeKeepAsCompoundKey
#define SCNPhysicsShapeOptionScale          SCNPhysicsShapeScaleKey

SCNPhysicsShapeOptionType值

常 量说 明备 注SDK版本
SCNPhysicsShapeTypeBoundingBoxMacOS10.10iOS11.4
SCNPhysicsShapeTypeConvexHullMacOS10.10iOS11.4
SCNPhysicsShapeTypeConcavePolyhedronMacOS10.10iOS11.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.0iOS11.4
id sourceObject返回从中创建此物理形状的对象。它可以是SCNGeometry ,SCNNode 或子形状的NSArray *iOS9.0iOS11.4
NSArray<NSValue *> *transforms如果物理形状是从子形状数组创建的,则变换包含关联的变换,如SCNMatrix4包裹在NSValue中iOS9.0iOS11.4

文件SCNPhysicsWorld.h

#import <SceneKit/SCNPhysicsWorld.h>

内容简介

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

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

SCNPhysicsTestSearchModeKey值

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

SCNPhysicsContactDelegate协议

方 法说 明备 注SDK版本
- (void)physicsWorld:(SCNPhysicsWorld *)world didBeginContact:(SCNPhysicsContact *)contactiOS11.4
- (void)physicsWorld:(SCNPhysicsWorld *)world didUpdateContact:(SCNPhysicsContact *)contactiOS11.4
- (void)physicsWorld:(SCNPhysicsWorld *)world didEndContact:(SCNPhysicsContact *)contactiOS11.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 *)behavioriOS11.4
- (void)removeBehavior:(SCNPhysicsBehavior *)behavioriOS11.4
- (void)removeAllBehaviorsiOS11.4
属 性说 明备 注SDK版本
NSArray<SCNPhysicsBehavior *> *allBehaviorsiOS11.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 *nodeAiOS11.4
SCNNode *nodeBiOS11.4
世界空间坐标中的接触点,脉冲和距离
属 性说 明备 注SDK版本
SCNVector3 contactPointiOS11.4
SCNVector3 contactNormaliOS11.4
CGFloat collisionImpulse节点A上的碰撞冲动iOS11.4
CGFloat penetrationDistanceiOS11.4
CGFloat sweepTestFraction在0和1之间的值给出了在执行凸起扫描测试时物理形状的相对位置iOS11.0iOS11.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 axisAbodyA的旋转轴iOS11.4
SCNVector3 anchorA身体所附着的锚点iOS11.4
SCNPhysicsBody *bodyB第二个身体连接到铰链iOS11.4
SCNVector3 axisBbodyB的旋转轴iOS11.4
SCNVector3 anchorBbodyB附着的锚点iOS11.4

SCNPhysicsBallSocketJoint:SCNPhysicsBehavior MacOS10.10

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

方 法说 明备 注SDK版本
+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB anchorB:(SCNVector3)anchorB初始化并返回物理球窝关节。关节分别在bodyA和anchorB上附加bodyA和bodyBiOS11.4
+ (instancetype)jointWithBody:(SCNPhysicsBody *)body anchor:(SCNVector3)anchor初始化并返回物理球窝关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点iOS11.4
属 性说 明备 注SDK版本
SCNPhysicsBody *bodyA第一个身体连接到球窝关节iOS11.4
SCNVector3 anchorAbodyA的附着点iOS11.4
SCNPhysicsBody *bodyB第二个身体连接到球窝关节iOS11.4
SCNVector3 anchorBbodyB的附着点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 axisAbodyA可以滑动的轴iOS11.4
SCNVector3 anchorA身体的附着点AiOS11.4
SCNPhysicsBody *bodyB第二个主体连接到滑块接头iOS11.4
SCNVector3 axisBbodyB可以滑动的轴iOS11.4
SCNVector3 anchorBbodyB的附着点iOS11.4
以弧度表示的最小和最大线性/角度限制
属 性说 明备 注SDK版本
CGFloat minimumLinearLimitiOS11.4
CGFloat maximumLinearLimitiOS11.4
CGFloat minimumAngularLimitiOS11.4
CGFloat maximumAngularLimitiOS11.4
牛顿线性和角度电机
属 性说 明备 注SDK版本
CGFloat motorTargetLinearVelocityiOS11.4
CGFloat motorMaximumForceiOS11.4
CGFloat motorTargetAngularVelocityiOS11.4
CGFloat motorMaximumTorqueiOS11.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 frameAiOS11.4
SCNPhysicsBody *bodyB第二个主体连接到滑块接头iOS11.4
SCNMatrix4 frameBiOS11.4
每个锥形切线方向的弧度的最大角度限制
属 性说 明备 注SDK版本
CGFloat maximumAngularLimit1iOS11.4
CGFloat maximumAngularLimit2iOS11.4
沿锥轴的最大扭转角
属 性说 明备 注SDK版本
CGFloat maximumTwistAngleiOS11.4

SCNPhysicsVehicleWheel:NSObject MacOS10.10

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

方 法说 明备 注SDK版本
+ (instancetype)wheelWithNode:(SCNNode *)node初始化并返回一个轮子iOS11.4
属 性说 明备 注SDK版本
SCNNode *node接收器的节点iOS11.4
CGFloat suspensionStiffness车轮悬架刚度。默认为2.0iOS11.4
CGFloat suspensionCompression车轮悬架压缩。默认为4.4iOS11.4
CGFloat suspensionDamping车轮悬架减震。默认为2.3iOS11.4
CGFloat maximumSuspensionTravel车轮最大悬架行程以厘米为单位。默认为500iOS11.4
CGFloat frictionSlip车轮摩擦滑动系数。默认为1iOS11.4
CGFloat maximumSuspensionForce车轮最大悬挂力以牛顿为单位。默认为6000iOS11.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.6iOS11.4

SCNPhysicsVehicle:SCNPhysicsBehavior MacOS10.10

方 法说 明备 注SDK版本
+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray<SCNPhysicsVehicleWheel *> *)wheelsiOS11.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版本
SCNReferenceLoadingPolicyImmediateiOS11.4
SCNReferenceLoadingPolicyOnDemandiOS11.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。默认为SCNReferenceLoadingPolicyImmediatelyiOS11.4
BOOL loaded指示是否已加载引用的URLiOS11.4

文件SCNAudioSource.h

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

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

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

SCNAudioPlayer : NSObject iOS9.0

方 法说 明备 注SDK版本
- (instancetype)initiOS11.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 *audioNodeaudioNode。如果此播放器未使用自定义AVAudioNode进行初始化,则它包含内部场景工具包使用的内部音频播放器节点iOS11.4
SCNAudioSource *audioSourceaudioSource如果有的话iOS11.4

SCNNode (SCNAudioSupport)

方 法说 明备 注SDK版本
- (void)addAudioPlayer:(SCNAudioPlayer *)player将音频播放器添加到节点并立即开始播放iOS9.0iOS11.4
- (void)removeAllAudioPlayers从此节点中删除所有音频播放器并停止播放iOS9.0iOS11.4
- (void)removeAudioPlayer:(SCNAudioPlayer *)player从此节点中删除给定的音频播放器并停止播放iOS9.0iOS11.4
属 性说 明备 注SDK版本
NSArray<SCNAudioPlayer *> *audioPlayers获取一个阵列,连接所有音频播放器并在此节点上播放iOS9.0iOS11.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范围剪切的对象。默认为YESiOS11.4
SCNHitTestBackFaceCullingKey如果设置为YES,则忽略不面向相机的脸部。默认为YESiOS11.4
SCNHitTestBoundingBoxOnlyKey如果设置为YES,则仅测试3D对象的边界框。默认为NOiOS11.4
SCNHitTestIgnoreChildNodesKey确定是否忽略子节点。默认为NOiOS11.4
SCNHitTestRootNodeKey指定用于命中测试的根节点。默认为场景的根节点iOS11.4
SCNHitTestIgnoreHiddenNodesKey确定是否应忽略隐藏节点。默认为YESMacOS10.9iOS11.4
SCNHitTestOptionCategoryBitMask确定要测试的节点类别。默认为所有设置的位iOS10.0iOS11.4
SCNHitTestOptionSearchMode确定搜索是否应该是详尽无遗的。默认为SCNHitTestSearchModeClosestiOS11.0iOS11.4
SCNHitTestFirstFoundOnlyKey已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAnyiOS11.4
SCNHitTestSortResultsKey已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAlliOS11.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.0iOS11.4
属 性说 明备 注SDK版本
- (CGPoint)textureCoordinatesWithMappingChannel:(NSInteger)channel对于给定的映射通道,返回交叉点处的纹理坐标iOS11.4

文件SCNCameraController.h

SCNInteractionMode iOS11.0

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

常 量说 明备 注SDK版本
SCNInteractionModeFly相对于向上矢量iOS11.4
SCNInteractionModeOrbitTurntable从角度累积以绝对方向围绕目标旋转。向上没有考虑向量iOS11.4
SCNInteractionModeOrbitAngleMapping通过将2D屏幕坐标映射到球面坐标来围绕目标旋转iOS11.4
SCNInteractionModeOrbitCenteredArcballiOS11.4
SCNInteractionModeOrbitArcball通过将2D屏幕坐标映射到半球来围绕目标旋转iOS11.4
SCNInteractionModePanX/Y上的相机空间转换iOS11.4
SCNInteractionModeTruckX/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> delegateiOS11.4
SCNNode *pointOfViewiOS11.4
SCNInteractionMode interactionModeiOS11.4
SCNVector3 target轨道旋转的世界空间中的摄像机目标iOS11.4
BOOL automaticTarget在beginInteraction中自动更新目标。默认为NOiOS11.4
SCNVector3 worldUp世界空间中的向上矢量用作SCNInteractionModeFly和SCNInteractionModeOrbitTurntable相机模式的参考。默认为UnitY(0,1,0)iOS11.4
BOOL inertiaEnabled设置为YES以在endInteraction上启用惯性。默认为NOiOS11.4
float inertiaFriction摩擦系数适用于惯性。默认为0.05iOS11.4
BOOL inertiaRunning如果惯性正在运行,则返回YESiOS11.4

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

属 性说 明备 注SDK版本
float minimumVerticalAngleiOS11.4
float maximumVerticalAngleiOS11.4

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

属 性说 明备 注SDK版本
float minimumHorizontalAngleiOS11.4
float maximumHorizontalAngleiOS11.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)viewportiOS11.4
- (void)continueInteraction:(CGPoint)location withViewport:(CGSize)viewport sensitivity:(CGFloat)sensitivityiOS11.4
- (void)endInteraction:(CGPoint)location withViewport:(CGSize)viewport velocity:(CGPoint)velocityiOS11.4

文件SCNJavascript.h

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

方 法说 明备 注SDK版本
void SCNExportJavaScriptModule(JSContext *context)iOS11.4
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值