iOS で SceneKit を試す(Swift 3) その25 - ビルトインジオメトリ SCNPlane(平面)
奥行き 0 の縦状態がデフォルトの平面のジオメトリで、角を丸くすることができる。
このビルトインジオメトリは、デフォルトでマテリアルがポリゴンが両面描画される。
裏面が必要ない場合は Material Inspector(Command + Option + 5)> Setting > Double sided のチェックを外す。
また、表面を Y 軸プラス方向に向けたい場合は X軸を -90 傾ける
Scene Editor でのパラメーター
オブジェクトライブラリの Plane を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4)
1番上の Plane の項目で設定値が変更できる
Size
幅と高さが設定できる。 初期値は 1。
Corner radius
角丸の大きさ 初期値は 0。
値が 0.2 の場合。
Segment Count
幅と高さの分割数。 初期値は 1。
Corner
角丸の分割数。 初期値は 10。
幅、高さの分割数 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) // SCNPlane let plane = SCNPlane(width: 1, height: 1) /* plane.width = 1 plane.height = 1 plane.cornerRadius = 0.2 */ plane.widthSegmentCount = 4 plane.heightSegmentCount = 4 plane.cornerSegmentCount = 4 plane.firstMaterial?.diffuse.contents = UIColor.black // ワイヤーフレームを見やすくするため黒色に。 let node = SCNNode(geometry: plane) scene.rootNode.addChildNode(node)
今回はここまで。