swift 快速奔跑的兔几 本节的内容是:SceneKit 第一说 创建一个3
SceneKit是一组类,可以用来在App中创建和呈现3D场景。 1、SceneKit的结构 2、添加SceneKit视图 import UIKit
import SceneKit
class SceneKitViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let sceneView = self.view as! SCNView sceneView.backgroundColor = UIColor.grayColor() // Do any additional setup after loading the view. } }
这时运行,即可看到灰色的背景 3、添加场景:向viewDidLoad中添加如下代码 // 添加场景
let sceneOne = SCNScene()
sceneView.scene = sceneOne
SCNScene对象是所有SceneKit对象的容器。想要向用户显示的对象都要放在这个容器内。注意,尽管我们可以有多个场景,但是视图中一次只能有一个场景可见。 4、添加照相机 // 添加照相机 并指明水平和垂直视角都是45度
let cameraOne = SCNCamera()
cameraOne.xFov = 45
cameraOne.yFov = 45
下面,需要将照相机附加到一个节点上: // 将照相机附加到节点
let cameraNode = SCNNode()
cameraNode.camera = cameraOne
cameraNode.position = SCNVector3(0,0,20)
sceneOne.rootNode.addChildNode(cameraNode)
5、添加3D对象:一枚胶囊 // 添加3D对象
let capsuleOne = SCNCapsule(capRadius: 2.5,height: 10)
let capsuleNodeOne = SCNNode(geometry: capsuleOne)
capsuleNodeOne.position = SCNVector3(0,0)
sceneOne.rootNode.addChildNode(capsuleNodeOne)
此时可以看到一枚白色的胶囊。屏幕上木有光照,所以默认为全亮度的白色。 6、添加光源 下面给胶囊添加一个环境光源和一个泛光源 // 添加环境光源
let ambientLight = SCNLight()
ambientLight.type = SCNLightTypeAmbient
ambientLight.color = UIColor(white: 0.25,alpha: 1.0)
let ambientNodeOne = SCNNode()
ambientNodeOne.light = ambientLight
sceneOne.rootNode.addChildNode(ambientNodeOne)
// 添加泛光源
let omniLight = SCNLight()
omniLight.type = SCNLightTypeOmni
omniLight.color = UIColor(white:1.0,alpha: 1.0)
let omniNodeOne = SCNNode()
omniNodeOne.light = omniLight
omniNodeOne.position = SCNVector3(-5,8,5)
sceneOne.rootNode.addChildNode(omniNodeOne)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |