版本记录
| 版本号 | 时间 |
|---|---|
| V1.0 | 2017.12.02 |
前言
SceneKit使用高级场景描述创建3D游戏并将3D内容添加到应用程序。 轻松添加动画,物理模拟,粒子效果和逼真的基于物理性的渲染。接下来这几篇我们就详细的解析一下这个框架。
Overview
先看一下该框架的基本信息。

SceneKit将高性能渲染引擎与用于导入,处理和渲染3D资源的描述性API结合在一起。 与像Metal和OpenGL这样的低级API需要精确地实现显示场景的渲染算法不同,SceneKit只需要场景内容的描述以及你想要执行的动作或动画。
基本架构
先看一下结构的基本架构。


下面我们就详细的看一下架构。
1. First Steps
-
SCNScene- 一个scene图 - 一个具有附加的几何图形,灯光,相机和其他属性的节点层次,这些属性一起形成一个可显示的3D场景。
-
SCNView- 显示3D SceneKit内容的视图。
2. Scene Structure
-
Organizing a Scene with Nodes- 使用节点来定义场景的结构。
-
SCNNode- 场景图的结构元素,表示3D坐标空间中的位置和变换,您可以将几何图元,灯光,相机或其他可显示内容附加到该元素。
-
SCNReferenceNode- 一个场景图节点,用作要从单独的场景文件加载的内容的占位符。
-
Basic 3D Data Types- 向量,矩阵和相关的函数和算法。
3. Display and Interactivity
-
SCNSceneRenderer-
SCNView,SCNLayer和SCNRenderer类通用的方法和属性。
-
-
SCNSceneRendererDelegate- 您的应用程序可以实现的方法以参与SceneKit的动画循环或执行其他渲染。
-
SCNLayer- 将SceneKit场景呈现为其内容的Core Animation图层。
-
SCNRenderer- 用于在现有的Metal工作流程或OpenGL上下文中显示SceneKit场景的渲染器。
-
SCNHitTestResult- 有关搜索位于指定点或指定线段(或光线)的场景元素的结果的详细信息。
4. Cameras
-
SCNCamera- 一组摄像机属性,可以附加到节点以提供显示场景的角度。
SCNCameraControllerSCNCameraControlConfigurationSCNCameraControllerDelegate
5. Lighting and Shading
-
SCNLight- 一个光源,可以连接到一个节点照亮现场。
-
SCNMaterial- 一组着色属性,用于定义渲染时几何表面的外观。
-
SCNMaterialProperty- 材质的视觉特性之一的颜色或纹理的容器。
6. Geometry
-
SCNGeometry- 可以在场景中显示的三维形状(也称为模型或网格),并附有定义其外观的材料。
-
SCNGeometrySource- 顶点数据的容器,构成三维物体或几何体定义的一部分。
-
SCNGeometryElement- 索引数据的容器,用于描述顶点如何连接以定义三维对象或几何体。
-
Built-in Geometry Types- 基本形状,如球体,盒子和平面,以及用于从二维文本和贝塞尔曲线生成三维对象的功能。
7. Animation and Constraints
-
Animation- 创建以预定方式移动场景元素的声明性动画,或管理使用外部创作工具导入的动画。
-
Constraints- 根据指定的规则自动调整节点的位置或方向。
-
SCNSkinner- 管理
skeletal动画与其动画的节点和几何之间的关系的对象。
- 管理
-
SCNMorpher- 管理节点基本几何与一个或多个目标几何之间平滑过渡的对象。
8. Physics
-
Physics Simulation- 将动态行为添加到场景中的对象; 检测碰撞并响应物体之间的接触; 模拟真实的物理效应,如重力,弹簧和
vehicles。
- 将动态行为添加到场景中的对象; 检测碰撞并响应物体之间的接触; 模拟真实的物理效应,如重力,弹簧和
9. Particle Systems
-
SCNParticleSystem- 使用您指定的一般行为的高级仿真,管理动画和渲染小图像精灵或粒子的系统。
-
SCNParticlePropertyController- 粒子系统呈现的单个粒子的单个属性的动画。
10. Audio
-
SCNAudioSource- 一个简单的,可重复使用的音频源 - 从文件加载的音乐或声音效果 - 用于定位音频播放。
-
SCNAudioPlayer- 用于在SceneKit场景中播放位置音频源的控制器。
11. Renderer Customization
-
SCNShadable- 使用Metal或OpenGL着色器程序自定义SceneKit渲染几何和材质的方法。
-
SCNProgram- 一个完整的Metal或OpenGL着色器程序,取代了SceneKit对几何或材质的渲染。
-
SCNBufferStream- 管理自定义着色器程序使用的Metal缓冲区的对象。
-
SCNTechnique- 增加或后处理SceneKit渲染场景的规范,使用额外的绘图通过定制的Metal或OpenGL着色器。
-
SCNTechniqueSupport- 使用
SCNTechnique对象支持多通道渲染的SceneKit对象的通用接口。
- 使用
-
SCNNodeRendererDelegate- 您可以实现的方法使用您自己的自定义Metal或OpenGL绘图代码来呈现节点的内容。
12. Scene Asset Import
-
SCNSceneSource- 管理与从文件或数据加载场景内容相关的数据读取任务。
13. JavaScript
-
SCNExportJavaScriptModule- 使SceneKit类和全局常量可用于指定的
JavaScript上下文。
- 使SceneKit类和全局常量可用于指定的
14. Reference
SceneKit Enumerations
后记
未完,待续~~~
