SwiftUI SceneKit之绘制SCNBox六面多面体(教程含源码)

本文价值与收获

看完本文后,您将能够作出下面的界面

SwiftUI SceneKit之绘制SCNBox六面多面体(教程含源码)_第1张图片
SceneKit之绘制SCNBox六面多面体
SceneKit之绘制SCNBox六面多面体

SCNBox

六面多面体几何,其面均为矩形,可以选择带有圆角和圆角。

class SCNBox : SCNGeometry

使用教程

通过设置框的,和属性width,在其局部坐标空间的x,y和z轴尺寸中定义框的形状。通过其属性将圆角和圆角添加到框。要在场景中定位和定向盒子,请将其附加到对象的属性。


SwiftUI SceneKit之绘制SCNBox六面多面体(教程含源码)_第2张图片
SCNBox

控制的细节与水平,,,和特性。较高的细分数量会产生更多的顶点,这可以提高某些照明模型或自定义着色器效果的渲染质量,但会降低渲染性能。您最多可以SCNMaterial为一个框及其materials属性分配六个实例(每侧一个)。所述SCNBox自动创建类作为需要处理的材料的数量的对象。

init初始化函数

convenience init(width: CGFloat, 
          height: CGFloat, 
          length: CGFloat, 
   chamferRadius: CGFloat)

参量

width
框沿其局部坐标空间的x轴的宽度。

height
框沿其局部坐标空间的y轴的高度。

length
框沿其局部坐标空间的z轴的长度。

chamferRadius
盒子的边缘和角落的曲率半径。

返回值

新的盒子几何。

讨论区

box位于其局部坐标系的中心。

SCNNode

场景图的结构元素,表示3D坐标空间中的位置和变换,您可以在其中附加几何图形,灯光,照相机或其他可显示内容。

class SCNNode : NSObject

使用教程

一个SCNNode由对象本身是不可见的内容时含有它呈现-它仅代表一个坐标空间变换(位置,方向和比例)相对于其父节点的情景。要构建场景,请使用节点层次结构来创建其结构,然后向节点添加灯光,摄影机和几何图形以创建可见的内容。

SCNVector3

三分量向量的表示。

struct SCNVector3

SceneKit使用三分量矢量实现多种目的,例如描述节点或顶点位置,表面法线以及缩放或平移变换。应该根据使用矢量的上下文来解释不同的矢量分量。

在MACOS的x,y和z在该结构域是CGFloat值。在iOS,tvOS和watchOS中,这些字段是Float值。

shininess

镜面反射高光的清晰度。可动画的。

var shininess: CGFloat { get set }

使用教程

材质的光泽度与其specular属性和场景中的照明相互作用,从而在表面上产生明亮的高光。较高的值会产生更清晰的高光,使表面看起来更平滑和更有光泽。

您可以为该属性的值设置动画。请参见使SceneKit内容动画化。


实战代码

你可能感兴趣的:(SwiftUI SceneKit之绘制SCNBox六面多面体(教程含源码))