Apple Engine

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

iOS で SceneKit を試す(Swift 3) その89 - SCNNode をフラット化する。

もう1つ忘れていたものノードのフラット化について。

Scene Graph でチルドノードが増えすぎたりするとドローコールが増えるため、パフォーマンスが落ちる可能性があり、 SceneKit の機能でノードのジオメトリをひとまとめにする Flatten Node の処理を行うことで緩和できる可能性がある。

 

フラット化できるもの

基本、ジオメトリとマテリアルのみで他は無視されたはず。

 

Scene Editor での使用

今回、ピンク、青と青のクローン、緑と緑のクローンの球を設定。

f:id:x67x6fx74x6f:20170904193605p:plain

 

Scene Graph View でチルドノードのあるノードを選択。
右クリックから Flatten Node を押すとひとまとめになる。

f:id:x67x6fx74x6f:20170904193631p:plain

 

Attributes Inspector の Geometory Elements のエレメントが3つになっており、 最適化がされている。

f:id:x67x6fx74x6f:20170904193645p:plain

 

コードでの使用

SCNNode に flattenedClone() メソッドがあり、実行するとフラット化された SCNNode が返る。

 

注意点

たまに中身がおかしくなる場合があるので、必ず確認しよう。

特にコードで行う場合。

 

今回はここまで。