iOS で SceneKit を試す(Swift 3) その29 - ビルトインジオメトリ SCNTube(チューブ型)
チューブ型のジオメトリ。
Scene Editor でのパラメーター
オブジェクトライブラリの Tube を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4)
1番上の Tube の項目で設定値が変更できる
Dimensions
Inner radius
チューブ内側の円の半径。
初期値は 0.5。
Outer radius と同じするとチューブの厚さがなくなる。
Outer radius
外周の半径。
初期値は 1。
Inner radius と同じするとチューブの厚さがなくなる。
Height
ジオメトリの高さ
初期値は 1。
Segment Count
Radial
外周の分割数。
初期値は 48。
Height
高さの分割率。
初期値は 1。
外周を 16、高さを 4 の分割数に設定したもの。
コード
// シーン設定 let scnView = self.view as! SCNView scnView.showsStatistics = true scnView.allowsCameraControl = true scnView.debugOptions = .showWireframe // ワイヤーフレーム表示 let scene = SCNScene() scene.background.contents = UIColor.white scnView.scene = scene // カメラ設定 let cameraNode = SCNNode() cameraNode.camera = SCNCamera() cameraNode.position = SCNVector3(2.372,1.473,2.399) cameraNode.eulerAngles = SCNVector3(-Float.pi * 0.125,Float.pi * 0.25,0) scene.rootNode.addChildNode(cameraNode) // ライト設定 let lightNode = SCNNode() let omniLight = SCNLight() omniLight.type = .omni lightNode.light = omniLight lightNode.position = SCNVector3(0,5,0) scene.rootNode.addChildNode(lightNode) // SCNTube let tube = SCNTube(innerRadius: 0.5, outerRadius: 1, height: 1) /* tube.innerRadius = 0.5 tube.outerRadius = 1 tube.height = 1 */ tube.radialSegmentCount = 16 tube.heightSegmentCount = 4 tube.firstMaterial?.diffuse.contents = UIColor.black // ワイヤーフレームを見やすくするため黒色に。 let node = SCNNode(geometry: tube) scene.rootNode.addChildNode(node)
今回はここまで。