本日は昨日に引き続きShader調査枠です。
昨日はShader内でのモデルの法線を取得しました。
今回はこちらを使用してHoloLensのSpatialMeshの床だけを描画するShaderを書きます。
〇SpatialMeshで床だけが描画されるShader
今回はShaderGraphで次のようにShaderを構築しました。
Splitノードはベクトルを成分ごとに分けるノードです。
入力はモデルの法線のためRはX軸、GはY軸、BはZ軸の法線ベクトルを取得することになります。
今回はY軸のベクトルをAlphaにつなぎ、AlphaClipによって各メッシュのY軸に対する法線ベクトルが0以下をとるものを描画しないようにしました。
〇HoloLensのSpatialMeshのシェーダー構築
SpatialMeshはHoloLensによって周囲の物理環境に応じて動的に生成されます。
このような場合はUnity上で実機を接続して実機の動きをシュミレートできるHolographicRemotingを使用することが有効です。
HolographicRemotingを使用することでUnityエディタ上で実際のSpatialMeshを取得することができ、マテリアルをアタッチすることですぐに確認を行うことができます。
今回作成したShaderを適応すると次のようになります。
雪が積もったような見た目で床のみに色が付くようになりました。
今回は以上です。 テクスチャやほかの表現を取り入れることでオリジナルのSpatialMeshが表現できそうです。