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

版本记录

版本号 时间
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,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

后记

未完,待续~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容