SCNLight: 灯光
概念:游戏框架中的光源,为场景 提供阴影
-
灯光的分类(光源分为四种):
- 环境光(SCNLightTypeAmbient),这种光没有方向,位置在无穷远处,光均匀的散射在物体上
- 点光源(SCNLightTypeOmni):有固定位置,方向360度,可以衰减
- 平行方向光(SCNLightTypeDirectional):只有照射的方向,没有位置,不会衰减
-
聚焦光源(SNCLightTypeSpot):光有固定位置,也有方向,也有照射区域,可以衰减
光源的颜色: Color
光源温度: temperature
光源强度: intensity: 默认 是 1000
CastsShadow:是否支持投射阴影,这个只有在点光源或者平行方向光源有作用
shadownColor: 阴影颜色
SCNGeometry: 几何对象
- SCNGeometry: SCeneKit 游戏框架中的几何对象.将几何对象绑定到节点上,显示到view
- 系统包含的,
正方体,
平面(SCNPlane),
金字塔,
球体,
圆柱体,
圆锥体,
管道,
环面,
地板(SCNFloor),
立体字,
自定义形状(通过贝塞尔曲线)创建SCNShape
然后赋值给Node 节点 - 代码:
// 1. 球体
SCNSphere *sphere = [SCNSphere sphereWithRadius:0.5];
sphere.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *earthNode = [SCNNode nodeWithGeometry:sphere];
// [scene.rootNode addChildNode:earthNode];
//2. 字体
SCNText *scntext = [SCNText textWithString:@"Lenovo" extrusionDepth:0.3];
scntext.font = [UIFont systemFontOfSize:0.3];
SCNNode *textnode = [SCNNode nodeWithGeometry:scntext];
textnode.position = SCNVector3Make(-1, 0, -2);
// [earthNode addChildNode:textnode];
// 3. 平面
SCNPlane *plane = [SCNPlane planeWithWidth:2 height:2];
plane.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *planeNode = [SCNNode nodeWithGeometry:plane];
// [scene.rootNode addChildNode:planeNode];
// 4. 金字塔
SCNPyramid *pyramid = [SCNPyramid pyramidWithWidth:1 height:1 length:1];
pyramid.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *pyramidNode = [SCNNode nodeWithGeometry:pyramid];
// [scene.rootNode addChildNode:pyramidNode];
//5. 圆柱体
SCNCylinder *cylinder = [SCNCylinder cylinderWithRadius:1 height:1.5];
cylinder.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *cylinderNode = [SCNNode nodeWithGeometry:cylinder];
// [scene.rootNode addChildNode:cylinderNode];
//6. 管道
SCNTube *tube = [SCNTube tubeWithInnerRadius:0.5 outerRadius:0.6 height:1];
tube.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *tubeNode = [SCNNode nodeWithGeometry:tube];
// [scene.rootNode addChildNode:tubeNode];
//6. 管道
SCNTorus *torus = [SCNTorus torusWithRingRadius:1 pipeRadius:0.5 ];
torus.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *torusNode = [SCNNode nodeWithGeometry:torus];
// [scene.rootNode addChildNode:torusNode];
// 7. 地面
SCNFloor *floor = [SCNFloor floor];
floor.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *floorNode = [SCNNode nodeWithGeometry:floor];
// [scene.rootNode addChildNode:floorNode];
SCNShape *customShap = [SCNShape shapeWithPath:[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 1, 1) cornerRadius:0.5] extrusionDepth:3];
customShap.firstMaterial.diffuse.contents = @"earth.jpg";
SCNNode *customShapNode = [SCNNode nodeWithGeometry:customShap];
[scene.rootNode addChildNode:customShapNode];
SCNCamera: 相机
以后用到单独讲解