Apple Engine

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

iOS で SceneKit を試す(Swift 3) その35 - Scene Editor の Material, Physically Based プロパティ

今回は Physically Based プロパティのご紹介。

 

Physically Based とは?

現実世界のライトの光などを近似させた物理ベースのシェーダーで 2010 年ぐらいから PC ゲームなどで使われ始め、モバイル GPU の進化によりスマートフォンのゲームでも使用される。

 

プロパティ

Blinn や Phong のライティングモデルのシェーダーとはプロパティが異なる。

f:id:x67x6fx74x6f:20170721170224p:plain

 

Specular、Reflective、Transparent、Ambient のプロパティはなく、
Metalness と Roughness がある。

また、Settings の Shininess や Fresnel はなく、
Scene Editor 上では「Lock ambient with diffuse」のチェックボックスはあるが
Ambient のプロパティがないため動作はしない。

 

Metalness と Roughness

f:id:x67x6fx74x6f:20170721170252p:plain

右に行くほど Metalness の intensity が上がり、
下に行くほど Roughness の intensity が上がっている

 

Metalness

金属や非金属を表面設定を行う。
色またはグレイスケールの画像と intensity で適応具合を調整する。

 

Roughness

オブジェクトの表面の細かな荒さを設定し、
つや消しのような広がった光沢や金属のよう鋭い光沢の設定を行う、
色またはグレイスケールの画像と intensity で適応具合を調整する。

 

Roughness の色の設定

上の画像の Roughness はパラメーターで変化を示したが、
色やグレイスケールの画像での表示でも表示方法が変わる。

以下、色で Roughness の値を設定している。

f:id:x67x6fx74x6f:20170721170433p:plain

 

また、Physically Based ではシーンで設定された Lighting Environment がライトとして適応されるため、
金属に近く、強めの光沢があるとジオメトリの輪郭部分にフレネル反射が出る(画像の左のほう)

 

Roughness にテクスチャを適応してみる

Metalness を 1にして、
Photoshop のフィルターの雲模様を使い Roughness にテクスチャを適応。

雲のような白い部分で光が広がっている。

f:id:x67x6fx74x6f:20170721170517g:plain

 

今回はここまで。