SceneKit框架详细解析(一) —— 基本概览(一)

版本记录

版本号 时间
V1.0 2017.12.02

前言

SceneKit使用高级场景描述创建3D游戏并将3D内容添加到应用程序。 轻松添加动画,物理模拟,粒子效果和逼真的基于物理性的渲染。接下来这几篇我们就详细的解析一下这个框架。

Overview

先看一下该框架的基本信息。

SceneKit框架详细解析(一) —— 基本概览(一)_第1张图片

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


基本架构

先看一下结构的基本架构。

SceneKit框架详细解析(一) —— 基本概览(一)_第2张图片
SceneKit框架详细解析(一) —— 基本概览(一)_第3张图片

下面我们就详细的看一下架构。

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,SCNLayerSCNRenderer类通用的方法和属性。
  • 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上下文。

14. Reference

  • SceneKit Enumerations

后记

未完,待续~~~

SceneKit框架详细解析(一) —— 基本概览(一)_第4张图片

你可能感兴趣的:(SceneKit框架详细解析(一) —— 基本概览(一))