SceneKit

SceneKit 是一个高性能的渲染游戏引擎,它能够将3D模型文件,用很简单的方式渲染出来,不像Metal 或者 OpenGL 需要开发者自己去写算法实现渲染3D文件的渲染功能。但是我想说的是,SceneKit 其实底层实现也是Metal 和 OpenGL 这一点,大家要清楚。

常用类介绍

NO.1 SCNView

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

NO.2 SCNScence

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

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 就是呈现三维模型的类,我们模型具体长什么样子,是个正方体还是长方体,都是它说了算。

NO.10 SCNMaterial

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

SCNLight

光照类型,如下:

SCNMaterial

SceneNode提供8种属性用来设置模型材质

Diffuse 漫发射属性表示光和颜色在各个方向上的反射量
Ambient 环境光以固定的强度和固定的颜色从表面上的所有点反射出来。如果场景中没有环境光对象,这个属性对节点没有影响
Specular 镜面反射是直接反射到使用者身上的光线,类似于镜子反射光线的方式。此属性默认为黑色,这将导致材料显得呆滞
Normal 正常照明是一种用于制造材料表面光反射的技术,基本上,它试图找出材料的颠簸和凹痕,以提供更现实发光效果
Reflective 反射光属性是一个镜像表面反射环境。表面不会真实地反映场景中的其他物体
Emission 该属性是由模型表面发出的颜色。默认情况下,此属性设置为黑色。如果你提供了一个颜色,这个颜色就会体现出来,你可以提供一个图像。SceneKit将使用此图像提供“基于材料的发光效应”。
Transparent 用来设置材质的透明度
Multiply 通过计算其他所有属性的因素生成最终的合成的颜色

参考资料1

SCNCamera

相机是用于显示场景内容必须的节点。

相机有两种,透视和正交。

透视相机:模拟现实中的视觉效果,具有远近效果。

xFov,yFov 角度越大视野越广,看到的物体就越小
zNear最近的可视距离
zFar最远的可视距离
超出部分不显示。

正交相机:无远近效果。

You Might Also Like
发表评论