作者:
声明:转发本文,请联系作者授权
文件 SceneKitTypes.h
#import <SceneKit/SceneKitTypes.h>
内容简介:
SCNActionTimingMode 动画时间模式
类 型 | 说 明 | SDK版本 |
---|
SCNActionTimingModeLinear | 线性模式 | iOS11.4 |
SCNActionTimingModeEaseIn | 缓入模式 | iOS11.4 |
SCNActionTimingModeEaseOut | 缓出模式 | iOS11.4 |
SCNActionTimingModeEaseInEaseOut | 缓入缓出模式 | iOS11.4 |
SCNColorMask 颜色遮罩
类 型 | 说 明 | SDK版本 |
---|
SCNColorMaskNone | 无颜色遮罩 | iOS11.4 |
SCNColorMaskRed | 红色遮罩 | iOS11.4 |
SCNColorMaskGreen | 绿色遮罩 | iOS11.4 |
SCNColorMaskBlue | 蓝色遮罩 | iOS11.4 |
SCNColorMaskAlpha | 透明遮罩 | iOS11.4 |
SCNColorMaskAll | 完全遮罩 | iOS11.4 |
Vectors 矢量
变 量(方 法) | 说 明 | SDK版本 |
---|
SCNVector3 | 三元矢量 [x, y, z] | iOS11.4 |
SCNVector4 | 四元矢量 [x, y, z, w] | iOS11.4 |
SCNVector3Zero | 三元零矢量 [0, 0, 0] | iOS11.4 |
SCNVector4Zero | 四元零矢量 [0, 0, 0, 0] | iOS11.4 |
SCNVector3EqualToVector3 (SCNVector3 a, SCNVector3 b) | 判断两个三元矢量a与b是否相等,相等返回YES,否则返回NO | iOS11.4 |
SCNVector4EqualToVector4 (SCNVector4 a, SCNVector4 b) | 判断两个四元矢量a与b是否相等,相等返回YES,否则返回NO | iOS11.4 |
SCNVector3Make(float x, float y, float z) | 三元矢量构造方法 | iOS11.4 |
Quaternions 四元数
typedef SCNVector4 SCNQuaternion;
Matrices 矩阵
矩阵详解
⎡⎣⎢⎢⎢⎢m11m21m31m41m12m22m32m42m13m23m33m43m14m24m34m44⎤⎦⎥⎥⎥⎥(1)(1)[m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44]
SCNMatrix4
变 量(方 法) | 说 明 | SDK版本 |
---|
SCNMatrix4Identity | 四元单位矩阵 | iOS11.4 |
SCNMatrix4IsIdentity(SCNMatrix4 m) | 判断m是否是单位矩阵 | iOS11.4 |
SCNMatrix4EqualToMatrix4(SCNMatrix4 a, SCNMatrix4 b) | 判断a与b矩阵是否相等 | iOS11.4 |
SCNMatrix4MakeTranslation(float tx, float ty, float tz) | 矩阵平移 | iOS11.4 |
SCNMatrix4MakeScale(float sx, float sy, float sz) | 矩阵缩放 | iOS11.4 |
SCNMatrix4MakeRotation(float angle, float x, float y, float z) | 矩阵旋转 | iOS11.4 |
SCNMatrix4Translate(SCNMatrix4 m, float tx, float ty, float tz) | 矩阵平移 | iOS11.4 |
SCNMatrix4Scale(SCNMatrix4 m, float sx, float sy, float sz) | 矩阵缩放 | iOS11.4 |
SCNMatrix4Rotate(SCNMatrix4 m, float angle, float x, float y, float z) | 矩阵旋转 | iOS11.4 |
SCNMatrix4Invert(SCNMatrix4 m) | 矩阵反转 | iOS11.4 |
SCNMatrix4Mult(SCNMatrix4 a, SCNMatrix4 b) | a矩阵与b矩阵相乘 | iOS11.4 |
GLKit桥接
方 法 | 说 明 | SDK版本 |
---|
SCNVector3FromGLKVector3(GLKVector3 vector) | GLKVector3转SCNVector3 | iOS11.4 |
SCNVector3ToGLKVector3(SCNVector3 vector) | SCNVector3转GLKVector3 | iOS11.4 |
SCNVector4FromGLKVector4(GLKVector4 vector) | GLKVector4转SCNVector4 | iOS11.4 |
SCNVector4ToGLKVector4(SCNVector4 vector) | SCNVector4转GLKVector4 | iOS11.4 |
SCNMatrix4ToGLKMatrix4(SCNMatrix4 mat) | SCNMatrix4转GLKMatrix4 | iOS11.4 |
SCNMatrix4FromGLKMatrix4(GLKMatrix4 mat) | GLKMatrix4转SCNMatrix4 | iOS11.4 |
SIMD桥接
方 法 | 说 明 | SDK版本 |
---|
SCNVector3ToFloat3(SCNVector3 v) | SCNVector3转Float3 | iOS11.4 |
SCNVector4ToFloat4(SCNVector4 v) | SCNVector4转Float4 | iOS11.4 |
SCNMatrix4ToMat4(SCNMatrix4 m) | SCNMatrix4转Mat4 | iOS11.4 |
SCNVector3FromFloat3(vector_float3 v) | Float3转SCNVector3 | iOS11.4 |
SCNVector4FromFloat4(vector_float4 v) | Float4转SCNVector4 | iOS11.4 |
SCNMatrix4FromMat4(matrix_float4x4 m) | Mat4转SCNMatrix4 | iOS11.4 |
NSValue加成
方 法 | 说 明 | SDK版本 |
---|
+ (NSValue *)valueWithSCNVector3:(SCNVector3)v | SCNVector3转NSValue | iOS11.4 |
+ (NSValue *)valueWithSCNVector4:(SCNVector4)v | SCNVector4转NSValue | iOS11.4 |
+ (NSValue *)valueWithSCNMatrix4:(SCNMatrix4)v | SCNMatrix4转NSValue | iOS11.4 |
属 性 | 说 明 | SDK版本 |
---|
SCNVector3 SCNVector3Value | SCNVector3 | iOS11.4 |
SCNVector4 SCNVector4Value | SCNVector4 | iOS11.4 |
SCNMatrix4 SCNMatrix4Value | SCNMatrix4 | iOS11.4 |
* 错 误
SCNProgramCompilationError 程序编译错误
文件 SCNAnimation.h
#import <SceneKit/SCNAnimation.h>
内容简介
SCNTimingFunction
方法 | 说明 | SDK版本 |
---|
+ (SCNTimingFunction *)functionWithTimingMode:(SCNActionTimingMode)timingMode | 使用SCNActionTimingMode初始化 | iOS11.4 |
+ (SCNTimingFunction *)functionWithCAMediaTimingFunction:(CAMediaTimingFunction *)caTimingFunction | 使用CATimingFunction初始化 | iOS11.4 |
SCNAnimatable协议
属 性 | 说 明 | SDK版本 |
---|
NSArray<NSString *> *animationKeys | 所有绑定的动画标识数组 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK 版本 |
---|
- (void)addAnimation:(id <SCNAnimation>)animation forKey:(nullable NSString *)key | 添加并运行动画 | | iOS11.4 |
- (void)addAnimationPlayer:(SCNAnimationPlayer *)player forKey:(nullable NSString *)key | 添加一个动画播放器 | iOS11.0 | iOS11.4 |
- (void)removeAllAnimations | 移除所有动画 | | iOS11.4 |
- (void)removeAnimationForKey:(NSString *)key | 移除给定标识的动画 | | iOS11.4 |
- (nullable SCNAnimationPlayer *)animationPlayerForKey:(NSString *)key | 用给定标识获取动画播放器 | iOS11.0 | iOS11.4 |
- (void)removeAnimationForKey:(NSString *)key blendOutDuration:(CGFloat)duration | 移除指定标识的动画 | iOS11.0 | iOS11.4 |
- (void)removeAnimationForKey:(NSString *)key fadeOutDuration:(CGFloat)duration | 移除指定标识的动画 | 已废弃(推荐使用-removeAnimationForKey:blendOutDuration: )iOS8.0-11.0 | iOS11.4 |
- (nullable CAAnimation *)animationForKey:(NSString *)key | 获取给定标识的动画 | 已废弃(推荐使用-animationPlayerForKey: )iOS8.0-11.0 | iOS11.4 |
- (void)pauseAnimationForKey:(NSString *)key | 暂停指定标识动画 | 已废弃(推荐使用-[SCNAnimationPlayer setPaused:] )iOS8.0-11.0 | iOS11.4 |
- (void)resumeAnimationForKey:(NSString *)key | 继续给定标识的动画 | 已废弃(推荐使用-[SCNAnimationPlayer setPaused:] )iOS8.0-11.0 | iOS11.4 |
- (void)setSpeed:(CGFloat)speed forAnimationKey:(NSString *)key | 更新指定标识的动画速度 | 已废弃(推荐使用-[SCNAnimationPlayer setSpeed:] )iOS10.0-11.0 | iOS11.4 |
- (BOOL)isAnimationForKeyPaused:(NSString *)key | 是否指定标识的动画被暂停 | 已废弃(推荐使用-[SCNAnimationPlayer paused] )iOS8.0-11.0 | iOS11.4 |
SCNAnimation
属 性 | 说 明 | SDK 版本 |
---|
NSTimeInterval duration | 动画时长(单位秒,默认是0) | iOS11.4 |
NSString *keyPath | 动画key | iOS11.4 |
SCNTimingFunction *timingFunction | 动画时间函数 | iOS11.4 |
NSTimeInterval blendInDuration | 混入时长 | iOS11.4 |
NSTimeInterval blendOutDuration | 混出时长 | iOS11.4 |
BOOL removedOnCompletion | 如果为true,则一旦活动持续时间过去,动画将从渲染树中删除 | iOS11.4 |
BOOL appliedOnCompletion | 如果为true,则动画将在其活动持续时间过后应用于模型树 | iOS11.4 |
CGFloat repeatCount | 对象重复个数 | iOS11.4 |
BOOL autoreverses | 如果为true,则对象在向前播放后向后播放 | iOS11.4 |
NSTimeInterval startDelay | 动画开始延迟 | iOS11.4 |
NSTimeInterval timeOffset | 时间偏移 | iOS11.4 |
BOOL fillsForward | 如果为true,则动画在其活动持续时间后保持活动状态并计算其结束值。默认为NO。 | iOS11.4 |
BOOL fillsBackward | 如果为true,则动画在其活动持续时间之前处于活动状态并计算其起始值。默认为NO。 | iOS11.4 |
BOOL usesSceneTimeBase | 确定是使用场景时间还是系统时间评估接收器。 | iOS11.4 |
SCNAnimationDidStartBlock animationDidStart | 动画开始时调用 | iOS11.4 |
NSArray<SCNAnimationEvent *> *animationEvents | 指定附加到接收器的动画事件 | iOS11.4 |
BOOL additive | 如果为true,则动画指定的值将“添加”到属性的当前显示值以生成新的演示文稿值。加法函数是类型相关的,例如,对于仿射变换,两个矩阵是连接的。 | iOS11.4 |
BOOL cumulative | “cumulative”属性会影响重复动画的生成方式他们的结果。如果为true,则动画的当前值为上一个重复周期结束时的值加上的值当前的重复循环。如果为false,则该值只是值计算当前的重复周期。 | iOS11.4 |
方 法 | 说 明 | SDK 版本 |
---|
+ (SCNAnimation *)animationWithContentsOfURL:(NSURL *)animationUrl | 加载并返回从指定URL加载的动画 | iOS11.4 |
+ (SCNAnimation *)animationNamed:(NSString *)animationName | 在当前应用程序包中加载并返回具有指定名称的动画 | iOS11.4 |
+ (SCNAnimation *)animationWithCAAnimation:(CAAnimation *)caAnimation | 返回从CAAnimation初始化的SCNAnimation | iOS11.4 |
SCNAnimationPlayer (iOS11.0)
属性 | 说明 | SDK版本 |
---|
SCNAnimation *animation | 播放的动画 | iOS11.4 |
CGFloat speed | 速度 | iOS11.4 |
CGFloat blendFactor | 控制播放动画的影响。设置为1时,将应用动画而不进行任何混合。设置为小于1时,动画值与动画属性的当前显示值混合。默认为1.0。动画。 | iOS11.4 |
BOOL paused | 动画是否被暂停 | iOS11.4 |
方法 | 说明 | SDK版本 |
---|
+ (SCNAnimationPlayer *)animationPlayerWithAnimation:(SCNAnimation *)animation | 用一个动画初始化一个动画播放器 | iOS11.4 |
- (void)play | 设置暂停为NO并且从动画开始重新播放 | iOS11.4 |
- (void)stop | 停止动画 | iOS11.4 |
- (void)stopWithBlendOutDuration:(NSTimeInterval)duration | 停止动画并在指定的持续时间内平滑地混合动画 | iOS11.4 |
SCNAnimationEvent
方法 | 说明 | SDK版本 |
---|
+ (instancetype)animationEventWithKeyTime:(CGFloat)time block:(SCNAnimationEventBlock)eventBlock | 用一个动画初始化一个动画播放器 | iOS11.4 |
文件SCNBoundingVolume.h
#import <SceneKit/SCNBoundingVolume.h>
SCNBoundingVolume协议
方法 | 说明 | SDK版本 |
---|
- (BOOL)getBoundingBoxMin:(nullable SCNVector3 *)min max:(nullable SCNVector3 *)max | 使用边界框的最小和最大顶点填充最小和最大矢量 | iOS11.4 |
- (void)setBoundingBoxMin:(nullable SCNVector3 *)min max:(nullable SCNVector3 *)max | 使用提供的最小和最大向量覆盖接收器边界框(在接收器的本地空间中) | iOS11.4 |
- (BOOL)getBoundingSphereCenter:(nullable SCNVector3 *)center radius:(nullable CGFloat *)radius | 使用边界球体的中心填充中心矢量,并将边界球体的半径存储在“半径”中 | iOS11.4 |
文件SCNSceneRenderer.h
#import <SceneKit/SCNSceneRenderer.h>
内容简介
SCNAntialiasingMode 场景渲染抗锯齿模式(macos10.10)
模 式 | 说 明 | SDK版本 |
---|
SCNAntialiasingModeNone | 默认 | iOS11.4 |
SCNAntialiasingModeMultisampling2X | 二倍多采样 | iOS11.4 |
SCNAntialiasingModeMultisampling4X | 四倍多采样 | iOS11.4 |
SCNRenderingAPI 渲染SCNView和SCNRenderer使用的API(iOS9.0以上)
模 式 | 说 明 | SDK版本 |
---|
SCNRenderingAPIMetal | Metal | iOS11.4 |
SCNRenderingAPIOpenGLES2 | OpenGLES2 | iOS11.4 |
SCNDebugOptions 调试选项(iOS9以上)
模 式 | 说 明 | 备 注 | SDK版本 |
---|
SCNDebugOptionNone | 默认 | | iOS11.4 |
SCNDebugOptionShowPhysicsShapes | 显示形状 | | iOS11.4 |
SCNDebugOptionShowBoundingBoxes | 显示边界 | | iOS11.4 |
SCNDebugOptionShowLightInfluences | 显示光影响 | | iOS11.4 |
SCNDebugOptionShowLightExtents | 显示光范围 | | iOS11.4 |
SCNDebugOptionShowPhysicsFields | 显示SCNPhysicsFields力和范围 | | iOS11.4 |
SCNDebugOptionShowWireframe | 在对象上显示线框 | | iOS11.4 |
SCNDebugOptionRenderAsWireframe | 将对象渲染为线框 | iOS11.0 | iOS11.4 |
SCNDebugOptionShowSkeletons | 显示皮肤骨骼 | iOS11.0 | iOS11.4 |
SCNDebugOptionShowCreases | 显示细分折痕 | iOS11.0 | iOS11.4 |
SCNDebugOptionShowConstraints | 显示滑块约束 | iOS11.0 | iOS11.4 |
SCNDebugOptionShowCameras | 显示相机 | iOS11.0 | iOS11.4 |
SCNSceneRenderer协议
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNScene *scene | 指定接收器的场景 | | iOS11.4 |
NSTimeInterval sceneTime | 指定显示场景的当前“场景时间” | MacOS10.10 | iOS11.4 |
id <SCNSceneRendererDelegate> delegate | 指定的渲染器代理 | | iOS11.4 |
BOOL playing | 如果场景正在播放返回YES,否则返回NO | | iOS11.4 |
BOOL loops | 指示接收器在到达其内容结尾时是否重新开始播放。默认值:是。 | | iOS11.4 |
SCNNode *pointOfView | 指定用于渲染场景的视点 | | iOS11.4 |
BOOL autoenablesDefaultLighting | 指定接收器是否应自动点亮没有光源的场景。默认值为NO | | iOS11.4 |
BOOL jitteringEnabled | 指定接收器是否应抖动渲染的场景以减少锯齿伪像 | | iOS11.4 |
BOOL showsStatistics | 确定接收器是否应显示FPS等统计信息。默认为NO | MacOS10.9 | iOS11.4 |
SCNDebugOptions debugOptions | 指定接收器的调试选项。默认为SCNDebugOptionNone。 | iOS9.0 | iOS11.4 |
SKScene *overlaySKScene | 将接收器的叠加指定为SpriteKit场景实例。默认为空。 | MacOS10.10 | iOS11.4 |
SCNRenderingAPI renderingAPI | 指定与接收器关联的呈现API。 | iOS9.0 | iOS11.4 |
void *context | OpenGL渲染上下文 | | iOS11.4 |
id <MTLRenderCommandEncoder> currentRenderCommandEncoder | 当前渲染编码器 | iOS9.0 | iOS11.4 |
id <MTLDevice> device | 用于Metal渲染的设备 | iOS9.0 | iOS11.4 |
MTLPixelFormat colorPixelFormat | 颜色格式 | iOS9.0 | iOS11.4 |
MTLPixelFormat depthPixelFormat | 渲染器的深度附件的像素格式。此属性仅在使用Metal设备创建的渲染器上有效。 | iOS9.0 | iOS11.4 |
MTLPixelFormat stencilPixelFormat | 渲染器的模板附件的像素格式。此属性仅在使用Metal设备创建的渲染器上有效。 | iOS9.0 | iOS11.4 |
id <MTLCommandQueue> commandQueue | 渲染器的命令队列。此属性仅在使用Metal设备创建的渲染器上有效。否则设置为nil。 | | iOS11.4 |
AVAudioEngine *audioEngine | 包含场景使用的音频引擎实例。 | iOS9.0 | iOS11.4 |
AVAudioEnvironmentNode *audioEnvironmentNode | 包含场景用于对声音进行空间化的音频环境节点的实例。 | iOS9.0 | iOS11.4 |
SCNNode *audioListener | 使用此属性可设置音频节点,以在渲染此场景的位置音频时用作侦听器位置和方向。默认值为nil,表示将动态使用当前视点。 | iOS9.0 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)presentScene:(SCNScene *)scene withTransition:(SKTransition *)transition incomingPointOfView:(nullable SCNNode *)pointOfView completionHandler:(nullable void (^)(void))completionHandler | 在接收器中显示SCNScene,替换当前场景。 | iOS9.0 | iOS11.4 |
- (NSArray<SCNHitTestResult *> *)hitTest:(CGPoint)point options:(nullable NSDictionary<SCNHitTestOption, id> *)options | 返回包含指定点的每个节点的SCNHitTestResult数组 | | iOS11.4 |
- (BOOL)isNodeInsideFrustum:(SCNNode *)node withPointOfView:(SCNNode *)pointOfView | 从指定的角度测试节点是否可见。 | MacOS10.9 | iOS11.4 |
- (NSArray<SCNNode *> *)nodesInsideFrustumWithPointOfView:(SCNNode *)pointOfView | 返回一个数组,其中包含从指定视点可见的节点。 | MacOS10.9 | iOS11.4 |
- (SCNVector3)projectPoint:(SCNVector3)point | 使用接收器的当前视点和视口在世界坐标系中投影点。 | iOS9.0 | iOS11.4 |
- (SCNVector3)unprojectPoint:(SCNVector3)point | 使用接收器的当前视点和视口取消投影具有深度信息的屏幕空间2D点。 | MacOS10.9 | iOS11.4 |
- (BOOL)prepareObject:(id)object shouldAbortBlock:(nullable NS_NOESCAPE BOOL (^)(void))block | 准备指定的绘图对象 | MacOS10.9 | iOS11.4 |
- (void)prepareObjects:(NSArray *)objects withCompletionHandler:(nullable void (^)(BOOL success))completionHandler | 准备指定的对象以在背景上绘制。 | MacOS10.10 | iOS11.4 |
SCNSceneRendererDelegate协议
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)renderer:(id <SCNSceneRenderer>)renderer updateAtTime:(NSTimeInterval)time | 实现此功能以执行每帧游戏逻辑。在评估任何动画和动作并模拟任何物理之前,每帧只调用一次。 | MacOS10.10 | iOS11.4 |
- (void)renderer:(id <SCNSceneRenderer>)renderer didApplyAnimationsAtTime:(NSTimeInterval)time | 一旦场景渲染器确实应用了动画,就在代理上调用。 | MacOS10.10 | iOS11.4 |
- (void)renderer:(id <SCNSceneRenderer>)renderer didSimulatePhysicsAtTime:(NSTimeInterval)time | 一旦场景渲染器确实模拟了物理,就在代理上调用。 | MacOS10.10 | iOS11.4 |
- (void)renderer:(id <SCNSceneRenderer>)renderer didApplyConstraintsAtTime:(NSTimeInterval)time | 一旦场景渲染器确实应用了约束,就在代理上调用。 | iOS11.0 | iOS11.4 |
- (void)renderer:(id <SCNSceneRenderer>)renderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time | 在场景渲染器渲染场景之前在代理上调用。此时,绑定了openGL上下文和目标帧缓冲区 | | iOS11.4 |
- (void)renderer:(id <SCNSceneRenderer>)renderer didRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time | 一旦场景渲染器确实渲染场景,就在代理上调用 | | iOS11.4 |
文件SCNShadable.h
#import <SceneKit/SCNShadable.h>
内容简介
SCNBufferFrequency(应更新自定义程序输入的频率) (iOS9.0)
类 型 | 说 明 | SDK版本 |
---|
SCNBufferFrequencyPerFrame | 每帧更新 | iOS11.4 |
SCNBufferFrequencyPerNode | 每个节点更新 | iOS11.4 |
SCNBufferFrequencyPerShadable | SCNMaterial or SCNGeometry | iOS11.4 |
SCNBufferStream协议
方 法 | 说 明 | SDK版本 |
---|
- (void)writeBytes:(void *)bytes length:(NSUInteger)length | 写入指定长度的字节数 | iOS11.4 |
SCNShadable协议
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNProgram *program | 指定用于渲染接收器的自定义程序 | | iOS11.4 |
NSDictionary<SCNShaderModifierEntryPoint, NSString *> *shaderModifiers | 着色修改器片段字典,定位入口点。有效键是“着色器修改器入口点”常量中描述的入口点。值是如下所述格式化的代码片段。 | | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)handleBindingOfSymbol:(NSString *)symbol usingBlock:(nullable SCNBindingBlock)block | 设置要在渲染时调用的块,以绑定接收器SCNProgram的指定符号的值。此方法对着色器修改器中声明的符号无效。 | MacOS10.9 | iOS11.4 |
- (void)handleUnbindingOfSymbol:(NSString *)symbol usingBlock:(nullable SCNBindingBlock)block | 设置要在渲染时调用的块,以取消绑定接收器SCNProgram的指定符号的值。此方法对着色器修改器中声明的符号无效。 | MacOS10.9 | iOS11.4 |
SCNProgram
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSString *vertexShader | 顶点着色 | | iOS11.4 |
NSString *fragmentShader | 片元着色 | | iOS11.4 |
NSString *vertexFunctionName | 顶点函数名 | iOS9.0 | iOS11.4 |
NSString *fragmentFunctionName | 片元函数名 | iOS9.0 | iOS11.4 |
BOOL opaque | 确定接收器的片段是否不透明 | MacOS10.10 | iOS11.4 |
id <SCNProgramDelegate> delegate | 接收器的代理 | | iOS11.4 |
id <MTLLibrary> library | Metal库 | iOS9.0 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)handleBindingOfBufferNamed:(NSString *)name frequency:(SCNBufferFrequency)frequency usingBlock:(SCNBufferBindingBlock)block | 设置要在渲染时调用的块,以绑定接收器程序的指定符号的缓冲区 | iOS9.0 | iOS11.4 |
- (void)setSemantic:(nullable NSString *)semantic forSymbol:(NSString *)symbol options:(nullable NSDictionary<NSString *, id> *)options | 将SceneKit语义与符号相关联 | | iOS11.4 |
- (nullable NSString *)semanticForSymbol:(NSString *)symbol | 从程序源代码中检索与符号关联的SceneKit语义 | | iOS11.4 |
SCNProgramDelegate协议
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)program:(SCNProgram *)program handleError:(NSError *)error | 每当发生编译错误时在代理上调用。 | | iOS11.4 |
- (BOOL)programIsOpaque:(SCNProgram *)program | 如果程序生成的片段不是不透明的,则委托应该实现此方法并返回NO。 | 已废弃(使用SCNProgram.opaque替代)MacOS10.8-10.10, iOS不可用 | iOS11.4 |
文件SCNView.h
#import <SceneKit/SCNView.h>
内容简介
SCNCameraControlConfiguration协议(iOS11.0)
属 性 | 说 明 | SDK版本 |
---|
BOOL autoSwitchToFreeCamera | | iOS11.4 |
BOOL allowsTranslation | | iOS11.4 |
CGFloat flyModeVelocity | 飞行模式速率(m/s) | iOS11.4 |
CGFloat panSensitivity | | iOS11.4 |
CGFloat truckSensitivity | | iOS11.4 |
CGFloat rotationSensitivity | | iOS11.4 |
SCNView
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNScene *scene | 场景 | | iOS11.4 |
BOOL rendersContinuously | 设置为YES时,视图会以显示链接帧速率不断重绘。设置为NO时,视图将仅在接收器场景中的某些内容发生变化或动画时重绘。默认为NO。 | | iOS11.4 |
BOOL allowsCameraControl | 一个布尔值,用于确定用户是否可以操纵用于渲染场景的视点。 | | iOS11.4 |
id <SCNCameraControlConfiguration> cameraControlConfiguration | 描述导航默认摄像机控制器的事件处理程序的当前配置的对象。 | iOS11.0 | iOS11.4 |
SCNCameraController* defaultCameraController | 当allowCameraController设置为YES时,返回用于驱动当前视点的默认SCNCameraController。 | iOS11.0 | iOS11.4 |
NSInteger preferredFramesPerSecond | 您希望视图重绘其内容的速率。 | MacOS10.12 | iOS11.4 |
EAGLContext *eaglContext | 指定与接收器关联的EAGL上下文。 | | iOS11.4 |
SCNAntialiasingMode antialiasingMode | 在iOS上默认为SCNAntialiasingModeMultisampling4X,在iOS上默认为SCNAntialiasingModeNone | MacOS10.10 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (instancetype)initWithFrame:(CGRect)frame options:(nullable NSDictionary<NSString *, id> *)options | 初始化并返回具有指定框架矩形的新分配的SCNView对象 | | iOS11.4 |
- (UIImage *)snapshot | 绘制视图的内容并将其作为新图像对象返回 | MacOS10.10 | iOS11.4 |
- (IBAction)play:(nullable id)sender | 此操作方法开始在当前位置播放场景 | | iOS11.4 |
- (IBAction)pause:(nullable id)sender | 此操作方法暂停场景播放 | | iOS11.4 |
- (IBAction)stop:(nullable id)sender | 此操作方法停止场景播放并将当前时间重置为场景的开始时间 | | iOS11.4 |
文件SCNRenderer.h
#import <SceneKit/SCNRenderer.h>
内容简介
SCNRenderer
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNScene *scene | 场景 | | iOS11.4 |
CFTimeInterval nextFrameTime | 返回下次更新发生的时间。如果无限,则无需安排更新。如果是当前帧时间,则连续动画正在运行,并且应在“自然”延迟之后安排更新。 | MacOS10.10 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)rendererWithContext:(nullable EAGLContext *)context options:(nullable NSDictionary *)options | 创建一个新的renderer对象 | | iOS11.4 |
+ (instancetype)rendererWithDevice:(nullable id <MTLDevice>)device options:(nullable NSDictionary *)options | 创建一个使用Metal渲染的新渲染器对象 | iOS9.0 | iOS11.4 |
- (void)renderAtTime:(CFTimeInterval)time viewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor | 更新并在指定时间(系统时间)视口,金属命令缓冲区和传递描述符中呈现接收器的场景 | iOS9.0 | iOS11.4 |
- (void)renderAtTime:(CFTimeInterval)time | 更新并在指定时间(系统时间)渲染接收器的场景 | MacOS10.10 | iOS11.4 |
- (void)updateAtTime:(CFTimeInterval)time | 在指定时间(系统时间)更新接收器的场景 | iOS11.0 | iOS11.4 |
- (void)renderWithViewport:(CGRect)viewport commandBuffer:(id <MTLCommandBuffer>)commandBuffer passDescriptor:(MTLRenderPassDescriptor *)renderPassDescriptor | 使用指定的视口,Metal命令缓冲区和传递描述符呈现接收器的场景 | iOS11.0 | iOS11.4 |
- (UIImage *)snapshotAtTime:(CFTimeInterval)time withSize:(CGSize)size antialiasingMode:(SCNAntialiasingMode)antialiasingMode | 将指定时间(系统时间)的接收器场景渲染成图像 | iOS10.0 | iOS11.4 |
- (void)updateProbes:(NSArray<SCNNode*> *)lightProbes atTime:(CFTimeInterval)time | 通过在指定时间计算接收器场景中的入射辐照度来更新指定的探测器 | iOS10.0 | iOS11.4 |
- (void)render | 在当前系统时间呈现接收器的场景 | 已废弃(请使用-renderAtTime:withEncoder:pass:commandQueue:)iOS8.0-9.0 | iOS11.4 |
文件SCNScene.h
#import <SceneKit/SCNScene.h>
内容简介 SCNScene是描述3d场景的类。它封装了一个节点层次结构。
SCNSceneExportDelegate协议
属 性 | 说 明 | 备 注 | SDK版本 |
---|
typedef void (^SCNSceneExportProgressHandler)(float totalProgress, NSError * _Nullable error, BOOL *stop); | 在导出场景时将重复调用的块的签名 | | iOS11.4 |
NSString * const SCNSceneExportDestinationURL | 指定要导出的场景的最终目标(作为NSURL) | MacOS10.9 | |
NSString * SCNSceneAttribute | 这些键可以与 - [SCNScene attributeForKey:]方法一起使用 | | iOS11.4 |
SCNSceneAttribute const SCNSceneStartTimeAttributeKey | 浮点值,封装在NSNumber中,包含场景的开始时间 | | iOS11.4 |
SCNSceneAttribute const SCNSceneEndTimeAttributeKey | 浮点值,封装在NSNumber中,包含场景的结束时间 | | iOS11.4 |
SCNSceneAttribute const SCNSceneFrameRateAttributeKey | 浮点值,封装在NSNumber中,包含场景的帧速率 | | iOS11.4 |
SCNSceneAttribute const SCNSceneUpAxisAttributeKey | 封装在NSValue中的vector3值,包含场景的上轴。这仅供参考,将上轴设置为无效 | | iOS11.4 |
SCNScene
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *rootNode | 指定节点层次结构的根节点 | | iOS11.4 |
SCNPhysicsWorld *physicsWorld | 指定接收器的物理世界 | MacOS10.10 | |
SCNMaterialProperty *background | 指定接收器的背景 | MacOS10.9 | iOS11.4 |
SCNMaterialProperty *lightingEnvironment | 指定接收器的基于图像的照明环境(IBL) | iOS10.10 | iOS11.4 |
CGFloat fogStartDistance | 指定接收器的雾起始距离。动画。默认为0。 | MacOS10.10 | iOS11.4 |
CGFloat fogEndDistance | 指定接收器的雾端距离。动画。默认为0。 | MacOS10.10 | iOS11.4 |
CGFloat fogDensityExponent | 指定接收器的雾功率指数。动画。默认为1。 | MacOS10.10 | iOS11.4 |
id fogColor | 指定接收器的雾色(NSColor或CGColorRef)。动画。默认为白色。 | MacOS10.10 | iOS11.4 |
BOOL paused | 控制场景是否暂停。默认为NO。 | MacOS10.10 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)scene | 场景类方法,返回一个空场景 | | iOS11.4 |
- (nullable id)attributeForKey:(NSString *)key; | 检索场景的属性 | | iOS11.4 |
- (void)setAttribute:(nullable id)attribute forKey:(NSString *)key; | 设置场景属性 | | iOS11.4 |
+ (nullable instancetype)sceneNamed:(NSString *)name | 创建并返回与指定文件名关联的场景。 | MacOS10.9 | iOS11.4 |
+ (nullable instancetype)sceneNamed:(NSString *)name inDirectory:(nullable NSString *)directory options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options | 创建并返回与指定文件名关联的场景。 | MacOS10.10 | iOS11.4 |
+ (nullable instancetype)sceneWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options error:(NSError **)error; | 从指定的URL创建并返回一个场景。 | | iOS11.4 |
- (BOOL)writeToURL:(NSURL *)url options:(nullable NSDictionary<NSString *, id> *)options delegate:(nullable id <SCNSceneExportDelegate>)delegate progressHandler:(nullable SCNSceneExportProgressHandler)progressHandler | 将场景写入指定的URL | iOS10.0 | iOS11.4 |
SCNSceneExportDelegate协议
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (nullable NSURL *)writeImage:(UIImage *)image withSceneDocumentURL:(NSURL *)documentURL originalImageURL:(nullable NSURL *)originalImageURL | 在委托上调用以编写引用的图像并返回目标URL。 | iOS10.0 | iOS11.4 |
文件SCNSceneSource.h
#import <SceneKit/SCNSceneSource.h>
内容简介 SCNSceneSource对象,抽象数据读取任务。场景源可以从URL或NSData对象读取场景数据。
Scene source属性
KEY | 说 明 | SDK版本 |
---|
SCNSceneSourceAssetContributorsKey | 文件贡献者。这些值是使用“Contributor dictionary keys”组中记录的键填充的字典。 | iOS11.4 |
SCNSceneSourceAssetCreatedDateKey | 文件创建时。该值是NSDate实例。 | |
SCNSceneSourceAssetModifiedDateKey | 上次修改文件时。该值是NSDate实例。 | iOS11.4 |
SCNSceneSourceAssetUpAxisKey | 文件的上轴。例如,如果文件面向Y-up,那么这就是字符串\ @“0.0 1.0 0.0” | iOS11.4 |
SCNSceneSourceAssetUnitKey | 文件中使用的单位。该值是一个填充了“单位字典键”组中记录的键的字典。 | iOS11.4 |
Contributor dictionary keys
KEY | 说 明 | SDK版本 |
---|
SCNSceneSourceAssetAuthoringToolKey | 用于创建文件的创作工具。相应的值是NSString。 | iOS11.4 |
SCNSceneSourceAssetAuthorKey | 该文件的作者。相应的值是NSString。 | iOS11.4 |
Unit dictionary keys
KEY | 说 明 | SDK版本 |
---|
SCNSceneSourceAssetUnitNameKey | 单位的名称(NSString) | iOS11.4 |
SCNSceneSourceAssetUnitMeterKey | NSNumber,封装浮点值,表示单位是多少米。例如,如果名称是\ @“厘米”,那么这将是0.01。 | iOS11.4 |
Scene loading options 场景加载选项
KEY | 说 明 | 备 注 | SDK版本 |
---|
SCNSceneSourceCreateNormalsIfAbsentKey | 如果文件中没有给出顶点,则允许尝试猜测顶点的可接受法线 | | iOS11.4 |
SCNSceneSourceCheckConsistencyKey | 传YES以执行文档校验 | | iOS11.4 |
SCNSceneSourceFlattenSceneKey | 传YES以展平场景图如果可能。 | | iOS11.4 |
SCNSceneSourceUseSafeModeKey | 可以在SCNScene和SCNSceneSource加载方法的选项字典中设置此选项。 | | iOS11.4 |
SCNSceneSourceUseSafeModeKey | 传YES以启用安全模式 | 已废弃(不再支持)iOS8.0-11.0 | iOS11.4 |
SCNSceneSourceAssetDirectoryURLsKey | 传递一个目录URL数组,其中SceneKit应该查找资源 | | iOS11.4 |
SCNSceneSourceOverrideAssetURLsKey | 传递YES以覆盖具有通过SCNSceneSourceAssetDirectoryURLsKey传递的目录URL的资产URL。 | | iOS11.4 |
SCNSceneSourceStrictConformanceKey | 传递YES以严格的方式解释文件的3D格式。 | | iOS11.4 |
SCNSceneSourceConvertUnitsToMetersKey | 传递要转换场景的单位(以米为单位)。 | iOS11.0 | iOS11.4 |
SCNSceneSourceConvertToYUpKey | 如果场景当前具有不同的向上轴,则应将场景转换为Y,否则通过YES。 | iOS11.0 | iOS11.4 |
SCNSceneSourceAnimationImportPolicyKey | 传递以下值之一以指定如何处理已加载的动画。 | MacOS10.10 | iOS11.4 |
SCNSceneSourceLoadingOptionPreserveOriginalTopology | 传递YES以使SceneKit保留原始拓扑,而不是在加载时进行三角测量。 | iOS10.0 | iOS11.4 |
相关宏定义
#define SCNSceneSourceLoadingOptionCreateNormalsIfAbsent SCNSceneSourceCreateNormalsIfAbsentKey
#define SCNSceneSourceLoadingOptionCheckConsistency SCNSceneSourceCheckConsistencyKey
#define SCNSceneSourceLoadingOptionFlattenScene SCNSceneSourceFlattenSceneKey
#define SCNSceneSourceLoadingOptionUseSafeMode SCNSceneSourceUseSafeModeKey
#define SCNSceneSourceLoadingOptionAssetDirectoryURLs SCNSceneSourceAssetDirectoryURLsKey
#define SCNSceneSourceLoadingOptionOverrideAssetURLs SCNSceneSourceOverrideAssetURLsKey
#define SCNSceneSourceLoadingOptionStrictConformance SCNSceneSourceStrictConformanceKey
#define SCNSceneSourceLoadingOptionConvertUnitsToMeters SCNSceneSourceConvertUnitsToMetersKey
#define SCNSceneSourceLoadingOptionConvertToYUp SCNSceneSourceConvertToYUpKey
#define SCNSceneSourceLoadingOptionAnimationImportPolicy SCNSceneSourceAnimationImportPolicyKey
SCNSceneSourceLoadingOptionAnimationImportPolicy 资源加载动画导入策略
KEY | 说 明 | SDK版本 |
---|
SCNSceneSourceAnimationImportPolicyPlay | 将动画添加到场景并播放一次(repeatCount设置为1)。 | iOS11.4 |
SCNSceneSourceAnimationImportPolicyPlayRepeatedly | 将动画添加到场景并重复播放(repeatCount设置为无穷大)。 | iOS11.4 |
SCNSceneSourceAnimationImportPolicyDoNotPlay | 仅在SCNSceneSource中保留动画,不要添加到场景的动画元素。 | iOS11.4 |
SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase | 将动画添加到场景并使用SCNView / SCNRenderer的场景时间播放它们(usesSceneTimeBase设置为YES) | iOS11.4 |
常 量 | 说明 | SDK版本 |
---|
SCNDetailedErrorsKey | 访问详细验证错误的关键 | iOS11.4 |
SCNConsistencyElementIDErrorKey | 对于基于XML的格式,发生错误的元素的ID | iOS11.4 |
SCNConsistencyElementTypeErrorKey | 对于基于XML的格式,发生错误的元素的标记名称 | iOS11.4 |
SCNConsistencyLineNumberErrorKey | 对于基于文本的格式,发生错误的行号 | iOS11.4 |
SCNConsistencyErrorCode 一致性检查程序返回的错误代码
常 量 | 说明 | SDK版本 |
---|
SCNConsistencyInvalidURIError | 场景文件包含无效的URI(或URL) | iOS11.4 |
SCNConsistencyInvalidCountError | 场景文件包含无效数量的场景 | iOS11.4 |
SCNConsistencyInvalidArgumentError | 场景文件中的元素包含其属性之一的无效选项 | iOS11.4 |
SCNConsistencyMissingElementError | 缺少场景文件中的必需元素 | iOS11.4 |
SCNConsistencyMissingAttributeError | 场景文件中的元素缺少必需属性 | iOS11.4 |
SCNConsistencyXMLSchemaValidationError | 场景文件的格式与其XML架构定义不匹配 | iOS11.4 |
SCNSceneSourceStatus 场景加载过程状态
常 量 | 说明 | SDK版本 |
---|
SCNSceneSourceStatusError | SceneKit尝试加载场景时发生错误 | iOS11.4 |
SCNSceneSourceStatusParsing | SceneKit已开始反序列化源文件 | iOS11.4 |
SCNSceneSourceStatusValidating | SceneKit已经开始验证场景文件的格式 | iOS11.4 |
SCNSceneSourceStatusProcessing | SceneKit已经开始从场景文件的内容生成场景图形对象 | iOS11.4 |
SCNSceneSourceStatusComplete | SceneKit已成功加载场景文件的内容 | iOS11.4 |
typedef void (^SCNSceneSourceStatusHandler)(float totalProgress, SCNSceneSourceStatus status, NSError * _Nullable error, BOOL *stop);
SCNSceneSource SCNSceneSource对象,抽象数据读取任务。场景源可以从URL或NSData对象读取场景数据。为适当的源创建SCNSceneSource对象后,可以使用SCNSceneSource方法获取场景。
属 性 | 说明 | SDK版本 |
---|
NSURL *url | 接收者的URL(如果有的话) | iOS11.4 |
NSData *data | 接收者的URL(如果有的话) | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (nullable instancetype)sceneSourceWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options | 创建并初始化SCNSceneSource实例 | | iOS11.4 |
+ (nullable instancetype)sceneSourceWithData:(NSData *)data options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options | 创建并初始化SCNSceneSource实例 | | iOS11.4 |
- (nullable instancetype)initWithURL:(NSURL *)url options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options | 从URL初始化SCNSceneSource实例 | | iOS11.4 |
- (nullable instancetype)initWithData:(NSData *)data options:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options | 从NSData对象初始化SCNSceneSource实例 | | iOS11.4 |
- (nullable SCNScene *)sceneWithOptions:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options statusHandler:(nullable SCNSceneSourceStatusHandler)statusHandler | 使用指定的选项创建并初始化3D文件中描述的场景,并允许您监视进度 | | iOS11.4 |
- (nullable SCNScene *)sceneWithOptions:(nullable NSDictionary<SCNSceneSourceLoadingOption, id> *)options error:(NSError **)error | 使用指定的选项创建并初始化3D文件中描述的场景 | | iOS11.4 |
- (nullable id)propertyForKey:(NSString *)key | 返回给定键的3D文件中定义的属性。见上面的键 | | iOS11.4 |
- (nullable id)entryWithIdentifier:(NSString *)uid withClass:(Class)entryClass | 返回在id为“uid”的接收者库中找到的“entryClass”实例 | | iOS11.4 |
- (NSArray<NSString *> *)identifiersOfEntriesWithClass:(Class)entryClass | 返回接收器库中为“entryClass”类找到的ID | | iOS11.4 |
- (NSArray<id> *)entriesPassingTest:(NS_NOESCAPE BOOL (^)(id entry, NSString *identifier, BOOL *stop))predicate | 返回接收器库中通过给定块中的测试的条目 | MacOS10.9 | iOS11.4 |
文件SCNNode.h
渲染参数
常 量 | 说 明 | SDK版本 |
---|
SCNModelTransform | 一个4*4矩阵将坐标从模型空间转换为场景(或世界)空间 | iOS11.4 |
SCNViewTransform | 一个4*4矩阵将场景(或世界)空间中的坐标转换为视图(或眼睛)空间 | iOS11.4 |
SCNProjectionTransform | 一个4*4矩阵将视图(或眼睛)空间中的坐标转换为剪辑空间 | iOS11.4 |
SCNNormalTransform | 一个4*4矩阵将表面法向量从模型空间转换为视图(或眼睛)空间 | iOS11.4 |
SCNModelViewTransform | 一个包含模型和视图转换的串联 | iOS11.4 |
SCNModelViewProjectionTransform | 包含模型,视图和投影转换的串联 | iOS11.4 |
SCNMovabilityHint 可用的可移动模式
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNMovabilityHintFixed | 预计节点不会随时间移动 | iOS10.0 | iOS11.4 |
SCNMovabilityHintMovable | 该节点预计会随着时间的推移而移动 | iOS10.0 | iOS11.4 |
SCNNodeFocusBehavior 控制焦点(UIFocus)行为
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNNodeFocusBehaviorNone | 不可聚焦且节点对启用了焦点交互的其他节点没有影响 | iOS11.0 | iOS11.4 |
SCNNodeFocusBehaviorOccluding | 不可聚焦,但会阻止此节点在视觉上模糊的其他可聚焦节点无法聚焦 | iOS11.0 | iOS11.4 |
SCNNodeFocusBehaviorFocusable | 可聚焦并且还将阻止此节点在视觉上模糊的其他可聚焦节点不可聚焦 | iOS11.0 | iOS11.4 |
SCNNode
创建节点
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)node | 创建并初始化一个节点实例 | | iOS11.4 |
+ (SCNNode *)nodeWithGeometry:(nullable SCNGeometry *)geometry | 用指定几何体附件创建并初始化一个节点实例 | | iOS11.4 |
拷贝节点
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (instancetype)clone | 返回接收者的副本。返回的实例是自动释放的 | | iOS11.4 |
- (instancetype)flattenedClone | 返回包含几何的节点的克隆,该几何连接节点层次结构中包含的所有几何。返回的克隆是自动释放的。 | MacOS10.9 | iOS11.4 |
管理节点属性
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSString *name | 确定接收器的名称 | | iOS11.4 |
SCNLight *light | 确定连接到接收器的光照 | | iOS11.4 |
SCNCamera *camera | 确定连接到接收器的相机 | | iOS11.4 |
SCNGeometry *geometry | 返回附加到接收器的几何体 | | iOS11.4 |
SCNSkinner *skinner | 返回附加到接收器的skinner | MacOS10.9 | iOS11.4 |
SCNMorpher *morpher | 返回连接到接收器的变形器 | MacOS10.9 | iOS11.4 |
修改节点变换
属 性 与 方 法 | 说 明 | 备 注 | SDK版本 |
---|
SCNMatrix4 transform | 确定接收器的变换。动画。 | | |
SCNMatrix4 worldTransform | 确定接收器在世界空间中的变换(相对于场景的根节点)。动画。 | iOS11.0 | iOS11.4 |
- (void)setWorldTransform:(SCNMatrix4)worldTransform | | iOS11.0 | iOS11.4 |
SCNVector3 position | 确定接收器的位置。动画 | | iOS11.4 |
SCNVector3 worldPosition | 确定接收器在世界空间中的位置(相对于场景的根节点) | iOS11.0 | iOS11.4 |
SCNVector4 rotation | 确定接收器的旋转。动画。 | | iOS11.4 |
SCNQuaternion orientation | 将接收器的方向确定为单位四元数。动画 | MacOS10.10 | iOS11.4 |
SCNQuaternion worldOrientation | 确定接收器在世界空间中的方向(相对于场景的根节点)。动画 | iOS11.0 | iOS11.4 |
SCNVector3 eulerAngles | 确定接收器的欧拉角。动画 | MacOS10.10 | iOS11.4 |
SCNVector3 scale | 确定接收器的比例。动画 | | iOS11.4 |
SCNMatrix4 pivot | 确定接收器的枢轴。动画 | | iOS11.4 |
修改节点能见度
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL hidden | 确定是否显示接收器。默认为NO。动画 | | iOS11.4 |
CGFloat opacity | 确定接收器的不透明度。默认值为1.可动画。 | | iOS11.4 |
NSInteger renderingOrder | 确定接收器的渲染顺序 | | iOS11.4 |
BOOL castsShadow | 确定节点是否在阴影贴图中渲染。默认为YES。 | MacOS10.10 | iOS11.4 |
SCNMovabilityHint movabilityHint | 与SceneKit的渲染系统沟通,了解如何在场景中移动内容;它不会影响您更改节点位置或向节点添加动画或物理的能力。默认SCNMovabilityHintFixed。 | iOS10.0 | iOS11.4 |
管理节点层级
属 性 | 说 明 | 备 注 | SDK版本 |
---|
`SCNNode *parentNode | 返回接收方的父节点 | | iOS11.4 |
- (void)addChildNode:(SCNNode *)child | 将节点追加到接收者的childNodes数组 | | iOS11.4 |
- (void)insertChildNode:(SCNNode *)child atIndex:(NSUInteger)index | 在指定索引处的childNodes数组中插入节点 | | iOS11.4 |
- (void)removeFromParentNode | 从接收者的parentNode的childNodes数组中删除节点 | | iOS11.4 |
- (void)replaceChildNode:(SCNNode *)oldChild with:(SCNNode *)newChild | 从接收者的childNode数组中删除“child”,如果其位置非nil,则插入“child2” | | iOS11.4 |
搜索节点层级
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (nullable SCNNode *)childNodeWithName:(NSString *)name recursively:(BOOL)recursively | 返回在节点树中找到的具有指定名称的第一个节点 | | iOS11.4 |
- (NSArray<SCNNode *> *)childNodesPassingTest:(NS_NOESCAPE BOOL (^)(SCNNode *child, BOOL *stop))predicate | 返回在给定块中传递测试的接收器的子节点 | | iOS11.4 |
- (void)enumerateChildNodesUsingBlock:(NS_NOESCAPE void (^)(SCNNode *child, BOOL *stop))block | 在接收器下的每个子节点上执行给定块 | MacOS10.10 | iOS11.4 |
- (void)enumerateHierarchyUsingBlock:(NS_NOESCAPE void (^)(SCNNode *node, BOOL *stop))block | 在接收器及其子节点上执行给定块 | iOS10.0 | iOS11.4 |
在节点坐标系之间转换
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (SCNVector3)convertPosition:(SCNVector3)position toNode:(nullable SCNNode *)node | 将位置从接收器的坐标系转换为指定节点的位置 | MacOS10.9 | iOS11.4 |
- (SCNVector3)convertPosition:(SCNVector3)position fromNode:(nullable SCNNode *)node | 将位置从给定节点的坐标系转换为接收器的坐标系 | MacOS10.9 | iOS11.4 |
- (SCNVector3)convertVector:(SCNVector3)vector toNode:(nullable SCNNode *)node | 将矢量从给定节点的坐标系转换为接收器的坐标系 | iOS11.0 | iOS11.4 |
- (SCNVector3)convertVector:(SCNVector3)vector fromNode:(nullable SCNNode *)node | 将矢量从给定节点的坐标系转换为接收器的坐标系 | iOS11.0 | iOS11.4 |
- (SCNMatrix4)convertTransform:(SCNMatrix4)transform toNode:(nullable SCNNode *)node | 将转换从接收器的坐标系转换为指定节点的转换 | MacOS10.9 | iOS11.4 |
- (SCNMatrix4)convertTransform:(SCNMatrix4)transform fromNode:(nullable SCNNode *)node | 将变换从给定节点的坐标系转换为接收器的坐标系 | MacOS10.9 | iOS11.4 |
管理SCNNode的物理主体
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBody *physicsBody | 接收器物理主体的描述 | MacOS10.10 | iOS11.4 |
管理节点的物理场
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsField *physicsField | 接收器物理场的描述 | MacOS10.10 | iOS11.4 |
管理节点的约束
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<SCNConstraint *> *constraints | 应用于接收器的SCNConstraint数组 | MacOS10.9 | iOS11.4 |
访问节点的过滤器
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<CIFilter *> *filters | 一组核心图像过滤器,应用于接收器及其子节点的渲染。动画 | | iOS11.4 |
访问演示节点
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *presentationNode | 返回表示节点 | | iOS11.4 |
暂停
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL paused | 控制节点的动作和动画是否更新或暂停。默认为NO。 | MacOS10.10 | iOS11.4 |
使用自定义OpenGL代码覆盖渲染
属 性 | 说 明 | 备 注 | SDK版本 |
---|
id <SCNNodeRendererDelegate> rendererDelegate | 指定接收器的渲染器委托对象 | | iOS11.4 |
节点点击测试
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (NSArray<SCNHitTestResult *> *)hitTestWithSegmentFromPoint:(SCNVector3)pointA toPoint:(SCNVector3)pointB options:(nullable NSDictionary<NSString *, id> *)options | 返回接收器子树中与指定段相交的每个节点的SCNHitTestResult数组 | MacOS10.9 | iOS11.4 |
节点类别
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSUInteger categoryBitMask | 定义接收器所属的逻辑“类别”。默认为1 | MacOS10.10 | iOS11.4 |
UIFocus支持
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNodeFocusBehavior focusBehavior | 控制接收器关于UIFocus系统的行为。默认为SCNNodeFocusBehaviorNone | iOS11.0 | iOS11.4 |
SCNNode(变换)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNVector3 localUp | 本地单位Y轴(0,0,1) | iOS11.0 | iOS11.4 |
SCNVector3 localRight | 本地单位X轴(0,1,0) | iOS11.0 | iOS11.4 |
SCNVector3 localFront | 本地单位-Z轴 (0,0,-1) | iOS11.0 | iOS11.4 |
SCNVector3 worldUp | 在世界空间中本地单位Y轴(0,0,1) | iOS11.0 | iOS11.4 |
SCNVector3 worldRight | 世界空间中本地单位X轴(0,1,0) | iOS11.0 | iOS11.4 |
SCNVector3 worldFront | 世界空间中本地单位-Z轴(0,0-1) | iOS11.0 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)lookAt:(SCNVector3)worldTarget | 方便调用lookAt:up:localFront:将worldUp设置为self.worldUp 和localFront [SCNNode localFront] | iOS11.0 | iOS11.4 |
- (void)lookAt:(SCNVector3)worldTarget up:(SCNVector3)worldUp localFront:(SCNVector3)localFront | 设置节点的方向,使其前向量指向给定的方向目标。在世界空间中使用参考向上矢量和在中使用前向量当地的空间 | iOS11.0 | iOS11.4 |
- (void)localTranslateBy:(SCNVector3)translation | 在本地空间中沿给定向量转换当前节点位置 | iOS11.0 | iOS11.4 |
- (void)localRotateBy:(SCNQuaternion)rotation | 将给定的旋转应用于当前旋转 | iOS11.0 | iOS11.4 |
- (void)rotateBy:(SCNQuaternion)worldRotation aroundTarget:(SCNVector3)worldTarget | 相对于父空间中的目标点应用旋转 | iOS11.0 | iOS11.4 |
SCNNodeRendererDelegate协议(在呈现节点时调用)
- (void)renderNode:(SCNNode *)node renderer:(SCNRenderer *)renderer arguments:(NSDictionary<NSString *, id> *)arguments
SCNNode(SIMD)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
simd_float4x4 simdTransform | 确定接收器的变换。动画 | iOS11.0 | iOS11.4 |
simd_float3 simdPosition | 确定接收器的位置。动画 | iOS11.0 | iOS11.4 |
simd_float4 simdRotation | 确定接收器的旋转。动画 | iOS11.0 | iOS11.4 |
simd_quatf simdOrientation | 将接收器的方向确定为单位四元数。动画 | iOS11.0 | iOS11.4 |
simd_float3 simdEulerAngles | 确定接收器的欧拉角。动画 | iOS11.0 | iOS11.4 |
simd_float3 simdScale | 确定接收器的比例。动画 | iOS11.0 | iOS11.4 |
simd_float4x4 simdPivot | 确定接收器的枢轴。动画 | iOS11.0 | iOS11.4 |
simd_float3 simdWorldPosition | 确定接收器在世界空间中的位置(相对于场景的根节点) | iOS11.0 | iOS11.4 |
simd_quatf simdWorldOrientation | 确定接收器在世界空间中的方向(相对于场景的根节点)。动画 | iOS11.0 | iOS11.4 |
simd_float4x4 simdWorldTransform | 确定接收器在世界空间中的变换(相对于场景的根节点)。动画 | iOS11.0 | iOS11.4 |
simd_float3 simdLocalUp | | iOS11.0 | iOS11.4 |
simd_float3 simdLocalRight | | iOS11.0 | iOS11.4 |
simd_float3 simdLocalFront | | iOS11.0 | iOS11.4 |
simd_float3 simdWorldUp | | iOS11.0 | iOS11.4 |
simd_float3 simdWorldRight | | iOS11.0 | iOS11.4 |
simd_float3 simdWorldFront | | iOS11.0 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (simd_float3)simdConvertPosition:(simd_float3)position toNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (simd_float3)simdConvertPosition:(simd_float3)position fromNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (simd_float3)simdConvertVector:(simd_float3)vector toNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (simd_float3)simdConvertVector:(simd_float3)vector fromNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (simd_float4x4)simdConvertTransform:(simd_float4x4)transform toNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (simd_float4x4)simdConvertTransform:(simd_float4x4)transform fromNode:(nullable SCNNode *)node | | iOS11.0 | iOS11.4 |
- (void)simdLookAt:(vector_float3)worldTarget | | iOS11.0 | iOS11.4 |
- (void)simdLookAt:(vector_float3)worldTarget up:(vector_float3)worldUp localFront:(simd_float3)localFront | | iOS11.0 | iOS11.4 |
- (void)simdLocalTranslateBy:(simd_float3)translation | | iOS11.0 | iOS11.4 |
- (void)simdLocalRotateBy:(simd_quatf)rotation | | iOS11.0 | iOS11.4 |
- (void)simdRotateBy:(simd_quatf)worldRotation aroundTarget:(simd_float3)worldTarget | | iOS11.0 | iOS11.4 |
文件SCNLight.h
#import <SceneKit/SCNLight.h>
内容简介
光照类型(SCNLightType)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNLightTypeAmbient | 环境光 | | iOS11.4 |
SCNLightTypeOmni | 全向光 | | iOS11.4 |
SCNLightTypeDirectional | 定向光 | | iOS11.4 |
SCNLightTypeSpot | 点光 | | iOS11.4 |
SCNLightTypeIES | IES光 | | iOS11.4 |
SCNLightTypeProbe | 光探头 | | iOS11.4 |
阴影模式(SCNShadowMode)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNShadowModeForward | 环境光 | | iOS11.4 |
SCNShadowModeDeferred | 全向光 | | iOS11.4 |
SCNShadowModeModulated | 定向光 | | iOS11.4 |
SCNLight(SCNLight表示可以附加到SCNNode的光照)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)light | 创建并返回一个光照对象 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNLightType type | 指定接收者类型 | | iOS11.4 |
id color | 指定接收器颜色(NSColor或CGColorRef)。动画。默认是白色 | | iOS11.4 |
CGFloat temperature | 指定接收器的温度 | | iOS11.4 |
CGFloat intensity | 指定接收器的强度 | | iOS11.4 |
NSString *name | 确定接收器的名字 | | iOS11.4 |
阴影
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL castShadow | 确定是否接收器投射一个阴影 | | iOS11.4 |
CGSize shadowMapSize | 指定阴影图的大小 | MacOS10.10 | iOS11.4 |
CGSize shadowMapSize | 指定每个片元采样数量来计算阴影映射。默认是0 | MacOS10.10 | iOS11.4 |
SCNShadowMode shadowMode | 投射阴影模式。默认是SCNShadowModeForward | MacOS10.10 | |
CGFloat shadowBias | 指定要应用于阴影贴图以校正痤疮假象的校正。它乘以特定于实现的值以创建恒定的深度偏移。默认为1.0 | MacOS10.10 | iOS11.4 |
BOOL automaticallyAdjustsShadowProjection | 指定阴影贴图投影是应由用户自动完成还是手动完成。默认为YES | iOS11.0 | iOS11.4 |
CGFloat maximumShadowDistance | 指定距离视点的最大距离,从该视点不会计算接收器光的阴影。默认为100.0 | iOS11.0 | iOS11.4 |
BOOL forcesBackFaceCasters | 启用时,仅渲染阴影施法者的背面。默认为NO。 | | |
这是以前版本中的行为更改 | iOS11.0 | iOS11.4 |
| BOOL sampleDistributedShadowMaps
| 使用主渲染的样本分布来更好地适应阴影截头。默认为NO | iOS11.0 | iOS11.4 |
| NSUInteger shadowCascadeCount
| 指定将为接收器灯计算的不同阴影贴图的数量。默认为1.最大值为4 | iOS11.0 | iOS11.4 |
| CGFloat shadowCascadeSplittingFactor
| 指定在线性分割(0)和对数分割(1)之间进行插值的因子。默认为0.15 | iOS11.0 | iOS11.4 |
阴影光照投影设置
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat orthographicScale | 指定用于从定向光渲染到阴影贴图的正交比例。默认为1 | MacOS10.10 | iOS11.4 |
CGFloat zNear | 指定灯光和投射阴影的曲面之间的最小距离。如果表面比这个最小距离更接近光线,那么表面将不会被遮蔽。近值必须不等于零。动画。默认为1 | MacOS10.10 | iOS11.4 |
CGFloat zFar | 指定灯光和可见曲面之间的最大距离以投射阴影。如果表面离光线的距离超过该最大距离,则表面不会被遮蔽。动画。默认为100 | MacOS10.10 | iOS11.4 |
衰减
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat attenuationStartDistance | 衰减开始的距离(仅限Omni或Spot光类型)。动画。默认为0 | MacOS10.10 | iOS11.4 |
CGFloat attenuationEndDistance | 衰减结束的距离(仅限Omni或Spot光类型)。动画。默认为0 | MacOS10.10 | iOS11.4 |
CGFloat attenuationFalloffExponent | 指定起始和结束衰减距离之间的衰减。 0表示恒定衰减,1表示线性衰减,2表示二次衰减,但任何正值均可使用(仅限Omni或Spot光类型)。动画。默认为2 | MacOS10.10 | iOS11.4 |
点光参数
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat spotInnerAngle | 光点方向与点亮元素之间的角度,低于该角度,照明处于全强度。动画。默认为0 | MacOS10.10 | iOS11.4 |
CGFloat spotOuterAngle | 点光源与点亮元件之间的角度,在此之后照明处于零强度。动画。默认为45度 | MacOS10.10 | iOS11.4 |
其他
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNMaterialProperty *gobo | 指定灯光的遮光板(或“cookie”),用于控制发光的形状。默认为零 | MacOS10.9 | iOS11.4 |
NSURL *IESProfileURL | 指定IES文件,从中确定照明的形状,方向和强度。默认为零 | iOS10.0 | iOS11.4 |
NSUInteger categoryBitMask | 确定接收器将点亮的节点类别。默认为所有位设置 | MacOS10.10 | iOS11.4 |
NSData *sphericalHarmonicsCoefficients | 接收器的球谐函数系数 | iOS11.0 | iOS11.4 |
文件SCNCamera
#import <SceneKit/SCNCamera.h>
内容简介
SCNCameraProjectionDirection
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNCameraProjectionDirectionVertical | | | iOS11.4 |
SCNCameraProjectionDirectionHorizontal | | | iOS11.4 |
SCNCamera(表示可以连接到SCNNode的摄像头)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
| 创建并返回一个相机实例 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSString *name | 确定接收器的名称 | | iOS11.4 |
CGFloat fieldOfView | 确定接收者的视野(以度为单位)。动画 | iOS11.0 | iOS11.4 |
SCNCameraProjectionDirection projectionDirection | 确定视野(或正交比例)是垂直还是水平。默认为垂直 | iOS11.0 | iOS11.4 |
CGFloat focalLength | 确定接收器的焦距,单位为毫米。动画 | iOS11.0 | iOS11.4 |
CGFloat sensorHeight | 以毫米为单位确定传感器的垂直尺寸。动画 | iOS11.0 | iOS11.4 |
double zNear | 确定接收器的近似值。动画 | | iOS11.4 |
double zFar | 确定接收器的远值。动画 | | iOS11.4 |
BOOL automaticallyAdjustsZRange | 确定接收器是否自动调整zFar值。默认为NO | MacOS10.9 | iOS11.4 |
BOOL usesOrthographicProjection | 确定接收器是否使用正交投影。默认为NO | | iOS11.4 |
double orthographicScale | 确定接收器的正交比例值。动画。默认为1 | MacOS10.9 | iOS11.4 |
SCNMatrix4 projectionTransform | 确定摄像机用于在屏幕上投影世界的投影变换 | | iOS11.4 |
景深
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL wantsDepthOfField | 确定接收器是否具有景深。默认为NO | iOS11.0 | iOS11.4 |
CGFloat focusDistance | 确定接收器的焦距。动画 | iOS11.0 | iOS11.4 |
CGFloat fStop | 确定接收器的fstop。动画 | iOS11.0 | iOS11.4 |
NSInteger apertureBladeCount | 确定接收器的光圈刀片数 | iOS11.0 | iOS11.4 |
CGFloat motionBlurIntensity | 确定运动模糊的强度。动画。默认为0 | iOS10.0 | iOS11.4 |
CGFloat screenSpaceAmbientOcclusionIntensity | 确定屏幕空间环境遮挡的强度。动画 | iOS11.0 | iOS11.4 |
CGFloat screenSpaceAmbientOcclusionRadius | 确定场景单元中的屏幕空间环境遮挡半径。动画 | iOS11.0 | iOS11.4 |
CGFloat screenSpaceAmbientOcclusionBias | 确定场景单元中的自遮挡偏差 | iOS11.0 | iOS11.4 |
CGFloat screenSpaceAmbientOcclusionDepthThreshold | 确定场景单元中的深度模糊阈值 | iOS11.0 | iOS11.4 |
BOOL wantsHDR | 确定接收器是否具有高动态范围。默认为NO | iOS10.0 | iOS11.4 |
CGFloat exposureOffset | 确定EV中的logarithimc曝光偏置。默认为0 | iOS10.0 | iOS11.4 |
CGFloat averageGray | 确定最终图像中所需的平均灰度级。默认为0.18 | iOS10.0 | iOS11.4 |
CGFloat whitePoint | 确定将在最终图像中映射为白色的最小亮度级别。默认为1 | iOS10.0 | iOS11.4 |
BOOL wantsExposureAdaptation | 确定接收器是否应模拟眼睛并持续调整亮度。默认为YES | iOS10.0 | iOS11.4 |
CGFloat exposureAdaptationBrighteningSpeedFactor | 确定从明亮区域到暗区域时的曝光适应速度。默认为0.4 | iOS10.0 | iOS11.4 |
CGFloat exposureAdaptationDarkeningSpeedFactor | 确定从暗区到亮区时的曝光适应速度。默认为0.6 | iOS10.0 | iOS11.4 |
CGFloat minimumExposure | 确定适应的最小曝光偏移,以EV为单位。默认为-15 | iOS10.0 | iOS11.4 |
CGFloat maximumExposure | 确定自适应的最大曝光偏移,以EV为单位。默认为-15 | iOS10.0 | iOS11.4 |
CGFloat bloomThreshold | 确定绽放效果的亮度阈值。动画。默认为1 | iOS10.0 | iOS11.4 |
CGFloat bloomIntensity | 确定绽放效果的强度。动画。默认为0(无效) | iOS10.0 | iOS11.4 |
CGFloat bloomBlurRadius | 以磅为单位确定绽放效果的半径。动画。默认为4 | iOS10.0 | iOS11.4 |
CGFloat vignettingPower | 控制渐晕效果的形状。默认为0(无效) | iOS10.0 | iOS11.4 |
CGFloat vignettingIntensity | 控制渐晕效果的强度。默认为0(无效) | iOS10.0 | iOS11.4 |
CGFloat colorFringeStrength | 控制色移效果的强度。默认为0(无效) | iOS10.0 | iOS11.4 |
CGFloat colorFringeIntensity | 控制色移效果的强度。默认为1 | iOS10.0 | iOS11.4 |
CGFloat saturation | 控制场景的整体饱和度。默认为1(无效) | iOS10.0 | iOS11.4 |
CGFloat contrast | 控制场景的整体对比度。默认为0(无效) | iOS10.0 | iOS11.4 |
SCNMaterialProperty *colorGrading | 指定要应用颜色分级的查找纹理。内容必须是表示单位颜色立方体纹理的“n”个切片的2D图像,排列在“n”图像的水平行中。例如,尺寸为16x16x16的颜色立方体应作为尺寸为256x16的图像提供 | iOS10.0 | iOS11.4 |
NSUInteger categoryBitMask | 确定从接收器可见的节点类别。默认为所有设置的位 | MacOS10.10 | iOS11.4 |
CGFloat focalBlurRadius | 确定接收器的焦点半径。动画。 | 已废弃(使用fStop代替)iOS8.0-11.0 | iOS11.4 |
double xFov | 确定接收器在X轴上的视野(以度为单位)。动画 | 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)iOS8.0-11.0 | iOS11.4 |
double yFov | 确定Y轴上接收器的视野(以度为单位)。动画 | 已废弃(使用-[SCNCamera fieldOfView] or -[SCNCamera focalLength]代替)iOS8.0-11.0 | iOS11.4 |
CGFloat aperture | 确定接收器的光圈。动画 | 已废弃(使用-[SCNCamera fStop] instead with fStop = sensorHeight / aperture代替)iOS8.0-11.0 | iOS11.4 |
CGFloat focalSize | 确定接收器的焦点大小。动画 | 已废弃(使用-focusDistance代替)iOS8.0-11.0 | iOS11.4 |
CGFloat focalDistance | 确定接收器的焦距。动画 | 已废弃(使用-focusDistance代替)iOS8.0-11.0 | iOS11.4 |
文件SCNMaterial.h
#import <SceneKit/SCNMaterial.h>
内容简介
SCNLightingModel
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNLightingModelPhong | 产生一个镜面阴影表面,根据Phong BRDF近似,镜面反射被遮蔽 | | iOS11.4 |
SCNLightingModelBlinn | 使用Blinn BRDF近似产生镜面阴影表面 | | iOS11.4 |
SCNLightingModelLambert | 产生漫反射阴影表面,没有镜面反射 | | iOS11.4 |
SCNLightingModelConstant | 产生一个独立于灯光的阴影表面 | | iOS11.4 |
SCNLightingModelPhysicallyBased | | iOS10.0 | iOS11.4 |
SCNFillMode
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNFillModeFill | | iOS11.0 | iOS11.4 |
SCNFillModeLines | | iOS11.0 | iOS11.4 |
SCNCullMode
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNCullModeBack | | | iOS11.4 |
SCNCullModeFront | | | iOS11.4 |
* #define SCNCullBack SCNCullModeBack
* #define SCNCullFront SCNCullModeFront
SCNTransparencyMode
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNTransparencyModeAOne | 从Alpha通道获取透明度信息。值1.0是不透明的 | | iOS11.4 |
SCNTransparencyModeRGBZero | 忽略Alpha通道并从红色,绿色和蓝色通道的亮度中 获取透明度信息。值0.0是不透明的 | | iOS11.4 |
SCNTransparencyModeSingleLayer | 确保正确绘制一层透明度 | iOS11.0 | iOS11.4 |
SCNTransparencyModeDualLayer | 确保正确排序和绘制两层透明度。当您想要同时看到正面和背面时,这应该用于透明凸面对象,如立方体和球体 | iOS11.0 | iOS11.4 |
SCNTransparencyModeDefault | SCNTransparencyModeAOne | iOS11.0 | iOS11.4 |
SCNBlendMode
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNBlendModeAlpha | 通过将源乘以源alpha并将目标乘以1减去源alpha来混合源颜色和目标颜色 | | iOS11.4 |
SCNBlendModeAdd | 通过添加源颜色和目标颜色来混合它们 | | iOS11.4 |
SCNBlendModeSubtract | 通过从目标中减去源来混合源颜色和目标颜色 | 通过将它们相乘来混合源颜色和目标颜色 | iOS11.4 |
SCNBlendModeMultiply | 通过将它们相乘来混合源颜色和目标颜色 | | iOS11.4 |
SCNBlendModeScreen | 通过将一个减去源与目标相乘并添加源来混合源颜色和目标颜色 | | iOS11.4 |
SCNBlendModeReplace | 用源替换目标(忽略alpha) | | iOS11.4 |
SCNBlendModeMax | 使用源最大化目标(忽略alpha) | | iOS11.4 |
SCNMaterial(SCNMaterial确定几何体如何被渲染。它包括颜色以及定义3D几何体表面的纹理)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)material | 创建并初始化一个材质实例 | | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
NSString *name | 确定接收者的名称 | | iOS11.4 |
材质属性
方 法 | 说 明 | 备 注 | SDK版本 |
---|
SCNMaterialProperty *diffuse | 指定接收者的漫反射属性 | | iOS11.4 |
SCNMaterialProperty *ambient | 指定接收者的环境属性 | | iOS11.4 |
SCNMaterialProperty *specular | 指定接收器的镜面属性 | | iOS11.4 |
SCNMaterialProperty *emission | 发射属性指定材料发射的光量。此发射不会照亮场景中的其他表面 | | iOS11.4 |
SCNMaterialProperty *transparent | transparent属性指定材质的透明区域 | | iOS11.4 |
SCNMaterialProperty *multiply | multiply属性指定用于将输出片段与其相乘的颜色或图像。计算的片段与乘法值相乘以产生最终片段。此属性可用于阴影贴图,淡出或着色3d对象 | | iOS11.4 |
SCNMaterialProperty *normal | normal属性指定曲面方向 | | iOS11.4 |
SCNMaterialProperty *displacement | | iOS11.0 | iOS11.4 |
SCNMaterialProperty *ambientOcclusion | ambientOcclusion属性指定曲面的环境光遮挡。环境遮挡与环境光相乘,然后将结果添加到照明贡献中。此属性对没有环境光的场景没有视觉影响。设置环境光遮挡贴图时,将忽略环境属性 | iOS9.0 | iOS11.4 |
SCNMaterialProperty *selfIllumination | selfIllumination属性指定添加到曲面的光照贡献的纹理或颜色。设置selfIllumination时,将忽略发射属性 | iOS9.0 | iOS11.4 |
SCNMaterialProperty *metalness | 金属属性指定材料表面的金属化程度。较低的值(较暗的颜色)使材料看起来更像电介质表面。较高的值(较亮的颜色)会使表面看起来更金属。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性 | iOS10.0 | iOS11.4 |
SCNMaterialProperty *roughness | 粗糙度属性指定表面的表观光滑度。较低的值(较暗的颜色)会使材质看起来有光泽,并具有明确定义的镜面高光。较高的值(较亮的颜色)会使镜面反射高光扩散,并使材料的漫反射特性变得更具逆向反射性。仅当’lightingModelName’为’SCNLightingModelPhysicallyBased’时才使用此属性 | iOS10.0 | iOS11.4 |
CGFloat shininess | 指定接收器的光泽度值。默认为1.0。动画 | | iOS11.4 |
CGFloat transparency | 确定接收器的照明模型。请参阅上面的照明模型列表。默认为SCNLightingModelBlinn | iOS10.0 | iOS11.4 |
BOOL litPerPixel | 确定接收器是否按每个像素点亮。默认为YES。动画 | | iOS11.4 |
BOOL doubleSided | 确定接收器是否为双面。默认为NO。动画 | | iOS11.4 |
SCNFillMode fillMode | 确定如何光栅化接收器的基元。默认为SCNFillModeFill | iOS11.0 | iOS11.4 |
SCNCullMode cullMode | 确定接收器的剔除模式。默认为SCNCullBack。动画 | | iOS11.4 |
SCNTransparencyMode transparencyMode | 确定接收器的透明度模式。有关透明度模式,请参见上文。默认为SCNTransparencyModeDefault | | iOS11.4 |
BOOL locksAmbientWithDiffuse | 使ambient属性自动匹配diffuse属性。默认为YES。动画 | | iOS11.4 |
BOOL writesToDepthBuffer | 确定接收器在渲染时是否写入深度缓冲区。默认为YES | | iOS11.4 |
SCNColorMask colorBufferWriteMask | 确定接收器在渲染时是否写入颜色缓冲区。默认为SCNColorMaskAll | iOS11.0 | iOS11.4 |
BOOL readsFromDepthBuffer | 确定接收器在渲染时是否从深度缓冲区读取。默认为YES | MacOS10.9 | iOS11.4 |
CGFloat fresnelExponent | 指定接收者的菲涅耳指数值。默认为0.0。动画 | MacOS10.9 | iOS11.4 |
SCNBlendMode blendMode | 指定接收器的混合模式。默认为SCNBlendModeAlpha | iOS9.0 | iOS11.4 |
文件SCNMaterialProperty.h
#import <SceneKit/SCNMaterialProperty.h>
内容简介
SCNFilterMode(过滤模式)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNFilterModeNone | | MacOS10.9 | iOS11.4 |
SCNFilterModeNearest | | MacOS10.9 | iOS11.4 |
SCNFilterModeLinear | | MacOS10.9 | iOS11.4 |
SCNWrapeMode(包裹模式)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNWrapModeClamp | | MacOS10.9 | iOS11.4 |
SCNWrapModeRepeat | | MacOS10.9 | iOS11.4 |
SCNWrapModeClampToBorder | | MacOS10.9 | iOS11.4 |
SCNWrapModeMirror | | MacOS10.9 | iOS11.4 |
SCNMaterialProperty(SCNMaterial插槽的内容)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)materialPropertyWithContents:(id)contents | 使用指定的内容创建并初始化属性实例 | MacOS10.9 | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
id contents | 指定接收者的内容。这可以是颜色(NSColor,UIColor,CGColorRef),图像(NSImage,UIImage,CGImageRef),图层(CALayer),路径(NSString或NSURL),SpriteKit场景(SKScene),纹理(SKTexture,id) 或GLKTextureInfo),或介于0和1之间的浮动值(NSNumber),用于金属度和粗糙度属性。 iOS 11支持AVCaptureDevice,macOS 10.13,iOS 11和tvOS 11支持AVPlayer。设置为颜色时可动画 | | iOS11.4 |
CGFloat intensity | 确定接收器的强度。该强度用于以几种方式调节性质。它使漫反射,镜面反射和发射特性变暗,它改变了普通属性的凹凸感过滤属性与白色混合。默认值为1.0。动画 | MacOS10.9 | iOS11.4 |
SCNFilterMode minificationFilter | 指定呈现内容时使用的过滤器类型(在`contents’属性中指定) | | iOS11.4 |
SCNFilterMode magnificationFilter | 指定呈现内容时使用的过滤器类型(在`contents’属性中指定) | | iOS11.4 |
SCNFilterMode mipFilter | 指定在缩小期间使用的mipmap过滤器 | | iOS11.4 |
SCNMatrix4 contentsTransform | 确定接收者的内容变换。动画 | | iOS11.4 |
SCNWrapMode wrapS | 确定接收器的s纹理坐标的包裹模式。默认为SCNWrapModeClamp | | iOS11.4 |
SCNWrapMode wrapT | 确定t纹理坐标的接收器换行模式。默认为SCNWrapModeClamp | | iOS11.4 |
id borderColor | 确定接收器的边框颜色(CGColorRef或UIColor)。动画 | 已废弃 iOS8.0-9.0 | iOS11.4 |
NSInteger mappingChannel | 确定接收器的映射通道。默认为0 | | iOS11.4 |
SCNColorMask textureComponents | 指定要在着色器中采样的纹理组件。对于displa属性,默认为SCNColorMaskRed;对于其他属性,默认为SCNColorMaskAll | iOS11.0 | iOS11.4 |
CGFloat maxAnisotropy | 指定接收器的最大各向异性。默认为1.0 | MacOS10.9 | iOS11.4 |
文件SCNGeometry.h
#import <SceneKit/SCNGeometry.h>
内容简介
SCNGeometryPrimitiveType
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNGeometryPrimitiveTypeTriangles | | | iOS11.4 |
SCNGeometryPrimitiveTypeTriangleStrip | | | iOS11.4 |
SCNGeometryPrimitiveTypeLine | | | iOS11.4 |
SCNGeometryPrimitiveTypePoint | | | iOS11.4 |
SCNGeometryPrimitiveTypePolygon | | iOS10.0 | iOS11.4 |
SCNGeometrySourceSemantic
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNGeometrySourceSemanticVertex | | | iOS11.4 |
SCNGeometrySourceSemanticNormal | | | iOS11.4 |
SCNGeometrySourceSemanticColor | | | iOS11.4 |
SCNGeometrySourceSemanticTexcoord | | | iOS11.4 |
SCNGeometrySourceSemanticTangent | | iOS10.0 | iOS11.4 |
SCNGeometrySourceSemanticVertexCrease | | MacOS10.10 | iOS11.4 |
SCNGeometrySourceSemanticEdgeCrease | | MacOS10.10 | iOS11.4 |
SCNGeometrySourceSemanticBoneWeights | | MacOS10.10 | iOS11.4 |
SCNGeometrySourceSemanticBoneIndices | | MacOS10.10 | iOS11.4 |
SCNGeometry(SCNGeometry是一个抽象类,表示可以附加到SCNNode的几何)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)geometry | 创建并返回一个空的几何体对象 | MacOS10.9 | iOS11.4 |
- (void)insertMaterial:(SCNMaterial *)material atIndex:(NSUInteger)index | 在指定索引处的材质数组中插入材质 | | iOS11.4 |
- (void)removeMaterialAtIndex:(NSUInteger)index | 从材料数组中删除指定索引处的材质 | | iOS11.4 |
- (void)replaceMaterialAtIndex:(NSUInteger)index withMaterial:(SCNMaterial *)material | 从接收器的材料阵列中删除索引’index’处的材料,并在其位置插入’material’ | | iOS11.4 |
- (nullable SCNMaterial *)materialWithName:(NSString *)name | 返回具有指定名称的接收器的材质数组中的第一个材质 | | iOS11.4 |
+ (instancetype)geometryWithSources:(NSArray<SCNGeometrySource *> *)sources elements:(nullable NSArray<SCNGeometryElement *> *)elements | 创建并返回从几何体源和几何元素构建的新几何体 | | iOS11.4 |
- (NSArray<SCNGeometrySource *> *)geometrySourcesForSemantic:(SCNGeometrySourceSemantic)semantic | 返回给定语义的几何源 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSString *name | 确定接收器的名称 | | iOS11.4 |
NSArray<SCNMaterial *> *materials | 指定接收器的材质数组 | | iOS11.4 |
SCNMaterial *firstMaterial | 确定几何体的第一个材质。如果几何体没有材质,则返回nil | | iOS11.4 |
NSArray<SCNGeometrySource *> *geometrySources | 接收器的几何源阵列 | MacOS10.10 | iOS11.4 |
NSArray<SCNGeometryElement *> *geometryElements | 接收器的几何元素数组 | MacOS10.10 | iOS11.4 |
NSInteger geometryElementCount | 返回几何所拥有的几何元素的数量 | | iOS11.4 |
NSArray<SCNLevelOfDetail *> *levelsOfDetail | 确定接收器的详细程度。默认为nil | MacOS10.9 | iOS11.4 |
SCNGeometryTessellator *tessellator | 指定如何在GPU上的渲染时对几何体进行细分。默认为零 | iOS11.0 | iOS11.4 |
NSUInteger subdivisionLevel | 指定接收器的细分级别。默认为0 | MacOS10.10 | iOS11.4 |
BOOL wantsAdaptiveSubdivision | 指定细分是自适应还是统一。默认为YES | iOS11.0 | iOS11.4 |
SCNGeometryElement *edgeCreasesElement | 指定控制细分的边缘折痕。默认为零 | MacOS10.10 | iOS11.4 |
SCNGeometrySource *edgeCreasesSource | 指定edgeCreasesElement指定的边的折痕值。默认为nil | MacOS10.10 | iOS11.4 |
SCNGeometrySource
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)geometrySourceWithData:(NSData *)data semantic:(SCNGeometrySourceSemantic)semantic vectorCount:(NSInteger)vectorCount floatComponents:(BOOL)floatComponents componentsPerVector:(NSInteger)componentsPerVector bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride | 根据给定的数据和参数创建并返回几何源 | | iOS11.4 |
+ (instancetype)geometrySourceWithVertices:(const SCNVector3 *)vertices count:(NSInteger)count | 从存储在SCNVector3值的缓冲区中的顶点创建并返回几何源 | | iOS11.4 |
+ (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count | 从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 | | iOS11.4 |
+ (instancetype)geometrySourceWithNormals:(const SCNVector3 *)normals count:(NSInteger)count | 从存储在SCNVector3值的缓冲区中的法线创建并返回几何源 | | iOS11.4 |
+ (instancetype)geometrySourceWithTextureCoordinates:(const CGPoint *)texcoord count:(NSInteger)count | | iOS11.4 | |
- (void)renderer:(id <SCNSceneRenderer>)aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time | | iOS11.4 | |
+ (instancetype)geometrySourceWithBuffer:(id <MTLBuffer>)mtlBuffer vertexFormat:(MTLVertexFormat)vertexFormat semantic:(SCNGeometrySourceSemantic)semantic vertexCount:(NSInteger)vertexCount dataOffset:(NSInteger)offset dataStride:(NSInteger)stride | iOS9.0 | iOS11.4 | |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSData *data | 几何源的数据 | | iOS11.4 |
SCNGeometrySourceSemantic semantic | 几何源的语义 | | iOS11.4 |
NSInteger vectorCount | 数据中的向量数 | | iOS11.4 |
BOOL floatComponents | 一个标志,指示矢量组件是否为浮点值 | | iOS11.4 |
NSInteger componentsPerVector | 每个向量中的标量分量数 | | iOS11.4 |
NSInteger bytesPerComponent | 矢量分量的大小(以字节为单位) | | iOS11.4 |
NSInteger dataOffset | 从数据开头的偏移量。以字节为单位 | | iOS11.4 |
NSInteger dataStride | 数据中从向量到下一个向量的字节数 | | iOS11.4 |
SCNGeometryElement(几何元素描述几何源的顶点如何连接在一起)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)geometryElementWithData:(nullable NSData *)data primitiveType:(SCNGeometryPrimitiveType)primitiveType primitiveCount:(NSInteger)primitiveCount bytesPerIndex:(NSInteger)bytesPerIndex | 根据给定的数据和数据格式信息创建并返回几何元素 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSData *data | 几何元素的数据 | | iOS11.4 |
SCNGeometryPrimitiveType primitiveType | 几何元素的类型。可能的值列在SCNGeometryPrimitiveType枚举中 | | iOS11.4 |
NSInteger primitiveCount | 数据中的基元数量 | | iOS11.4 |
NSRange primitiveRange | 要渲染的基元的子范围。默认为[NSNotFound,0] | iOS11.0 | iOS11.4 |
NSInteger bytesPerIndex | 表示索引值的字节数 | | iOS11.4 |
CGFloat pointSize | 指定本地空间中的点的大小。默认为1 | iOS11.0 | iOS11.4 |
CGFloat minimumPointScreenSpaceRadius | 指定屏幕空间中的最小大小(以像素为单位)。默认为1 | iOS11.0 | iOS11.4 |
CGFloat maximumPointScreenSpaceRadius | 指定屏幕空间中的最大大小(以像素为单位)。默认为1 | iOS11.0 | iOS11.4 |
SCNTessellationSmoothingMode
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNTessellationSmoothingModeNone | | | iOS11.4 |
SCNTessellationSmoothingModePNTriangles | | | iOS11.4 |
SCNTessellationSmoothingModePhong | | | iOS11.4 |
SCNGeometryTessellator(几何曲面细分器描述了如何从几何体的初始曲面计算更详细的曲面)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat tessellationFactorScale | 指定应用于每个修补程序细分因子的比例因子。默认为1 | | iOS11.4 |
MTLTessellationPartitionMode tessellationPartitionMode | 指定细分分区模式。默认为MTLTessellationPartitionModeInteger | | iOS11.4 |
BOOL adaptive | 指定曲面细分应该是统一的还是自适应的。默认为NO | | iOS11.4 |
BOOL screenSpace | 指定是否应在screenSpace中调整曲面细分级别。默认为NO | | iOS11.4 |
CGFloat edgeTessellationFactor | 指定边缘细分因子。默认为1 | | iOS11.4 |
CGFloat insideTessellationFactor | 指定内部曲面细分因子。默认为1 | | iOS11.4 |
CGFloat maximumEdgeLength | 指定最大边长。默认为1 | | iOS11.4 |
SCNTessellationSmoothingMode smoothingMode | 默认为SCNTessellationSmoothingModeNone | | iOS11.4 |
文件SCNParametricGeometry.h
#import <SceneKit/SCNParametricGeometry.h>
内容简介
SCNPlane(SCNPlane表示具有可控宽度和高度的矩形。平面有一个可见的面) : SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)planeWithWidth:(CGFloat)width height:(CGFloat)height | 创建并返回具有给定宽度和高度的平面 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat width | 沿X轴的平面范围。动画 | | iOS11.4 |
CGFloat height | 沿Y轴的平面范围。动画 | | iOS11.4 |
NSInteger widthSegmentCount | 沿X轴的细分数。动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。默认值为1.可动画 | | iOS11.4 |
CGFloat cornerRadius | 角半径。动画 | MacOS10.9 | iOS11.4 |
NSInteger cornerSegmentCount | 圆角的细分数量。动画 | MacOS10.9 | iOS11.4 |
SCNBox(SCNBox代表一个带有矩形边和可选倒角的盒子) : SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius | 创建并返回具有给定宽度,高度,长度和倒角半径的框 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat width | 盒子的宽度。动画 | | iOS11.4 |
CGFloat height | 盒子的高度。动画 | | iOS11.4 |
CGFloat length | 盒子的长度。动画 | | iOS11.4 |
CGFloat chamferRadius | 倒角半径。动画 | | iOS11.4 |
NSInteger widthSegmentCount | 沿X轴的细分数。默认值为1.可动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。默认值为1.可动画 | | iOS11.4 |
NSInteger lengthSegmentCount | 沿Z轴的细分数。默认值为1.可动画 | | iOS11.4 |
NSInteger chamferSegmentCount | 倒角细分的数量。动画 | | iOS11.4 |
SCNPyramid(SCNPyramid代表一个带有矩形底座的右金字塔) : SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)boxWithWidth:(CGFloat)width height:(CGFloat)height length:(CGFloat)length chamferRadius:(CGFloat)chamferRadius | 创建并返回具有给定宽度,高度和长度的金字塔 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat width | 金字塔的宽度。动画 | | iOS11.4 |
CGFloat height | 金字塔的高度。动画 | | iOS11.4 |
CGFloat length | 金字塔底座的长度。动画 | | iOS11.4 |
NSInteger widthSegmentCount | 沿X轴的细分数。默认值为1.可动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。默认值为1.可动画 | | iOS11.4 |
NSInteger lengthSegmentCount | 沿Z轴的细分数。默认值为1.可动画 | | iOS11.4 |
SCNSphere(SCNSphere表示具有可控半径的球体):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)sphereWithRadius:(CGFloat)radius | 创建并返回给定半径的球体 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat radius | 球体半径。动画 | | iOS11.4 |
BOOL geodesic | 指出几何是否是地圈 | | iOS11.4 |
NSInteger segmentCount | 沿两个球面坐标的段数。动画 | | iOS11.4 |
SCNCylinder(SCNCylinder表示具有可控高度和半径的圆柱体):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)cylinderWithRadius:(CGFloat)radius height:(CGFloat)height | 创建并返回给定半径和高度的圆柱体 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat radius | 圆柱的半径。动画 | | iOS11.4 |
CGFloat height | 圆柱的高度。动画 | | iOS11.4 |
NSInteger segmentCount | 沿径向坐标的细分数。动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。动画 | | iOS11.4 |
SCNCone(SCNCone表示具有可控高度,顶部半径和底部半径的锥体):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)coneWithTopRadius:(CGFloat)topRadius bottomRadius:(CGFloat)bottomRadius height:(CGFloat)height | 创建并返回给定半径和高度的圆柱体 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat topRadius | 锥顶部的半径。动画 | | iOS11.4 |
CGFloat bottomRadius | 锥体底部的半径。动画 | | iOS11.4 |
CGFloat height | 锥体的高度。动画 | | iOS11.4 |
NSInteger radialSegmentCount | 沿径向坐标的细分数。动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。动画 | | iOS11.4 |
SCNTube(SCNTube代表具有可控高度,内半径和外半径的管):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)tubeWithInnerRadius:(CGFloat)innerRadius outerRadius:(CGFloat)outerRadius height:(CGFloat)height | 创建并返回具有给定内半径,外半径和高度的管 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat innerRadius | 管的内半径。动画 | | iOS11.4 |
CGFloat outerRadius | 管的外半径。动画 | | iOS11.4 |
CGFloat height | 管的高度。动画 | | iOS11.4 |
NSInteger radialSegmentCount | 沿径向坐标的细分数。动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。动画 | | iOS11.4 |
SCNCapsule(SCNCapsule代表具有可控高度和帽半径的胶囊):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)capsuleWithCapRadius:(CGFloat)capRadius height:(CGFloat)height | 创建并返回具有给定半径和高度的胶囊 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat capRadius | 胶囊的帽半径。动画 | | iOS11.4 |
CGFloat height | 胶囊的高度。动画 | | iOS11.4 |
NSInteger radialSegmentCount | 沿径向坐标的细分数。动画 | | iOS11.4 |
NSInteger heightSegmentCount | 沿Y轴的细分数。动画 | | iOS11.4 |
NSInteger capSegmentCount | 上限中的细分数量。动画 | | iOS11.4 |
SCNTorus(SCNTorus表示具有可控环半径和管道半径的圆环):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)torusWithRingRadius:(CGFloat)ringRadius pipeRadius:(CGFloat)pipeRadius | 创建并返回具有给定环半径和管道半径的圆环 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat ringRadius | 圆环的半径。动画 | | iOS11.4 |
CGFloat pipeRadius | 圆环管的半径。动画 | | iOS11.4 |
NSInteger ringSegmentCount | 戒指的细分数量。动画 | | iOS11.4 |
NSInteger pipeSegmentCount | 管道的细分数量。动画 | | iOS11.4 |
SCNFloor(SCNFloor表示无限平面几何):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)floor | 创建并返回一个地板 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat reflectivity | 指定地板的反射率。动画 | | iOS11.4 |
CGFloat reflectionFalloffStart | 指定从衰减开始的楼层开始的距离。动画 | | iOS11.4 |
CGFloat reflectionFalloffEnd | 指定距离落差的地板的距离。动画 | | iOS11.4 |
NSUInteger reflectionCategoryBitMask | 确定要反映的节点类别。默认为所有设置的位 | iOS11.0 | iOS11.4 |
CGFloat width | 沿X轴的地板范围。动画 | iOS11.0 | iOS11.4 |
CGFloat length | 沿Z轴的地板范围。动画 | iOS11.0 | iOS11.4 |
CGFloat reflectionResolutionScaleFactor | 指定用于渲染反射的缓冲区的分辨率比例因子 | MacOS10.10 | iOS11.4 |
SCNText(SCNText表示已挤出的文本块):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)textWithString:(nullable id)string extrusionDepth:(CGFloat)extrusionDepth; | 使用给定的拉伸深度创建并返回给定文本的3D表示 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat extrusionDepth | 挤出深度。动画 | | iOS11.4 |
id string | 要表示的文本。该文本必须是NSString或NSAttributedString的实例 | | iOS11.4 |
UIFont *font | 用于表示文本的字体 | | iOS11.4 |
BOOL wrapped | 确定文本是否被包装以适合边界 | | iOS11.4 |
CGRect containerFrame | 可以包装或截断文本的容器 | | iOS11.4 |
NSString *truncationMode | 描述如何截断文本以适应边界 | | iOS11.4 |
NSString *alignmentMode | 确定各个文本行在边界内的水平对齐方式 | | iOS11.4 |
CGFloat chamferRadius | 倒角半径。动画 | | iOS11.4 |
UIBezierPath *chamferProfile | 描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 | | iOS11.4 |
CGFloat flatness | 指定呈现字体的精度(或平滑度)` | MacOS10.9 | iOS11.4 |
SCNChamferMode(倒角模式)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNChamferModeBoth | | MacOS10.9 | iOS11.4 |
SCNChamferModeFront | | MacOS10.9 | iOS11.4 |
SCNChamferModeBack | | MacOS10.9 | iOS11.4 |
SCNShape(SCNShape表示可以挤出的2D形状(立方贝塞尔样条)):SCNGeometry
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)shapeWithPath:(nullable UIBezierPath *)path extrusionDepth:(CGFloat)extrusionDepth | 使用给定的拉伸深度创建并返回给定形状的3D表示 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
UIBezierPath *path | 定义要渲染的形状的路径 | | iOS11.4 |
CGFloat extrusionDepth | 挤出深度。动画 | | iOS11.4 |
SCNChamferMode chamferMode | 被倒角的文本的边 | | iOS11.4 |
CGFloat chamferRadius | 倒角半径。动画 | | iOS11.4 |
UIBezierPath *chamferProfile | 描述“chamferRadius”不是nil时使用的配置文件。当“chamferProfile”为零时,我们回退在表示象限的路径上 | | iOS11.4 |
文件SCNTransaction.h
#import <SceneKit/SCNTransaction.h>
内容简介
SCNTransaction(事务是SceneKit将多个场景图操作批处理为原子更新的机制。对场景图的每次修改都要求事务成为其中的一部分)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (void)begin | 为当前线程开始一个新事务 | | iOS11.4 |
+ (void)commit | 提交当前事务期间所做的所有更改 | | iOS11.4 |
+ (void)flush | 提交任何现存的隐含交易。将延迟实际提交,直到任何嵌套显式事务完成 | | iOS11.4 |
+ (void)lock | 锁定全局锁的方法 | | iOS11.4 |
+ (void)unlock | 解锁全局锁的方法 | | iOS11.4 |
+ (nullable id)valueForKey:(NSString *)key | 将任意键控数据与当前事务(即与当前线程)相关联 | | iOS11.4 |
+ (void)setValue:(nullable id)value forKey:(NSString *)key | | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CFTimeInterval animationDuration | 每个线程事务属性的“animationDuration”访问器。定义动画的默认持续时间。显式事务的默认值为1 / 4s,隐式事务的默认值为0 | | iOS11.4 |
CAMediaTimingFunction *animationTimingFunction | 每个线程事务属性的“animationTimingFunction”的访问器。默认值为nil,当设置为非零值时,添加到场景图中的任何动画都将此值设置为其“timingFunction”属性 | | iOS11.4 |
BOOL disableActions | 每个线程事务属性的“disableActions”的访问器。定义是否执行隐式动画。默认为NO,即启用隐式动画 | | iOS11.4 |
void (^completionBlock)(void) | “completionBlock”每线程事务属性的访问器。一旦设置为非空,只要此事务组随后添加的所有动画都已完成(或已被删除),就可以保证在该主线程上调用该块)。 | | iOS11.4 |
文件SCNMorpher.h
#import <SceneKit/SCNMorpher.h>
内容简介
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<SCNGeometry *> *target | 将变形目标指定为SCNGeometry数组 | | iOS11.4 |
SCNMorpherCalculationMode calculationMode | 指定接收器如何计算变形结果。默认为SCNMorpherCalculationModeNormalized | | iOS11.4 |
NSArray<NSNumber *> *weights | 访问所有目标的所有权重 | iOS11.0 | iOS11.4 |
BOOL unifiesNormals | 设置为YES时,法线不会变形,而是在变形顶点后重新计算。设置为NO时,如果几何目标具有法线,则变形器将变形法线。默认为NO | iOS11.0 | iOS11.4 |
方法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)setWeight:(CGFloat)weight forTargetAtIndex:(NSUInteger)targetIndex | 设置指定索引处目标的权重。使用keyPath“weights [index]”或“weights [”targetName“]”隐式或显式动画化(targetName是目标几何体的名称) | | iOS11.4 |
- (CGFloat)weightForTargetAtIndex:(NSUInteger)targetIndex; | 检索指定索引处目标的权重 | | iOS11.4 |
- (void)setWeight:(CGFloat)weight forTargetNamed:(NSString *)targetName | 设置具有指定名称的目标的权重(targetName是目标几何的名称) | iOS11.0 | iOS11.4 |
- (CGFloat)weightForTargetNamed:(NSString *)targetName | 使用指定的名称检索目标的权重(targetName是目标几何的名称) | iOS11.0 | iOS11.4 |
SCNSkinner(SCNSkinner控制蒙皮几何的变形)
#import <SceneKit/SCNSkinner.h>
内容简介
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *skeleton | 指定接收器的骨架 | | iOS11.4 |
SCNGeometry *baseGeometry | 指定接收器的基本几何体 | MacOS10.9 | iOS11.4 |
SCNMatrix4 baseGeometryBindTransform | 指定网格绑定到骨架时baseGeometry的变换。这会将baseGeometry从对象空间转换为应用蒙皮的空间 | MacOS10.10 | iOS11.4 |
NSArray<NSValue *> *boneInverseBindTransforms | 绑定形状绑定到此骨骼时骨骼的绑定空间转换矩阵的反转 | MacOS10.10 | iOS11.4 |
NSArray<SCNNode *> *bones | 皮肤的骨骼 | MacOS10.10 | iOS11.4 |
SCNGeometrySource *boneWeights | 接收器的骨骼权重 | MacOS10.10 | iOS11.4 |
SCNGeometrySource *boneIndices | 接收器的骨骼索引 | MacOS10.10 | iOS11.4 |
方法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)skinnerWithBaseGeometry:(nullable SCNGeometry *)baseGeometry bones:(NSArray<SCNNode *> *)bones boneInverseBindTransforms:(nullable NSArray<NSValue *> *)boneInverseBindTransforms boneWeights:(SCNGeometrySource *)boneWeights boneIndices:(SCNGeometrySource *)boneIndices | 使用指定的参数创建并初始化skinner实例 | MacOS10.10 | iOS11.4 |
文件SCNConstraint.h
#import <SceneKit/SCNConstraint.h>
内容简介
SCNConstraint(SCNConstraint是一个抽象类,表示可以应用于节点的单个约束)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL enabled | 确定是否启用约束。默认为YES | MacOS10.10 | iOS11.4 |
CGFloat influenceFactor | 指定接收器的影响因子。默认为1.动画 | MacOS10.10 | iOS11.4 |
BOOL incremental | 指定约束是否应以递增方式应用,并使其在渲染帧上累积效果。在macOS 10.13,iOS 11,tvOS 11和watchOS 4上默认为YES。在早期版本中默认为NO | iOS11.0 | iOS11.4 |
SCNLookAtConstraint(SCNLookAtConstraint应用于节点的方向,以便始终查看另一个节点):SCNConstraint MacOS10.9
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *target | 定义要查看的目标节点 | iOS10.0 | iOS11.4 |
SCNVector3 targetOffset | 偏移看目标空间中的位置。默认为零。动画 | iOS11.0 | iOS11.4 |
SCNVector3 localFront | 约束所有者本地空间中的前向。默认为[SCNNode localFront]。动画 | iOS11.0 | iOS11.4 |
SCNVector3 worldUp | 世界空间中的参考方向。默认为[SCNNode localUp]。动画 | iOS11.0 | iOS11.4 |
BOOL gimbalLockEnabled | 指定接收器是否启用万向节锁定。默认为NO | | iOS11.4 |
方法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)lookAtConstraintWithTarget:(nullable SCNNode *)target | 创建并返回具有指定目标的SCNLookAtConstraint对象 | | iOS11.4 |
- (nullable SCNNode *)target | | | iOS11.4 |
- (void)setTarget:(nullable SCNNode *)target | | | iOS11.4 |
SCNBillboardAxis
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNBillboardAxisX | | | iOS11.4 |
SCNBillboardAxisY | | | iOS11.4 |
SCNBillboardAxisZ | | | iOS11.4 |
SCNBillboardAxisAll | SCNBillboardAxisX | SCNBillboardAxisY | SCNBillboardAxisZ | | iOS11.4 |
SCNBillboardConstraint:SCNConstraint iOS9.0
属 性 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)billboardConstraint | 创建并返回SCNBillboardConstraint约束 | | iOS11.4 |
SCNBillboardAxis freeAxes | 指定广告牌方向运行的轴。默认为SCNBillboardAxisAll | | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)transformConstraintInWorldSpace:(BOOL)world withBlock:(SCNMatrix4 (^)(SCNNode *node, SCNMatrix4 transform))block | 使用指定的参数创建并返回SCNTransformConstraint对象 | | iOS11.4 |
+ (instancetype)positionConstraintInWorldSpace:(BOOL)world withBlock:(SCNVector3 (^)(SCNNode *node, SCNVector3 position))block | 使用指定的参数创建并返回SCNTransformConstraint对象 | iOS11.0 | iOS11.4 |
+ (instancetype)orientationConstraintInWorldSpace:(BOOL)world withBlock:(SCNQuaternion (^)(SCNNode *node, SCNQuaternion quaternion))block | 使用指定的参数创建并返回SCNTransformConstraint对象 | iOS11.0 | iOS11.4 |
SCNIKConstraint(SCNIKConstraint应用反向运动学约束):SCNConstraint MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (instancetype)initWithChainRootNode:(SCNNode *)chainRootNode | 使用指定的参数创建并返回SCNIKConstraint对象 | iOS9.0 | iOS11.4 |
+ (instancetype)inverseKinematicsConstraintWithChainRootNode:(SCNNode *)chainRootNode | 使用指定的参数创建并返回SCNIKConstraint对象 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *chainRootNode | 指定运动链的根节点 | | iOS11.4 |
SCNVector3 targetPosition | 指定结束关节的目标位置(在世界空间坐标中)(即拥有IK约束的节点)。默认为(0,0,0)。动画 | | iOS11.4 |
- (void)setMaxAllowedRotationAngle:(CGFloat)angle forJoint:(SCNNode *)node | 指定指定关节从其初始方向允许的最大旋转(以度为单位)。默认为180 | | iOS11.4 |
- (CGFloat)maxAllowedRotationAngleForJoint:(SCNNode *)node | | | iOS11.4 |
SCNDistanceConstraint(SCNDistanceConstraint确保与目标节点的最小/最大距离。):SCNConstraint iOS11.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)distanceConstraintWithTarget:(nullable SCNNode *)target | 创建并返回SCNDistanceConstraint约束 | | iOS11.4 |
SCNNode *target | 定义目标节点以保持距离 | | iOS11.4 |
CGFloat minimumDistance | 最小距离。默认为0.可动画 | | iOS11.4 |
CGFloat maximumDistance | 最小距离。默认为MAXFLOAT。动画 | | iOS11.4 |
SCNReplicatorConstraint(SCNReplicatorConstraint复制目标节点的位置/方向/比例):SCNConstraint iOS11.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)replicatorConstraintWithTarget:(nullable SCNNode *)target | 创建并返回SCNReplicatorConstraint约束 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *target | 定义要复制的目标节点 | | iOS11.4 |
BOOL replicatesOrientation | 定义约束是否应复制目标方向。默认为YES | | iOS11.4 |
BOOL replicatesPosition | 定义约束是否应复制目标位置。默认为YES | | iOS11.4 |
BOOL replicatesScale | 定义约束是否应复制目标比例。默认为YES | | iOS11.4 |
SCNQuaternion orientationOffset | 定义添加方向偏移。默认为无偏移。动画 | | iOS11.4 |
SCNVector3 positionOffset | 定义添加方向偏移。默认为无偏移。动画 | | iOS11.4 |
SCNVector3 scaleOffset | 定义附加比例偏移。默认为无偏移。动画 | | iOS11.4 |
SCNAccelerationConstraint(SCNAccelerationConstraint限制节点的加速度和速度):SCNConstraint(iOS11.0)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)accelerationConstraint; | 创建并返回SCNAccelerationConstraint对象 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat maximumLinearAcceleration | 控制最大线性加速度。默认为MAXFLOAT。动画 | | iOS11.4 |
CGFloat maximumLinearVelocity | 控制最大线速度。默认为MAXFLOAT。动画 | | iOS11.4 |
CGFloat decelerationDistance | 控制节点开始减速的距离。默认为0。动画 | | iOS11.4 |
CGFloat damping | 指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1。动画 | | iOS11.4 |
SCNSliderConstraint(SCNSliderConstraint约束使节点与一类节点冲突和滑动):SCNConstraint iOS11.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)sliderConstraint; | 创建并返回SCNSliderConstraint对象。 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSUInteger collisionCategoryBitMask | 定义要冲突的节点类别。默认为0 | | iOS11.4 |
CGFloat radius | 定义滑块的半径。默认为1 | | iOS11.4 |
SCNVector3 offset | 定义滑块的偏移量。默认为(0,0,0) | | iOS11.4 |
SCNAvoidOccluderConstraintDelegate代理
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (BOOL)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint shouldAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node | | | iOS11.4 |
- (void)avoidOccluderConstraint:(SCNAvoidOccluderConstraint *)constraint didAvoidOccluder:(SCNNode *)occluder forNode:(SCNNode *)node | | | iOS11.4 |
SCNAvoidOccluderConstraint(SCNAvoidOccluderConstraint约束将接收器放置在阻止具有指定类别的节点来遮挡目标的位置):SCNConstraint iOS11.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)avoidOccluderConstraintWithTarget:(nullable SCNNode *)target | 创建并返回SCNAvoidOccluderConstraint对象 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
id <SCNAvoidOccluderConstraintDelegate> delegate | 接收者的代表 | | iOS11.4 |
NSUInteger occluderCategoryBitMask | 定义要视为封堵器的节点类别。默认为1 | | iOS11.4 |
CGFloat bias | 定义移动接收器后应用的偏置以避免遮挡物。默认为10e-5 | | iOS11.4 |
文件SCNLevelOfDetail.h
#import <SceneKit/SCNLevelOfDetail.h>
内容简介
SCNLevelOfDetail(SCNLevelOfDetail表示几何的详细程度) iOS10.9
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry screenSpaceRadius:(CGFloat)radius | 这是一种使用覆盖半径阈值模式创建细节级别的便捷方法 | | iOS11.4 |
+ (instancetype)levelOfDetailWithGeometry:(nullable SCNGeometry *)geometry worldSpaceDistance:(CGFloat)distance | 这是使用距离阈值模式创建细节级别的便捷方法 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNGeometry *geometry | 返回接收器的几何 | | iOS11.4 |
CGFloat screenSpaceRadius | 返回接收器的屏幕空间半径(如果有),否则返回0 | | iOS11.4 |
CGFloat worldSpaceDistance | 返回接收器的世界空间距离(如果有),否则返回0 | | iOS11.4 |
文件SCNParticleSystem.h
#import <SceneKit/SCNParticleSystem.h>
内容简介
SCNParticleProperty(粒子属性)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticlePropertyPosition | float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyAngle | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyRotationAxis | float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyVelocity | float3 : {x,y,z} 控制器动画类型:{NSValue(SCNVector3)} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyAngularVelocity | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyLife | float 不可控制 | MacOS10.10 | iOS11.4 |
SCNParticlePropertyColor | float4 : {r,g,b,a} 控制器动画类型:{UIColor} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyOpacity | float 控制器动画类型:{NSNumber} | iOMacOS10.10S10.10 | iOS11.4 |
SCNParticlePropertySize | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyFrame | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyFrameRate | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyBounce | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyCharge | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyFriction | float 控制器动画类型:{NSNumber} | MacOS10.10 | iOS11.4 |
SCNParticlePropertyContactPoint | float3 不可控制 | 仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10 | iOS11.4 |
SCNParticlePropertyContactNormal | float3 不可控制 | 仅在处理SCNParticleEventCollision类型的事件时可用 (只读) MacOS10.10 | iOS11.4 |
粒子事件回调
typedef void (^SCNParticleEventBlock)(void * _Nonnull * _Nonnull data, size_t * _Nonnull dataStride, uint32_t * _Nullable indices, NSInteger count)
粒子修改回调
typedef void (^SCNParticleModifierBlock)(void * _Nonnull * _Nonnull data, size_t * _Nonnull dataStride, NSInteger start, NSInteger end, float deltaTime);
SCNParticleSortingMode(粒子排序模式)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleSortingModeNone | 粒子没有排序 | MacOS10.10 | iOS11.4 |
SCNParticleSortingModeProjectedDepth | 粒子按深度排序(远远渲染) | MacOS10.10 | iOS11.4 |
SCNParticleSortingModeDistance | 粒子按距离的角度排序 | MacOS10.10 | iOS11.4 |
SCNParticleSortingModeOldestFirst | 颗粒按出生日期排序 - 最早出现 | MacOS10.10 | iOS11.4 |
SCNParticleSortingModeYoungestFirst | 粒子按出生日期排序 - 先取消 | MacOS10.10 | iOS11.4 |
SCNParticleBlendMode(粒子混合模式)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleBlendModeAdditive | 粒子没有排序 | MacOS10.10 | iOS11.4 |
SCNParticleBlendModeSubtract | 粒子按深度排序(远远渲染) | MacOS10.10 | iOS11.4 |
SCNParticleBlendModeMultiply | 粒子按距离的角度排序 | MacOS10.10 | iOS11.4 |
SCNParticleBlendModeScreen | 颗粒按出生日期排序 - 最早出现 | MacOS10.10 | iOS11.4 |
SCNParticleBlendModeAlpha | 粒子按出生日期排序 - 先取消 | MacOS10.10 | iOS11.4 |
SCNParticleBlendModeReplace | 粒子按出生日期排序 - 先取消 | MacOS10.10 | iOS11.4 |
SCNParticleOrientationMode(粒子方向模式)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleOrientationModeBillboardScreenAligned | 粒子在屏幕上对齐 | MacOS10.10 | iOS11.4 |
SCNParticleOrientationModeBillboardViewAligned | 从视点到粒子,粒子与矢量垂直 | MacOS10.10 | iOS11.4 |
SCNParticleOrientationModeFree | 在所有轴上自由 | MacOS10.10 | iOS11.4 |
SCNParticleOrientationModeBillboardYAligned | 固定在Y轴上 | MacOS10.10 | iOS11.4 |
SCNParticleBirthLocation(粒子出生位置)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleBirthLocationSurface | 粒子在发射器形状的表面上发射 | MacOS10.10 | iOS11.4 |
SCNParticleBirthLocationVolume | 粒子在发射器形状的体积内发射 | MacOS10.10 | iOS11.4 |
SCNParticleBirthLocationVertex | 粒子在发射器形状的顶点上发射 | MacOS10.10 | iOS11.4 |
SCNParticleBirthDirection(粒子出生方向)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleBirthDirectionConstant | Z发射器的方向 | MacOS10.10 | iOS11.4 |
SCNParticleBirthDirectionSurfaceNormal | 使用形状引起的方向 | MacOS10.10 | iOS11.4 |
SCNParticleBirthDirectionRandom | 随机方向 | MacOS10.10 | iOS11.4 |
SCNParticleImageSequenceAnimationMode(纹理动画模式)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleImageSequenceAnimationModeRepeat | 动画将循环播放 | MacOS10.10 | iOS11.4 |
SCNParticleImageSequenceAnimationModeClamp | 动画将在两端停止 | MacOS10.10 | iOS11.4 |
SCNParticleImageSequenceAnimationModeAutoReverse | 到达终点时动画将反转 | MacOS10.10 | iOS11.4 |
SCNParticleInputMode(粒子变化模式)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleInputModeOverLife | 控制器动画的输入时间是粒子的当前生命周期 | MacOS10.10 | iOS11.4 |
SCNParticleInputModeOverDistance | 控制器动画的输入时间是距变化原点节点的距离 | MacOS10.10 | iOS11.4 |
SCNParticleInputModeOverOtherProperty | 控制器动画的输入时间是另一个指定属性的当前值 | MacOS10.10 | iOS11.4 |
SCNParticleModifierStage(粒子修改器阶段)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleModifierStagePreDynamics | | MacOS10.10 | iOS11.4 |
SCNParticleModifierStagePostDynamics | | MacOS10.10 | iOS11.4 |
SCNParticleModifierStagePreCollision | | MacOS10.10 | iOS11.4 |
SCNParticleModifierStagePostCollision | | MacOS10.10 | iOS11.4 |
SCNParticleEvent(粒子事件)
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNParticleEventBirth | 新粒子产生时触发的事件 | MacOS10.10 | iOS11.4 |
SCNParticleEventDeath | 粒子死亡时触发事件 | MacOS10.10 | iOS11.4 |
SCNParticleEventCollision | 粒子与碰撞器节点碰撞时触发的事件 | MacOS10.10 | iOS11.4 |
SCNParticlePropertyController(SCNParticlePropertyController类控制粒子属性随时间或距离的变化) MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)controllerWithAnimation:(CAAnimation *)animation | 使用指定的动画创建并初始化粒子属性控制器 | | iOS11.4 |
属性 | 说 明 | 备 注 | SDK版本 |
---|
CAAnimation *animation | 指定要在粒子系统属性上应用的动画。动画的类型取决于受控制的属性。请参阅属性名称定义中的文档 | | iOS11.4 |
SCNParticleInputMode inputMode | 指定接收器的输入模式。这可以是生命,远距离或另一个属性的演变。默认为SCNParticleInputModeOverLife | | iOS11.4 |
CGFloat inputScale | 指定输入比例。inputScale默认为1 | | iOS11.4 |
CGFloat inputBias | 指定输入偏差。inputBias默认为0 | | iOS11.4 |
SCNNode *inputOrigin | 指定变体模式“SCNParticleInputModeOverDistance”的原点 | | iOS11.4 |
SCNParticleProperty inputProperty | 指定将哪个属性用作输入模式“SCNParticleInputModeOverOtherProperty”的输入 | | iOS11.4 |
SCNParticleSystem(SCNParticleSystem类表示粒子系统) MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)particleSystem | 创建粒子系统的实例 | | iOS11.4 |
+ (nullable instancetype)particleSystemNamed:(NSString *)name inDirectory:(nullable NSString *)directory | | | iOS11.4 |
Emitter properties(发射器属性)
属性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat emissionDuration | 指定发射的持续时间。默认为1.动画 | | iOS11.4 |
CGFloat emissionDurationVariation | 指定发射持续时间的变化。默认为0.可动画 | | iOS11.4 |
CGFloat idleDuration | 指定两次发射之间的空闲持续时间。默认为0.可动画 | | iOS11.4 |
CGFloat idleDurationVariation | 指定空闲持续时间的变化。默认为0.可动画 | | iOS11.4 |
BOOL loops | 指定发射的循环行为。默认为YES | | iOS11.4 |
CGFloat birthRate | 指定粒子速率流,以每个emissionDuration的粒子数表示。没有循环的emissionDuration为0意味着粒子瞬间发射.0表示发射器不发光,除非它有变化。默认为1.动画 | | iOS11.4 |
CGFloat birthRateVariation | 指定费率流的变化。默认为0.可动画 | | iOS11.4 |
CGFloat warmupDuration | 指定在第一次渲染系统之前发射粒子的时间长度。例如,这允许启动已经下降的雪场景。默认为0.可动画 | | iOS11.4 |
SCNGeometry *emitterShape | 指定发射器的形状。零意味着一个准时发射器。默认为零 | | iOS11.4 |
SCNParticleBirthLocation birthLocation | 指定新创建的粒子的位置。默认为SCNParticleBirthLocationSurface | | iOS11.4 |
SCNParticleBirthDirection birthDirection | 指定新创建的粒子的方向。默认为SCNParticleBirthDirectionConstant | | iOS11.4 |
CGFloat spreadingAngle | 指定新创建的粒子的传播方向,以度为单位。未在SCNParticleBirthDirectionRandom中使用。默认为0.可动画 | | iOS11.4 |
SCNVector3 emittingDirection | 指定在SCNParticleBirthDirectionConstant模式中使用的新创建的粒子的发射方向。默认为{0,0,1}。动画 | | iOS11.4 |
SCNVector3 orientationDirection | 指定在SCNParticleOrientationModeFree模式中使用的新创建的粒子的方向。粒子将围绕此轴旋转。默认为{0,0,0},表示随机。然后粒子将任意旋转。动画 | iOS11.0 | iOS11.4 |
SCNVector3 acceleration | 以世界坐标指定应用于粒子的加速度。允许模拟风或重力。默认为{0,0,0}。动画 | | iOS11.4 |
BOOL local | 指定系统的呈现和模拟类型。如果设置为YES,系统将使用附加节点的变换进行渲染。默认为NO | | iOS11.4 |
Particle properties(粒子属性)
属性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat particleAngle | 指定出生时粒子的初始角度,单位为度。默认为0.可动画 | | iOS11.4 |
CGFloat particleAngleVariation | 指定出生时粒子初始角度的变化,以度为单位。默认为0.可动画 | | iOS11.4 |
CGFloat particleVelocity | 指定出生时粒子的初始速度,以每秒为单位。默认为0.可动画 | | iOS11.4 |
CGFloat particleVelocityVariation | 指定速度的变化。默认为0.可动画 | | iOS11.4 |
CGFloat particleAngularVelocity | 指定出生时粒子的初始角速度,以每秒度数。默认为0.可动画 | | iOS11.4 |
CGFloat particleAngularVelocityVariation | 指定角速度的变化,以度/秒为单位。默认为0.可动画 | | iOS11.4 |
CGFloat particleLifeSpan | 指定粒子的寿命。动画 | | iOS11.4 |
CGFloat particleLifeSpanVariation | 指定粒子的寿命变化。动画 | | iOS11.4 |
SCNParticleSystem *systemSpawnedOnDyin | 指定在粒子死亡时生成新粒子的可选系统 | | iOS11.4 |
SCNParticleSystem *systemSpawnedOnCollision | 指定在粒子死亡时生成新粒子的可选系统 | | iOS11.4 |
SCNParticleSystem *systemSpawnedOnLiving | 指定在粒子处于活动状态时生成新粒子的可选系统 | | iOS11.4 |
Particle Rendering(粒子渲染)
属性 | 说 明 | 备 注 | SDK版本 |
---|
id particleImage | 指定粒子的图像。可以设置为NSImage/UIImage,路径或URL | | iOS11.4 |
NSUInteger imageSequenceColumnCount | 指定图像序列中的列数。默认为1 | | iOS11.4 |
NSUInteger imageSequenceRowCount | 指定图像序列中的行数。默认为1 | | iOS11.4 |
CGFloat imageSequenceInitialFrame | 指定纹理初始帧索引。范围从0到(imageSequenceColumnCount * imageSequenceRowCount - 1)。默认为0.可动画 | | iOS11.4 |
CGFloat imageSequenceInitialFrameVariation | 指定纹理初始帧变体。动画 | | iOS11.4 |
CGFloat imageSequenceFrameRate | 指定纹理动画帧速率,以每秒帧数为单位。默认为0.可动画 | | iOS11.4 |
CGFloat imageSequenceFrameRateVariation | 指定纹理动画帧速率变化,以每秒帧数为单位。默认为0.可动画 | | iOS11.4 |
SCNParticleImageSequenceAnimationMode imageSequenceAnimationMode | 指定纹理动画模式。默认为SCNTextureAnimationModeRepeat | | iOS11.4 |
UIColor *particleColor | 指定粒子的初始颜色。动画。默认为不透明白色 | | iOS11.4 |
SCNVector4 particleColorVariation | 指定颜色的标准化变化。使用x:色调变化,y:饱和度变化,z:亮度变化,w:alpha变化。动画 | | iOS11.4 |
CGFloat particleSize | 指定粒子的初始大小。动画 | | iOS11.4 |
CGFloat particleSizeVariation | 指定粒子的初始大小变化。动画 | | iOS11.4 |
CGFloat particleIntensity | 指定粒子的初始强度。动画 | iOS11.0 | iOS11.4 |
CGFloat particleIntensityVariation | 指定粒子的初始强度变化。动画 | | iOS11.4 |
SCNParticleBlendMode blendMode | 指定用于渲染粒子系统的混合模式。默认为SCNParticleBlendModeAdditive | | iOS11.4 |
BOOL blackPassEnabled | 指定渲染粒子系统时是否需要黑色传递。这加强了添加剂/光系统的对比度。默认为NO | | iOS11.4 |
SCNParticleOrientationMode orientationMode | 指定粒子的方向模式。默认为SCNParticleOrientationModeBillboardScreenAligned | | iOS11.4 |
SCNParticleSortingMode sortingMode | 指定粒子的排序模式。默认为SCNParticleSortingModeNone | | iOS11.4 |
BOOL lightingEnabled | 实现粒子系统的照明 | | iOS11.4 |
Particle Simulation(粒子模拟)
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL affectedByGravity | 允许使用SCNPhysicsWorld中定义的重力 | | iOS11.4 |
BOOL affectedByPhysicsFields | 启用添加到SCNPhysicsWorld的物理字段的效果 | | iOS11.4 |
BOOL particleDiesOnCollision | 指定粒子在碰撞时是否死亡 | | iOS11.4 |
NSArray<SCNNode *> *colliderNodes | 指定要与之冲突的SCNNode数组 | | iOS11.4 |
CGFloat particleMass | 指定粒子质量。动画 | | iOS11.4 |
CGFloat particleMassVariation | 指定粒子质量变化。动画 | | iOS11.4 |
CGFloat particleBounce | 指定粒子反弹。动画 | | iOS11.4 |
CGFloat particleBounceVariation | 指定粒子反弹变化。动画 | | iOS11.4 |
CGFloat particleFriction | 指定粒子摩擦力。动画 | | iOS11.4 |
CGFloat particleFrictionVariation | 指定粒子摩擦变化。动画 | | iOS11.4 |
CGFloat particleCharge | 指定粒子上的电荷。电荷决定了粒子受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0。动画 | | iOS11.4 |
CGFloat particleChargeVariation | 指定粒子电荷变化。动画 | | iOS11.4 |
CGFloat dampingFactor | 指定颗粒空气阻力。默认为0.可动画 | | iOS11.4 |
CGFloat speedFactor | 指定模拟速度乘数。默认为1.动画 | | iOS11.4 |
CGFloat stretchFactor | 指定粒子是否沿其方向伸展。默认为0.可动画 | | iOS11.4 |
CGFloat fresnelExponent | 指定接收者的菲涅耳指数值。默认为3.可动画。仅在particleImage是立方体贴图时使用。数量越大,边缘周围的反射越集中 | | iOS11.4 |
NSDictionary<SCNParticleProperty, SCNParticlePropertyController *> *propertyControllers | 属性控制器 | | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)reset | 删除所有已发射的粒子并重新开始模拟 | | iOS11.4 |
Events handling(事件控制)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)handleEvent:(SCNParticleEvent)event forProperties:(NSArray<SCNParticleProperty> *)properties withBlock:(SCNParticleEventBlock)block | 对于触发指定事件的粒子,将调用“block”,其数据和dataStride对应于“properties”。该块应仅通过块中作为参数传递的“indices”更新粒子属性引用 | | iOS11.4 |
Modifications handling(修改处理)
将在指定阶段的每个模拟步骤调用“块”。传递给块的data和dataStride将对应于指定的“属性”
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)addModifierForProperties:(NSArray<SCNParticleProperty> *)properties atStage:(SCNParticleModifierStage)stage withBlock:(SCNParticleModifierBlock)block | | | iOS11.4 |
- (void)removeModifiersOfStage:(SCNParticleModifierStage)stage | | | iOS11.4 |
- (void)removeAllModifiers | | | iOS11.4 |
SCNNode(SCNParticleSystemSupport) 粒子系统支持
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)addParticleSystem:(SCNParticleSystem *)system | 将粒子系统添加到接收器 | MacOS10.10 | iOS11.4 |
- (void)removeAllParticleSystems | 删除接收器的所有粒子系统 | MacOS10.10 | iOS11.4 |
- (void)removeParticleSystem:(SCNParticleSystem *)system | 从接收器中删除指定的粒子系统 | MacOS10.10 | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<SCNParticleSystem *> *particleSystems | 粒子系统附加到节点 | MacOS10.10 | iOS11.4 |
文件SCNPhysicsBody.h
#import <SceneKit/SCNPhysicsBody.h>
内容简介
SCNPhysicsBodyType 物理体类型 MacOS10.10
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBodyTypeStatic | | | iOS11.4 |
SCNPhysicsBodyTypeDynamic | | | iOS11.4 |
SCNPhysicsBodyTypeKinematic | | | iOS11.4 |
SCNPhysicsCollisionCategory 碰撞默认类别 MacOS10.10
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsCollisionCategoryDefault | 动态和运动对象的默认碰撞组 | | iOS11.4 |
SCNPhysicsCollisionCategoryStatic | 静态对象的默认冲突组 | | iOS11.4 |
SCNPhysicsCollisionCategoryAll | 冲突掩码的默认值 | | iOS11.4 |
SCNPhysicsBody SCNPhysicsBody类描述节点的物理属性(例如质量,摩擦……)MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)staticBody | 使用默认属性创建静态实体的实例 | | iOS11.4 |
+ (instancetype)dynamicBody | 使用默认属性创建动态主体的实例 | | iOS11.4 |
+ (instancetype)kinematicBody | 使用默认属性创建运动体的实例 | | iOS11.4 |
+ (instancetype)bodyWithType:(SCNPhysicsBodyType)type shape:(nullable SCNPhysicsShape *)shape | 创建具有特定形状的刚体的实例 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBodyType type | 指定接收器的类型 | | iOS11.4 |
CGFloat mass | 以千克为单位指定主体的质量。动态实体默认为1,静态实体默认为0 | | iOS11.4 |
SCNVector3 momentOfInertia | 将身体的惯性矩指定为3D中的矢量。禁用usesDefaultMomentOfInertia以使用此值而不是根据形状几何计算的默认惯性矩 | iOS9.0 | iOS11.4 |
BOOL usesDefaultMomentOfInertia | 允许禁用默认惯性力矩,以支持存储在momentOfInertia中的惯性力矩 | iOS9.0 | iOS11.4 |
CGFloat charge | 指定身体上的电荷。电荷决定了身体受电场和磁场影响的程度。请注意,这是一个无单位的数量,由开发人员适当地设置充电和场强。默认为0.0 | | iOS11.4 |
CGFloat friction | 指定抵抗实体相对滑动的相对运动的力。默认为0.5 | | iOS11.4 |
CGFloat restitution | 指定冲突的恢复。默认为0.5 | | iOS11.4 |
CGFloat rollingFriction | 指定抵抗实体相对于彼此的相对运动的力。默认为0 | | iOS11.4 |
SCNPhysicsShape *physicsShape | 指定接收器的物理形状。离开这个零将让系统决定并使用实际几何的最有效的边界表示 | | iOS11.4 |
BOOL isResting | 如果物理模拟确定该物体处于静止状态,则可以将静止属性设置为YES。在与非静止物体发生碰撞或施加冲动之后,静止物体不会参与模拟,从而使其失效。如果世界上所有的身体都在休息,那么模拟作为一个整体就是“静止不动” | | iOS11.4 |
BOOL allowsResting | 指定接收器是否可以设置为静止 | | iOS11.4 |
SCNVector3 velocity | 指定接收器的线速度 | | iOS11.4 |
SCNVector4 angularVelocity | 将接收器的角速度指定为轴角度 | | iOS11.4 |
CGFloat damping | 指定接收器的阻尼系数。可选择降低每帧的身体线速度,以模拟流体/空气摩擦。值应为零或更大。默认为0.1 | | iOS11.4 |
CGFloat angularDamping | 指定接收器的角度阻尼。可选择降低每帧的车身角速度以模拟旋转摩擦。 (0.0 - 1.0)。默认为0.1 | | iOS11.4 |
NSUInteger categoryBitMask | 定义这个主体所属的逻辑“类别”。静态实体默认为SCNPhysicsCollisionCategoryStatic,其他实体类型默认为SCNPhysicsCollisionCategoryDefault。限制在macOS 10.10和iOS 8上的前15位 | | iOS11.4 |
NSUInteger collisionBitMask | 定义这个身体响应碰撞的物体的逻辑“类别”。默认为所有设置的位(所有类别) | | iOS11.4 |
NSUInteger contactTestBitMask | 一个掩码,用于定义哪些类别的实体与此物理实体进行交叉通知。默认为0。在iOS 8和macOS 10.10及更低版本上,发生碰撞时始终会发送交叉点通知 | iOS9.0 | iOS11.4 |
BOOL affectedByGravity | 如果设置为YES,则此节点将受到重力的影响。默认值为YES | iOS9.0 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)applyForce:(SCNVector3)direction impulse:(BOOL)impulse | 在指定方向上施加线性力。线性力施加在接收器的质心上。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力 | | iOS11.4 |
- (void)applyForce:(SCNVector3)direction atPosition:(SCNVector3)position impulse:(BOOL)impulse | 使用指定位置和方向的线性力。该位置相对于拥有物理主体的节点 | | iOS11.4 |
- (void)applyTorque:(SCNVector4)torque impulse:(BOOL)impulse | 施加角力(扭矩)。如果将脉冲设置为YES,则仅施加一帧力,否则施加连续力。扭矩指定为轴角 | | iOS11.4 |
- (void)clearAllForces | 清除接收器上施加的力 | | iOS11.4 |
- (void)resetTransform | 将物理变换重置为节点的模型变换 | | iOS11.4 |
文件SCNPhysicsField.h
#import <SceneKit/SCNPhysicsField.h>
内容简介
SCNPhysicsFieldScope 指定物理场的影响域 MacOS10.10
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsFieldScopeInsideExtent | | | iOS11.4 |
SCNPhysicsFieldScopeOutsideExtent | | | iOS11.4 |
SCNPhysicsField SCNPhysicsField是一个抽象类,描述了在物理世界中应用的力场 MacOS10.10
控制行为属性
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat strength | 力场的强度因子。默认为1.0 | | iOS11.4 |
CGFloat falloffExponent | 根据距离场中心的距离(1 /距离^衰减指数)改变力的力量。默认为0.0。 | | iOS11.4 |
CGFloat minimumDistance | 与效果达到最大强度的场地中心的距离。默认为1e-6 | | iOS11.4 |
BOOL active | 指定强制字段是否处于活动状态。默认为YES | | iOS11.4 |
BOOL exclusive | 如果是,则抑制其区域中的任何其他字段。默认为NO | | iOS11.4 |
控制效果属性
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNVector3 halfExtent | 指定效果区域的半范围。默认为FLT_MAX | | iOS11.4 |
BOOL usesEllipsoidalExtent | YES表示效果区域在范围内四舍五入。默认为NO | | iOS11.4 |
SCNPhysicsFieldScope scope | 控制力场是应该应用于区域内部还是外部。默认为内部 | | iOS11.4 |
SCNVector3 offset | 该区域内的原点效应偏移 | | iOS11.4 |
SCNVector3 direction | 场的方向。仅适用于线性重力和涡旋场。默认为(0,-1,0) | | iOS11.4 |
NSUInteger categoryBitMask | 确定将受接收器影响的节点physicsBody的类别。默认为所有位设置 | MacOS10.10 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (SCNPhysicsField *)dragField | 使对象按比例减慢对象的速度。用它来模拟诸如空气中运动的摩擦等效果 | | iOS11.4 |
+ (SCNPhysicsField *)vortexField | 应用与从采样点到场的位置的方向相切的力。这股力量将向CCW方向发展。使强度为负以在CW方向上施加力。数量与中心距离和物体质量成正比。用它来创建龙卷风等效果 | | iOS11.4 |
+ (SCNPhysicsField *)radialGravityField | 在局部空间中沿场的原点方向施加力。要击退物体,请使用负强度。力与场原点的距离成比例。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 | | iOS11.4 |
+ (SCNPhysicsField *)linearGravityField | 在局部空间中的“方向”向量的方向上施加力。要击退物体,请使用负强度。在该领域的任何地方都有相同的力量。根据物体的质量而变化F=ma。场节点的旋转属性可用于将重力定向在特定方向上 | | iOS11.4 |
+ (SCNPhysicsField *)noiseFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed | 时变微分Perlin单纯噪声场。平滑度为0表示尽可能嘈杂。用它来模拟萤火虫或雪等效果。要冻结噪声,请将animationSpeed设置为0.0。质量被忽略了。您可以使用KVC更改“smoothness”和“animationSpeed” | | iOS11.4 |
+ (SCNPhysicsField *)turbulenceFieldWithSmoothness:(CGFloat)smoothness animationSpeed:(CGFloat)speed | 就像噪音一样,除了噪音的强度与场中物体的速度成正比 | | iOS11.4 |
+ (SCNPhysicsField *)springField | 胡克定律力 - 与距离场中心的距离成线性比例的力。这个中的一个对象场将以与质量的倒数成比例的周期振荡。一个示例用途是将对象限制在特定区域 | | iOS11.4 |
+ (SCNPhysicsField *)electricField | 与物体上的电荷成比例的力。此字段的示例用法是使对象行为不同。当他们进入一个地区时,彼此之间的关系或使一个物体的行为与其基于群众的行为不同该场模拟了洛伦兹方程的第一部分, F = qE | | iOS11.4 |
+ (SCNPhysicsField *)magneticField | 与物体上的电荷和物体速度成比例的力。此字段的一个示例用法是在对象进入区域时使对象行为彼此不同,或使对象的行为与其基于质量的行为不同。该场模拟了洛伦兹方程的第二部分, F = qvB | | iOS11.4 |
typedef SCNVector3 (^SCNFieldForceEvaluator)(SCNVector3 position, SCNVector3 velocity, float mass, float charge, NSTimeInterval time) | | | iOS11.4 |
+ (SCNPhysicsField *)customFieldWithEvaluationBlock:(SCNFieldForceEvaluator)block | 具有自定义力评估器的场力 | | iOS11.4 |
文件SCNPhysicsShape.h
#import <SceneKit/SCNPhysicsShape.h>
内容简介
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsShapeTypeKey | 物理形状的类型。默认值为SCNPhysicsShapeTypeConvexHull。请参阅下面的形状类型列表 | MacOS10.10 | iOS11.4 |
SCNPhysicsShapeKeepAsCompoundKey | 一个布尔值决定是否一个层级被保持为一个形状的复合物或扁平化为一个单一的体积。默认值是true | MacOS10.10 | iOS11.4 |
SCNPhysicsShapeScaleKey | 物理形状的局部缩放(作为包含在NSValue中的SCNVector3) | MacOS10.10 | iOS11.4 |
SCNPhysicsShapeOptionCollisionMargin | 物理形状的碰撞边缘(作为NSNumber) | iOS10.0 | iOS11.4 |
#define SCNPhysicsShapeOptionType SCNPhysicsShapeTypeKey
#define SCNPhysicsShapeOptionKeepAsCompound SCNPhysicsShapeKeepAsCompoundKey
#define SCNPhysicsShapeOptionScale SCNPhysicsShapeScaleKey
SCNPhysicsShapeOptionType值
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsShapeTypeBoundingBox | | MacOS10.10 | iOS11.4 |
SCNPhysicsShapeTypeConvexHull | | MacOS10.10 | iOS11.4 |
SCNPhysicsShapeTypeConcavePolyhedron | | MacOS10.10 | iOS11.4 |
SCNPhysicsShape 表示物理体的形状 MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)shapeWithGeometry:(SCNGeometry *)geometry options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options | 基于几何创建物理形状的实例。请参阅上面的可能选项 | | iOS11.4 |
+ (instancetype)shapeWithNode:(SCNNode *)node options:(nullable NSDictionary<SCNPhysicsShapeOption, id> *)options | 基于节点层次创建物理形状的实例。层次结构必须在某些点包含几何以创建有效形状。请参阅上面的可能选项 | | iOS11.4 |
+ (instancetype)shapeWithShapes:(NSArray<SCNPhysicsShape *> *)shapes transforms:(nullable NSArray<NSValue *> *)transforms | 基于与变换关联的多个子形状创建物理形状的实例。转换将作为NSValue包装SCNMatrix4的数组传递 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSDictionary<SCNPhysicsShapeOption, id> *options | 返回初始时请求的选项 | iOS9.0 | iOS11.4 |
id sourceObject | 返回从中创建此物理形状的对象。它可以是SCNGeometry ,SCNNode 或子形状的NSArray * | iOS9.0 | iOS11.4 |
NSArray<NSValue *> *transforms | 如果物理形状是从子形状数组创建的,则变换包含关联的变换,如SCNMatrix4包裹在NSValue中 | iOS9.0 | iOS11.4 |
文件SCNPhysicsWorld.h
#import <SceneKit/SCNPhysicsWorld.h>
内容简介
SCNPhysicsTestOption值 射线,接触和扫描测试的关键
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsTestCollisionBitMaskKey | 允许过滤由rayTest,contactTest和convexSweep测试的对象。默认为SCNPhysicsCollisionCategoryAll | MacOS10.10 | iOS11.4 |
SCNPhysicsTestSearchModeKey | 指定如何执行光线/接触/扫描测试。值定义如下。如果未定义,则默认为SCNPhysicsTestSearchModeAny | MacOS10.10 | iOS11.4 |
SCNPhysicsTestBackfaceCullingKey | 指定是否应忽略背面。默认为YES | MacOS10.10 | iOS11.4 |
#define SCNPhysicsTestOptionCollisionBitMask SCNPhysicsTestCollisionBitMaskKey
#define SCNPhysicsTestOptionSearchMode SCNPhysicsTestSearchModeKey
#define SCNPhysicsTestOptionBackfaceCulling SCNPhysicsTestBackfaceCullingKey
SCNPhysicsTestSearchModeKey值
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsTestSearchModeAny | 返回找到的第一个联系人 | MacOS10.10 | iOS11.4 |
SCNPhysicsTestSearchModeClosest | 返回仅找到的最近的联系人 | MacOS10.10 | iOS11.4 |
SCNPhysicsTestSearchModeAll | 返回所有联系人 | MacOS10.10 | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)physicsWorld:(SCNPhysicsWorld *)world didBeginContact:(SCNPhysicsContact *)contact | | | iOS11.4 |
- (void)physicsWorld:(SCNPhysicsWorld *)world didUpdateContact:(SCNPhysicsContact *)contact | | | iOS11.4 |
- (void)physicsWorld:(SCNPhysicsWorld *)world didEndContact:(SCNPhysicsContact *)contact | | | iOS11.4 |
SCNPhysicsWorld SCNPhysicsWorld类描述并允许控制3d场景的物理模拟
方 法 | 说 明 | 备 注 | SDK版本 |
---|
SCNVector3 gravity | 全局3D矢量,指定由于重力引起的场力加速度。单位是米/秒。默认值为{0,-9.8,0} | | iOS11.4 |
CGFloat speed | 速度倍增器应用于物理模拟。默认值为1.0。可以降低速度以减慢模拟速度,但要注意增加速度因子会降低模拟的准确性 | | iOS11.4 |
NSTimeInterval timeStep | 物理模拟的时间步骤。默认值为1/60秒(60赫兹) | | iOS11.4 |
id <SCNPhysicsContactDelegate> contactDelegate | 当两个物理实体相互接触时调用的代表 | | iOS11.4 |
行为管理
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)addBehavior:(SCNPhysicsBehavior *)behavior | | | iOS11.4 |
- (void)removeBehavior:(SCNPhysicsBehavior *)behavior | | | iOS11.4 |
- (void)removeAllBehaviors | | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<SCNPhysicsBehavior *> *allBehaviors | | | iOS11.4 |
对物理实体及其物理形状执行射线测试
- (NSArray<SCNHitTestResult *> *)rayTestWithSegmentFromPoint:(SCNVector3)origin toPoint:(SCNVector3)dest options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
执行接触测试
- (NSArray<SCNPhysicsContact *> *)contactTestBetweenBody:(SCNPhysicsBody *)bodyA andBody:(SCNPhysicsBody *)bodyB options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
- (NSArray<SCNPhysicsContact *> *)contactTestWithBody:(SCNPhysicsBody *)body options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
- (NSArray<SCNPhysicsContact *> *)convexSweepTestWithShape:(SCNPhysicsShape *)shape fromTransform:(SCNMatrix4)from toTransform:(SCNMatrix4)to options:(nullable NSDictionary<SCNPhysicsTestOption, id> *)options;
强制物理引擎重新评估碰撞。如果在下一个模拟步骤之前移动了运动并且需要联系人,则需要调用此方法
- (void)updateCollisionPairs;
#import <SceneKit/SCNPhysicsContact.h>
SCNPhysicsContact包含有关物理接触的信息
接触的两个节点
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *nodeA | | | iOS11.4 |
SCNNode *nodeB | | | iOS11.4 |
世界空间坐标中的接触点,脉冲和距离
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNVector3 contactPoint | | | iOS11.4 |
SCNVector3 contactNormal | | | iOS11.4 |
CGFloat collisionImpulse | 节点A上的碰撞冲动 | | iOS11.4 |
CGFloat penetrationDistance | | | iOS11.4 |
CGFloat sweepTestFraction | 在0和1之间的值给出了在执行凸起扫描测试时物理形状的相对位置 | iOS11.0 | iOS11.4 |
文件SCNPhysicsBehavior.h
#import <SceneKit/SCNPhysicsBehavior.h>
SCNPhysicsBehavior MacOS10.10
SCNPhysicsBehavior是一个抽象类,表示物理世界中的行为
SCNPhysicsHingeJoint:SCNPhysicsBehavior MacOS10.10
SCNPhysicsHingeJoint使两个物体像通过铰链连接一样移动。例如适用于门,链……
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB | 初始化并返回物理铰链接头。铰链分别将主体A和主体连接在锚和锚上。 “axis”和“axisB”指定bodyA和bodyB的旋转轴。 | | iOS11.4 |
+ (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor | 初始化并返回物理铰链接头。铰链将主体附加到由“锚点”指定的3d空间中的特定位置,并相对于拥有主体的节点。 “axis”指定“body”的旋转轴。 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBody *bodyA | 第一个被铰链约束的身体 | | iOS11.4 |
SCNVector3 axisA | bodyA的旋转轴 | | iOS11.4 |
SCNVector3 anchorA | 身体所附着的锚点 | | iOS11.4 |
SCNPhysicsBody *bodyB | 第二个身体连接到铰链 | | iOS11.4 |
SCNVector3 axisB | bodyB的旋转轴 | | iOS11.4 |
SCNVector3 anchorB | bodyB附着的锚点 | | iOS11.4 |
SCNPhysicsBallSocketJoint:SCNPhysicsBehavior MacOS10.10
SCNPhysicsBallSocketJoint使两个物体像通过球窝关节连接一样移动(即它允许围绕所有轴旋转)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB anchorB:(SCNVector3)anchorB | 初始化并返回物理球窝关节。关节分别在bodyA和anchorB上附加bodyA和bodyB | | iOS11.4 |
+ (instancetype)jointWithBody:(SCNPhysicsBody *)body anchor:(SCNVector3)anchor | 初始化并返回物理球窝关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBody *bodyA | 第一个身体连接到球窝关节 | | iOS11.4 |
SCNVector3 anchorA | bodyA的附着点 | | iOS11.4 |
SCNPhysicsBody *bodyB | 第二个身体连接到球窝关节 | | iOS11.4 |
SCNVector3 anchorB | bodyB的附着点 | | iOS11.4 |
SCNPhysicsSliderJoint:SCNPhysicsBehavior MacOS10.10
SCNPhysicsSliderJoint在两个物体之间提供线性滑动关节
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA axisA:(SCNVector3)axisA anchorA:(SCNVector3)anchorA bodyB:(SCNPhysicsBody *)bodyB axisB:(SCNVector3)axisB anchorB:(SCNVector3)anchorB | 初始化并返回物理滑块关节。关节分别将bodyA和body连接在锚和锚上 | | iOS11.4 |
+ (instancetype)jointWithBody:(SCNPhysicsBody *)body axis:(SCNVector3)axis anchor:(SCNVector3)anchor | 初始化并返回物理滑块关节。关节将“body”附加到“anchor”指定的3d位置,并相对于拥有该body的节点 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBody *bodyA | 第一个主体连接到滑块接头 | | iOS11.4 |
SCNVector3 axisA | bodyA可以滑动的轴 | | iOS11.4 |
SCNVector3 anchorA | 身体的附着点A | | iOS11.4 |
SCNPhysicsBody *bodyB | 第二个主体连接到滑块接头 | | iOS11.4 |
SCNVector3 axisB | bodyB可以滑动的轴 | | iOS11.4 |
SCNVector3 anchorB | bodyB的附着点 | | iOS11.4 |
以弧度表示的最小和最大线性/角度限制
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat minimumLinearLimit | | | iOS11.4 |
CGFloat maximumLinearLimit | | | iOS11.4 |
CGFloat minimumAngularLimit | | | iOS11.4 |
CGFloat maximumAngularLimit | | | iOS11.4 |
牛顿线性和角度电机
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat motorTargetLinearVelocity | | | iOS11.4 |
CGFloat motorMaximumForce | | | iOS11.4 |
CGFloat motorTargetAngularVelocity | | | iOS11.4 |
CGFloat motorMaximumTorque | | | iOS11.4 |
SCNPhysicsConeTwistJoint:SCNPhysicsBehavior MacOS10.10
SCNPhysicsConeTwistJoint
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)jointWithBodyA:(SCNPhysicsBody *)bodyA frameA:(SCNMatrix4)frameA bodyB:(SCNPhysicsBody *)bodyB frameB:(SCNMatrix4)frameB | 初始化并返回物理锥 - 扭曲关节。关节分别将bodyA和body连接在框架和框架上。 | | iOS11.4 |
+ (instancetype)jointWithBody:(SCNPhysicsBody *)body frame:(SCNMatrix4)frame | 初始化并返回物理锥形扭曲关节。关节将“body”附加到“frame”指定的3d位置,并相对于拥有该body的节点 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNPhysicsBody *bodyA | 第一个主体连接到滑块接头 | | iOS11.4 |
SCNMatrix4 frameA | | | iOS11.4 |
SCNPhysicsBody *bodyB | 第二个主体连接到滑块接头 | | iOS11.4 |
SCNMatrix4 frameB | | | iOS11.4 |
每个锥形切线方向的弧度的最大角度限制
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat maximumAngularLimit1 | | | iOS11.4 |
CGFloat maximumAngularLimit2 | | | iOS11.4 |
沿锥轴的最大扭转角
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat maximumTwistAngle | | | iOS11.4 |
SCNPhysicsVehicleWheel:NSObject MacOS10.10
SCNPhysicsVehicleWheel表示可以附加到SCNPhysicsVehicle实例的滚轮
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)wheelWithNode:(SCNNode *)node | 初始化并返回一个轮子 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *node | 接收器的节点 | | iOS11.4 |
CGFloat suspensionStiffness | 车轮悬架刚度。默认为2.0 | | iOS11.4 |
CGFloat suspensionCompression | 车轮悬架压缩。默认为4.4 | | iOS11.4 |
CGFloat suspensionDamping | 车轮悬架减震。默认为2.3 | | iOS11.4 |
CGFloat maximumSuspensionTravel | 车轮最大悬架行程以厘米为单位。默认为500 | | iOS11.4 |
CGFloat frictionSlip | 车轮摩擦滑动系数。默认为1 | | iOS11.4 |
CGFloat maximumSuspensionForce | 车轮最大悬挂力以牛顿为单位。默认为6000 | | iOS11.4 |
SCNVector3 connectionPosition | 车轮连接点相对于底盘。默认为节点位置 | | iOS11.4 |
SCNVector3 steeringAxis | 车轮底盘中的车轮转向轴。默认为(0,-1,0) | | iOS11.4 |
SCNVector3 axle | 车轮底盘中的轮轴。默认为(-1,0,0) | | iOS11.4 |
CGFloat radius | 车轮半径。默认为节点边界框的最大维度的一半 | | iOS11.4 |
CGFloat suspensionRestLength | 车轮悬架休息长度。默认为1.6 | | iOS11.4 |
SCNPhysicsVehicle:SCNPhysicsBehavior MacOS10.10
方 法 | 说 明 | 备 注 | SDK版本 |
---|
+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray<SCNPhysicsVehicleWheel *> *)wheels | | | iOS11.4 |
- (void)applyEngineForce:(CGFloat)value forWheelAtIndex:(NSInteger)index | 在指定索引处对车轮施加力 | | iOS11.4 |
- (void)setSteeringAngle:(CGFloat)value forWheelAtIndex:(NSInteger)index | 允许控制指定索引处车轮的方向。转向值以弧度表示,0表示直线前进 | | iOS11.4 |
- (void)applyBrakingForce:(CGFloat)value forWheelAtIndex:(NSInteger)index | 在指定的索引处对车轮施加制动力 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
CGFloat speedInKilometersPerHour | 以每小时公里数表示的实际速度 | | iOS11.4 |
NSArray<SCNPhysicsVehicleWheel *> *wheels | 车轮 | | iOS11.4 |
SCNPhysicsBody *chassisBody | 车辆的底盘 | | iOS11.4 |
文件SCNTechnique.h
SCNTechnique : NSObject
SCNTechniqueSupport协议
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNTechnique *technique | 指定接收器的技术。默认为零 | | iOS11.4 |
文件SCNReferenceNode.h
#import <SceneKit/SCNReferenceNode.h>
SCNReferenceLoadingPolicy iOS9.0
控制何时加载参考节点
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNReferenceLoadingPolicyImmediate | | | iOS11.4 |
SCNReferenceLoadingPolicyOnDemand | | | iOS11.4 |
SCNReferenceNode:SCNNode iOS9.0
引用外部文件的节点
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (nullable instancetype)initWithURL:(NSURL *)referenceURL | 使用url创建引用节点 | | iOS11.4 |
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder | 通过NSKeyedArchiver支持编码和解码 | | iOS11.4 |
+ (nullable instancetype)referenceNodeWithURL:(NSURL *)referenceURL | 使用url创建引用节点 | | iOS11.4 |
- (void)load | 如果尚未加载引用,则强制加载引用。将添加已解析的节点作为接收器的子节点 | | iOS11.4 |
- (void)unload | 删除子节点并标记为已卸载 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSURL *referenceURL | 指定要解析的网址 | | iOS11.4 |
SCNReferenceLoadingPolicy loadingPolicy | 指定何时加载引用。请参阅上面的SCNReferenceLoadingPolicy。默认为SCNReferenceLoadingPolicyImmediately | | iOS11.4 |
BOOL loaded | 指示是否已加载引用的URL | | iOS11.4 |
文件SCNAudioSource.h
SCNAudioSource : NSObject <NSCopying, NSSecureCoding> iOS9.0+
SCNAudioSource类表示可以添加到SCNNode的音频源 (add by ak 注意声音文件一定是单声道的才有效。)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (nullable instancetype)initWithFileNamed:(NSString *)name | 方便初始化程序,它从主程序包中的指定音频资产创建AVAudioNode | | iOS11.4 |
- (nullable instancetype)initWithURL:(NSURL *)url | 便利初始化程序,它从包含音频资产的URL创建AVAudioNode | | iOS11.4 |
+ (nullable instancetype)audioSourceNamed:(NSString *)fileName | 方便类初始化程序缓存audioSources | | iOS11.4 |
- (void)load | 在内存中加载和解压缩音频源。如果“shouldStream”设置为YES或者音频源已加载,则此方法无效 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
BOOL positional | 将音频源标记为位置,以便音频混合考虑相对于SCNSceneRenderer的当前侦听器节点的相对位置和速度。默认为YES | | iOS11.4 |
float volume | 此音频缓冲区的默认音量。默认值为1.0(完整音量) | | iOS11.4 |
float rate | 此音频缓冲区的默认速率。默认值为1.0(音频源的原始速率) | | iOS11.4 |
float reverbBlend | 此音频缓冲区的默认reverbBlend。默认值为0.0(没有声音发送到混响) | | iOS11.4 |
BOOL loops | 指定音频源是否应循环。默认为NO | | iOS11.4 |
BOOL shouldStream | 指定是否应该流式传输音频源。默认为NO | | iOS11.4 |
SCNAudioPlayer : NSObject iOS9.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (instancetype)init | | | iOS11.4 |
- (instancetype)initWithSource:(SCNAudioSource *)source | 使用源启动音频播放器。大多数人应该使用audioPlayerWithSource,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 | | iOS11.4 |
- (instancetype)initWithAVAudioNode:(AVAudioNode *)audioNode | 使用AVAudioNode初始化音频播放器。大多数人应该使用audioPlayerWithAVAudioNode,因为它允许回收以前的玩家,而不是为每个实例创建新玩家 | | iOS11.4 |
+ (instancetype)audioPlayerWithSource:(SCNAudioSource *)source | 使用源创建音频播放器 | | iOS11.4 |
+ (instancetype)audioPlayerWithAVAudioNode:(AVAudioNode *)audioNode | 使用自定义AVAudioNode实例创建音频播放器 | | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
void (^willStartPlayback)(void) | 如果存在有效的音频源,则在播放开始时调用此块 | | iOS11.4 |
void (^didFinishPlayback)(void) | 如果存在有效的音频源,则在播放停止时调用此块 | | iOS11.4 |
AVAudioNode *audioNode | audioNode。如果此播放器未使用自定义AVAudioNode进行初始化,则它包含内部场景工具包使用的内部音频播放器节点 | | iOS11.4 |
SCNAudioSource *audioSource | audioSource如果有的话 | | iOS11.4 |
SCNNode (SCNAudioSupport)
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)addAudioPlayer:(SCNAudioPlayer *)player | 将音频播放器添加到节点并立即开始播放 | iOS9.0 | iOS11.4 |
- (void)removeAllAudioPlayers | 从此节点中删除所有音频播放器并停止播放 | iOS9.0 | iOS11.4 |
- (void)removeAudioPlayer:(SCNAudioPlayer *)player | 从此节点中删除给定的音频播放器并停止播放 | iOS9.0 | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
NSArray<SCNAudioPlayer *> *audioPlayers | 获取一个阵列,连接所有音频播放器并在此节点上播放 | iOS9.0 | iOS11.4 |
文件SCNHitTest.h
#import <SceneKit/SCNHitTest.h>
SCNHitTestSearchMode iOS11.0
点击测试模式
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNHitTestSearchModeClosest | 找到最近的对象 | | iOS11.4 |
SCNHitTestSearchModeAll | 所有找到的对象从最近到最远排序 | | iOS11.4 |
SCNHitTestSearchModeAny | 找到第一个对象。这个对象不一定是最近的 | | iOS11.4 |
SCNHitTestOption
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNHitTestClipToZRangeKey | 如果设置为YES,则忽略当前视点的zNear / zFar范围剪切的对象。默认为YES | | iOS11.4 |
SCNHitTestBackFaceCullingKey | 如果设置为YES,则忽略不面向相机的脸部。默认为YES | | iOS11.4 |
SCNHitTestBoundingBoxOnlyKey | 如果设置为YES,则仅测试3D对象的边界框。默认为NO | | iOS11.4 |
SCNHitTestIgnoreChildNodesKey | 确定是否忽略子节点。默认为NO | | iOS11.4 |
SCNHitTestRootNodeKey | 指定用于命中测试的根节点。默认为场景的根节点 | | iOS11.4 |
SCNHitTestIgnoreHiddenNodesKey | 确定是否应忽略隐藏节点。默认为YES | MacOS10.9 | iOS11.4 |
SCNHitTestOptionCategoryBitMask | 确定要测试的节点类别。默认为所有设置的位 | iOS10.0 | iOS11.4 |
SCNHitTestOptionSearchMode | 确定搜索是否应该是详尽无遗的。默认为SCNHitTestSearchModeClosest | iOS11.0 | iOS11.4 |
SCNHitTestFirstFoundOnlyKey | 已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAny | | iOS11.4 |
SCNHitTestSortResultsKey | 已废弃SCNHitTestOptionSearchMode选项,推荐使用SCNHitTestSearchModeAll | | iOS11.4 |
#define SCNHitTestOptionFirstFoundOnly SCNHitTestFirstFoundOnlyKey
#define SCNHitTestOptionSortResults SCNHitTestSortResultsKey
#define SCNHitTestOptionClipToZRange SCNHitTestClipToZRangeKey
#define SCNHitTestOptionBackFaceCulling SCNHitTestBackFaceCullingKey
#define SCNHitTestOptionBoundingBoxOnly SCNHitTestBoundingBoxOnlyKey
#define SCNHitTestOptionIgnoreChildNodes SCNHitTestIgnoreChildNodesKey
#define SCNHitTestOptionRootNode SCNHitTestRootNodeKey
#define SCNHitTestOptionIgnoreHiddenNodes SCNHitTestIgnoreHiddenNodesKey
SCNHitTestResult : NSObject
命中测试方法返回的结果
属 性 | 说 明 | 备 注 | SDK版本 |
---|
SCNNode *node | 节点命中 | | iOS11.4 |
NSInteger geometryIndex | 命中几何体的索引 | | iOS11.4 |
NSInteger faceIndex | 命中面部的索引 | | iOS11.4 |
SCNVector3 localCoordinates | 节点局部坐标系中的交点 | | iOS11.4 |
SCNVector3 worldCoordinates | 世界坐标系中的交点 | | iOS11.4 |
SCNVector3 localNormal | 节点局部坐标系中的交点法线 | | iOS11.4 |
SCNVector3 worldNormal | 世界坐标系中的交点法线 | | iOS11.4 |
SCNMatrix4 modelTransform | 交点的世界变换 | | iOS11.4 |
SCNNode *boneNode | 骨节点命中。仅在节点命中附加了SCNSkinner时才可用 | iOS10.0 | iOS11.4 |
属 性 | 说 明 | 备 注 | SDK版本 |
---|
- (CGPoint)textureCoordinatesWithMappingChannel:(NSInteger)channel | 对于给定的映射通道,返回交叉点处的纹理坐标 | | iOS11.4 |
文件SCNCameraController.h
SCNInteractionMode iOS11.0
指定相机的相对行为屏幕空间交互
常 量 | 说 明 | 备 注 | SDK版本 |
---|
SCNInteractionModeFly | 相对于向上矢量 | | iOS11.4 |
SCNInteractionModeOrbitTurntable | 从角度累积以绝对方向围绕目标旋转。向上没有考虑向量 | | iOS11.4 |
SCNInteractionModeOrbitAngleMapping | 通过将2D屏幕坐标映射到球面坐标来围绕目标旋转 | | iOS11.4 |
SCNInteractionModeOrbitCenteredArcball | | | iOS11.4 |
SCNInteractionModeOrbitArcball | 通过将2D屏幕坐标映射到半球来围绕目标旋转 | | iOS11.4 |
SCNInteractionModePan | X/Y上的相机空间转换 | | iOS11.4 |
SCNInteractionModeTruck | X/Z上的相机空间转换 | | iOS11.4 |
SCNCameraControllerDelegate协议 iOS11.0
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)cameraInertiaWillStartForController:(SCNCameraController *)cameraController | | 可选 | iOS11.4 |
- (void)cameraInertiaDidEndForController:(SCNCameraController *)cameraController | | 可选 | iOS11.4 |
SCNCameraController : NSObject iOS11.0
属 性 | 说 明 | 备 注 | SDK版本 |
---|
id <SCNCameraControllerDelegate> delegate | | | iOS11.4 |
SCNNode *pointOfView | | | iOS11.4 |
SCNInteractionMode interactionMode | | | iOS11.4 |
SCNVector3 target | 轨道旋转的世界空间中的摄像机目标 | | iOS11.4 |
BOOL automaticTarget | 在beginInteraction中自动更新目标。默认为NO | | iOS11.4 |
SCNVector3 worldUp | 世界空间中的向上矢量用作SCNInteractionModeFly和SCNInteractionModeOrbitTurntable相机模式的参考。默认为UnitY(0,1,0) | | iOS11.4 |
BOOL inertiaEnabled | 设置为YES以在endInteraction上启用惯性。默认为NO | | iOS11.4 |
float inertiaFriction | 摩擦系数适用于惯性。默认为0.05 | | iOS11.4 |
BOOL inertiaRunning | 如果惯性正在运行,则返回YES | | iOS11.4 |
Fly模式和Turntable的最小和最大垂直视角度
属 性 | 说 明 | 备 注 | SDK版本 |
---|
float minimumVerticalAngle | | | iOS11.4 |
float maximumVerticalAngle | | | iOS11.4 |
Fly模式和Turntable的最小和最大水平视角度
属 性 | 说 明 | 备 注 | SDK版本 |
---|
float minimumHorizontalAngle | | | iOS11.4 |
float maximumHorizontalAngle | | | iOS11.4 |
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)translateInCameraSpaceByX:(float)deltaX Y:(float)deltaY Z:(float)deltaX | 沿着局部X / Y / Z轴平移相机 | | iOS11.4 |
- (void)frameNodes:(NSArray<SCNNode *> *)nodes | 将摄像机移动到所有节点的边界球体完全可见的位置。还设置相机目标具有边界球体的中心 | | iOS11.4 |
- (void)rotateByX:(float)deltaX Y:(float)deltaY | 旋转三角形是度 | | iOS11.4 |
- (void)rollBy:(float)delta aroundScreenPoint:(CGPoint)point viewport:(CGSize)viewport | 围绕给定的屏幕空间点旋转相机。Delta是 | | iOS11.4 |
- (void)dollyBy:(float)delta onScreenPoint:(CGPoint)point viewport:(CGSize)viewport | 通过屏幕空间点沿轴移动相机进行缩放。 | | iOS11.4 |
- (void)rollAroundTarget:(float)delta | 通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 | | iOS11.4 |
- (void)dollyToTarget:(float)delta | 通过沿着轴将摄像机从摄像机位置移动到目标来进行缩放 | | iOS11.4 |
- (void)clearRoll | 如果有的话清除相机胶卷 | | iOS11.4 |
- (void)stopInertia | 停止当前的惯性 | | iOS11.4 |
使用相对于视口的输入位置开始/继续/结束交互。行为取决于当前的interactionMode。
方 法 | 说 明 | 备 注 | SDK版本 |
---|
- (void)beginInteraction:(CGPoint)location withViewport:(CGSize)viewport | | | iOS11.4 |
- (void)continueInteraction:(CGPoint)location withViewport:(CGSize)viewport sensitivity:(CGFloat)sensitivity | | | iOS11.4 |
- (void)endInteraction:(CGPoint)location withViewport:(CGSize)viewport velocity:(CGPoint)velocity | | | iOS11.4 |
文件SCNJavascript.h
将SceneKit的符号(常量和类定义)导出到指定的JavaScript上下文中
方 法 | 说 明 | 备 注 | SDK版本 |
---|
void SCNExportJavaScriptModule(JSContext *context) | | | iOS11.4 |