Apple Engine

Apple, iPhone, iOS, その周辺のことについて

iOS で SceneKit を試す(Swift 3) その25 - ビルトインジオメトリ SCNPlane(平面)

奥行き 0 の縦状態がデフォルトの平面のジオメトリで、角を丸くすることができる。

このビルトインジオメトリは、デフォルトでマテリアルがポリゴンが両面描画される。

f:id:x67x6fx74x6f:20170712143418p:plain

 

裏面が必要ない場合は Material Inspector(Command + Option + 5)> Setting > Double sided のチェックを外す。

f:id:x67x6fx74x6f:20170712144130p:plain

 

また、表面を Y 軸プラス方向に向けたい場合は X軸を -90 傾ける

f:id:x67x6fx74x6f:20170712143528p:plain

 

Scene Editor でのパラメーター

オブジェクトライブラリの Plane を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4)

1番上の Plane の項目で設定値が変更できる

f:id:x67x6fx74x6f:20170712143636p:plain

 

Size

幅と高さが設定できる。 初期値は 1。

 

Corner radius

角丸の大きさ 初期値は 0。

 

値が 0.2 の場合。

f:id:x67x6fx74x6f:20170712144457p:plain

 

Segment Count

幅と高さの分割数。 初期値は 1。

 

Corner

角丸の分割数。 初期値は 10。

 

幅、高さの分割数 4。

f:id:x67x6fx74x6f:20170712144545p:plain

 

コード

// シーン設定
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)

 

今回はここまで。