Apple Engine

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

iOS で SceneKit を試す(Swift 3) その63 - Scene Editor で Light Map のテクスチャを作成する

Scene Editor ではライトを当てたジオメトリに対して、光を当てた表面情報を画像として Light Map を作成することができる。

内容的には Ambient Occlusion と同じような操作。

 

Light Map のパラメーター

Scene Editor でジオメトリを選択し、 Attributes Inspector (Command + Option + 4) を開き、一番下に Baking の項目がある。

f:id:x67x6fx74x6f:20170813210329p:plain

 

Scene Editor では以下のパラメーター。

Type

  • Ambient Occlusion
  • Light Map

Ambient Occlusion が初期値。
今回は Light Map を指定する。

 

Destination

  • Vertex
  • Texture

Vertex 頂点にカラー情報を焼き込み、
Texture はテクスチャ画像を作成する。

作成後、Geometry Sources に
Vertex の場合 Color 情報、Texture の場合 Texture coordinates (UV 情報) が追加される。

 

Quality

初期値は 0.5。
画像のクオリティを決める。

0.5 は 512 x 512 の画像が作成される。
0.1 刻みでテクスチャ画像のサイズが倍になる。
0.6 で 1024 x 1024 になるが、この値を上げた分だけ画像生成に時間がかかるのようになるので注意。

Destination で Vertex の場合、この項目は無視される。

 

Bake ボタン

Bake ボタンを押すと実行される。

 

試してみる

準備

いつも通り、Xcode で iOS の Game テンプレートを作成し、ship.scn を開き Scene Editor を表示させる。

Object Library (Command + Control + Option + 3) から Ambient Light を配置。

さらに Light Map 用のライトのために、Omni Light を Y 軸 6 に配置。
ライトの Attributes Editor の Mode を Static にする。

f:id:x67x6fx74x6f:20170813210553p:plain

 

シーン上に Static のライトがないとエラーが出て作成されないので注意。

f:id:x67x6fx74x6f:20170813210758p:plain

 

頂点カラーやテクスチャ作成後は必要ないのでこのライトは消しても良い。

 

まず Vertex を試してみる

初期値は Vertex のままなので、Attributes Inspector の下の Bake ボタンを押す。

Ambient Occlusion と同様に Geometory Sources に Color が追加される。

f:id:x67x6fx74x6f:20170813210918p:plain

 

Texture を作成する

Destination で Texture に変更し Bake ボタンを押す。

テクスチャ画像作成後、自動的に Texture coordinates による UV 情報が付加され、マテリアルの Illumination に作成された画像が設定される。

f:id:x67x6fx74x6f:20170813211007p:plain

 

作成されたテクスチャ画像

パラメーター名
Destination 0.5

f:id:x67x6fx74x6f:20170813211220p:plain

 

パラメーター名
Destination 0.6

f:id:x67x6fx74x6f:20170813211237p:plain

  

今回はここまで。