美文网首页
SceneKit 基本介绍

SceneKit 基本介绍

作者: NJKNJK | 来源:发表于2019-11-08 14:07 被阅读0次

在要发之前我们要先了解

SceneKit 是一个OC 框架,开始之前,先熟悉一下SceneKit 的三维坐标系:

20151215130133143.jpeg

很清楚的看到,SceneKit 中的坐标系是右手坐标系(笛卡尔坐标系),如果需要与其他3D框架共享数据,先了解其框架是右手坐标系还是左手坐标系。其实也很好转化,就是Z 轴的正负不一样而已。

在开始开发之前,一定要了解下面这几个非常重要的类

类 / 协议
描述
SCNView & SCNSceneRenderer

SCNScene

SCNNode

SCNGeometry

一个可以连接到一个节点的三维物体。一个几何体(有时称为模型或网格)只定义了一个可见物体的形状。要定义对象的表面颜色图案,你必需要给几何体要附加材料。然后给材料贴图,或者上色,这个几何体表面才会有颜色,或者图案。

你可以从3D建模工具生成的.dae文件中加载一个几何体,也可以用代码创建,SceneKit 提供了几种常见几何体,是SCNGeometry 的子类,比如长方体,球,圆柱球等等,后面我们会写一个demo会把官方提供的几何体给大家列出来,给大家一个直观的感受。 当然我们也可以用三维坐标,法向量自定义几何体,也可以讲一个2D 图案转化成一个具有深度(厚度)的三维几何体。后面应该专门有一篇会讲到利用贝塞尔曲线将一个2D 图案转化成一个具有深度(厚度)的三维几何体。

SCNMaterial

材质,由于在3D建模工具中呈现球形,所以也叫材质球。上色,贴图全靠它。

SCNLight

光源可以附加到节点上,在渲染场景中提供着色

SCNCamera

虚拟摄像机可以附加到节点上,提供了一个场景的视图。

我们要使用的是SceneKit这个苹果的库。

项目中需要引入

import <SceneKit/SceneKit.h>

常用的几个类

NO.1 SCNView

SCNView主要作用是显示SceneKit 的3D内容,在iOS 系统上是UIView 的子类,由于这个原因它可以添加到我们的视图中去,如果我们做一个应用想要加点3D元素,SceneKit绝对是首选。

类似UIView,用来显示 SceneKit 的内容,定义了一些代理方法,可以用 addSubView 方法添加到UiView 中

NO.2 SCNScence

SCNScene 为游戏中的场景,简单的说,就是放的游戏元素(地图,灯光,人物的游戏元素)的地方。

SceneKit 内容的容器. 你可以从3D建模工具生成的.dae文件中加载一个场景,或者用代码创建一个 ,然后把它显示在视图上

NO.3 SCNNode

SCNNode 被称为节点,一个大型的游戏场景结构就是由无数个小的节点组成,它有自己的位置和自身坐标系统,我们可以把几何模型,灯光,摄像机的游戏中的真实元素,吸附到SCNNode 节点上。

一个场景的基本构建块,你可以把摄像机,灯光,几何体附加到节点上

NO.4 SCNCamera

SCNCamera 被称为照相机或者摄像机,游戏就相当于一个生活中的环境,我们可以通过照相机捕捉到你想要观察的画面。

虚拟摄像机可以附加到节点上,提供了一个场景的视图。

NO.5 SCNLight

SCNLight 被称为灯光,没有光线的话,我们是看不到物体的,在游戏中也是一样的,我们可以给游戏中添加不同的灯光,来模拟逼真的环境。

光源可以附加到节点上,在渲染场景中提供着色

NO.6 SCNAudioSource

SCNAudioSource 主要负责给游戏中添加声音。

NO.7 SCNAction

SCNAction 主要负责改变节点的属性,比如我们要让一个地球围绕太阳旋转,一个气球从一个地方移动另外一个地方。

NO.8 SCNTransaction

SCNTransaction 主要负责提交改变节点属性的事件,后面具体讲到再说明白。

NO.9 SCNGeometry

SCNGeometry 就是呈现三维模型的类,我们模型具体长什么样子,是个正方体还是长方体,都是它说了算。

一个可以连接到一个节点的三维物体。一个几何体(有时称为模型或网格)只定义了一个可见物体的形状。要定义对象的表面颜色图案,你必需要给几何体要附加材料。然后给材料贴图,或者上色,这个几何体表面才会有颜色,或者图案。

你可以从3D建模工具生成的.dae文件中加载一个几何体,也可以用代码创建,SceneKit 提供了几种常见几何体,是SCNGeometry 的子类,比如长方体,球,圆柱球等等,后面我们会写一个demo会把官方提供的几何体给大家列出来,给大家一个直观的感受。 当然我们也可以用三维坐标,法向量自定义几何体,也可以讲一个2D 图案转化成一个具有深度(厚度)的三维几何体。后面应该专门有一篇会讲到利用贝塞尔曲线将一个2D 图案转化成一个具有深度(厚度)的三维几何体。

NO.10 SCNMaterial

SCNMaterial 定义模型的外观,好比一个球体,它渲染出来是红色,还是绿色,会不会发光等

材质,由于在3D建模工具中呈现球形,所以也叫材质球。上色,贴图全靠它。

相关文章

网友评论

      本文标题:SceneKit 基本介绍

      本文链接:https://www.haomeiwen.com/subject/jegibctx.html