1、SceneKit简介
SceneKit(SK)是WWDC12推出的OS X平台的Cocos 3D渲染引擎框架。支持粒子效果,物理模拟,脚本事件,多程渲染,支持iOS平台。SceneKit整合了Core Image,Core Animation之类的图形框架,现在还整合进了SpriteKit。SceneKit是基于OpenGL构建的。
2、相关类说明
3、ModellO.h
基于I/O框架的桥梁,就是通过ModelIO给相关类(SCNScene、SCNLight、SCNCamera、SCNGeometry、SCNMaterial等)添加类别。
4、SceneKit.h
所有和SceneKit库相关的类的头文件。
5、SceneKitTypes.h
在SceneKit中使用到的各种类型(如枚举值、结构体)。还有一个NSValue的类别,在给节点SCNNode做动画时可以用:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"rotation"];
animation.duration = 10.0;
animation.toValue = [NSValue valueWithSCNVector4:SCNVector4Make(, , , *M_PI)];
animation.repeatCount = MAXFLOAT;
[self.node addAnimation:animation forKey:@"node"];
6、SCNAction.h
主要负责节点SCNNode的属性,实现node的渐变、移动、出现、消失、实现动画等。
7、SCNAnimation.h
创建以预定方式移动场景元素的声明性动画(设置动画时间、路径、速率等),或管理使用外部创作工具导入的动画(通过URL:animationWithContentsOfURL实现动画)。
8、SCNAudioSource.h
用于添加声音,简单可重复使用的音频源。
9、SCNBoundingVolume.h
使用这个协议来获取或者判断节点和几何体的边界框,只有三个方法。
10、SCNCAAnimationExtensions.h
遵循SCNAnimation协议,给CAAnimation添加类别,获取动画相关信息。
11、SCNCamera.h
被称为照相机或者摄像机,可以附加到节点以提供显示场景的角度。其实就是用户视角和人的眼睛一样。
12、SCNCameraController.h
SCNCameraController是摄像机(SCNCamera)的操作类。
13、SCNConstraint.h
SCN约束是一个抽象类,它表示可以应用于节点的单个约束,根据指定的规则自动调整节点的位置或方向。
14、SCNGeometry.h
负责呈现三维模型的类,它管理者物体的形状、纹理等。
15、SCNHitTest.h
有关搜索位于指定点或指定线段(或光线)的场景元素的结果的详细信息(如节点、坐标等)。
16、SCNJavascript.h
在指定的JavaScript上下文中导出ScEnKIT的符号(常量和类定义)。(用于macos系统)
17、SCNLevelOfDetail.h
SCNLevelOfDetail代表模型的细节层次,比如获取SCNGeometry属性等。
18、SCNLight.h
用于添加光源,连接到一个节点照亮现场,可以给场景添加不同的灯光,模拟逼真的环境。
19、SCNMaterial.h
用于设定模型的外观属性。
20、SCNMaterialProperty.h
用于设置模型的各种特性,比如材质的纹理和颜色等。
21、SCNMorpher.h
管理节点基于模型与一个或者多个目标模型之间平滑过渡,也就是控制几何图形的变形。
22、SCNNode.h
场景图的结构元素,表示3D坐标空间中的位置和变换,您可以将模型,灯光,相机或其他可显示内容附加到该元素。
23、SCNParametricGeometry.h
用于获取模型的相关信息。
24、SCNParticleSystem.h
使用您指定的一般行为的高级仿真,管理动画和渲染小图像精灵或粒子的系统。(用于macos(10.10))
25、SCNPhysicsBehavior.h
SCNPhysicsBehavior是一个抽象的类,它代表了物理世界中的一种行为。(用于macos(10.10))
26、SCNPhysicsBody.h
SCNPhysicsBody类描述了节点的物理特性(如质量、摩擦等)。(用于macos(10.10))
27、SCNPhysicsContact.h
SCNPhysicsContact类包含有关物理接触的信息(节点等)。(用于macos(10.10))
28、SCNPhysicsField.h
SCNPhysicsField类是描述在物理世界中应用的力场的抽象类。(用于macos(10.10))
29、SCNPhysicsShape.h
SCNPhysicsShape代表一个物理体的形状,(用于macos(10.10))
30、SCNPhysicsWorld.h
SCNPhysicsWorld类描述并允许控制3D场景的物理模拟。SCNPhysicsWorld类不应该直接分配,而是使用物理世界属性从SCNScene类检索。
31、SCNReferenceNode.h
一个场景图节点,用作要从单独的场景文件加载的内容的占位符。
32、SCNRenderer.h
用于在现有的Metal工作流程或OpenGL上下文中显示SceneKit场景的渲染器。
33、SCNScene.h
SCNScene是呈现出来的场景,一个具有附加的几何图形,灯光,相机和其他属性的节点层次,这些属性一起形成一个可显示的3D场景。
34、SCNSceneRenderer.h
SCNView,SCNLayer和SCNRenderer类通用的方法和属性。
35、SCNSceneSource.h
管理与从文件或数据加载场景内容相关的数据读取任务。
36、SCNShadable.h
使用Metal或OpenGL着色器程序自定义SceneKit渲染几何和材质的方法。
37、SCNSkinner.h
管理骨骼动画与其动画的节点和几何之间的关系的对象。
38、SCNTechnique.h
增加或后处理SceneKit渲染场景的规范,使用额外的绘图通过定制的Metal或OpenGL着色器。
39、SCNTransaction.h
SceneKit动画基于Core Animation 框架,可以隐式或显式创建。
隐式创建是实际是通过动画节点的一些动画属性来实现:SceneKit自动在run loop一次运行期间对一个场景包含节点属性的所有改变组合成一个原子操作,称为一个事务,由SCNTransaction 类表示;当设置SCNTransaction类的动画周期不为0时,所有对节点动画属性的改变自动执行动画。
显式创建动画时,可以选择CAAnimation一种类型的子类来创建特定类型的动画。
40、SCNView.h
SCNView用于显示SceneKit的3D内容,在iOS系统上是UIView的子类,因此可以把SCNView类添加到UIView上。