Apple Engine

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

Xcode 11 での SceneKit の変更点 その7 - マテリアルの新しいライティングモデル

f:id:x67x6fx74x6f:20191006233619p:plain

Xcode 11 での SceneKit でマテリアルのライティングモデル (Lighting Model/Shading) では新しくShadow Only が追加された。

使用用途としては AR の際に影だけ描画したい場合など。
現状では AR の現実空間の表示は画像に過ぎないので、影を落とすことができない。
そのため、仮想オブジェクトで影を落とすためのジオメトリを設置しマテリアルを透過させ differed 設定で影だけ表示する必要があった。

appleengine.hatenablog.com

 

iOS 13 など Xcode 11 からはライティングモデルを変更するだけで可能になった。

 

Shadow Only の設定

Scene Editor ではディレクショナルライトやスポットライトを置きシャドウマップを設定。
Shading を「Shadow Only」に変更するだけ。

コードではライティングモデルを「shadowOnly」にするだけ。

let material = SCNMaterial()
material.lightingModel = .shadowOnly

 

マテリアルプロパティはディスプレイスメントしかない。

 

今回で Xcode 11 での SceneKit の変更はおしまい。
ざっと書いてみたが面白い機能が増えたとは思う。