版本记录
版本号 | 时间 |
---|---|
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
- 一组摄像机属性,可以附加到节点以提供显示场景的角度。
SCNCameraController
SCNCameraControlConfiguration
SCNCameraControllerDelegate
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
后记
未完,待续~~~