第12回 Unity Editor と Unity PolySpatialで Apple Vision Pro の アプリ開発(Unity PolySpatial の Materialサポート編)  | 技術ブログ | 株式会社OnePlanet 読み込まれました

第12回 Unity Editor と Unity PolySpatialで Apple Vision Pro の アプリ開発(Unity PolySpatial の Materialサポート編)

はじめに

今回は、Unity Polyspatial の Materialサポートについて説明します。

Apple Vision Pro について

Apple Vision Pro について、以下の記事にまとめてます。


RealityKitへのマッピング

Unityの標準シェーダーは、RealityKit上で使用しているシェーダーに変換されます。(将来、変換されるシェーダーが追加される予定です。)

  • URPシェーダー:Lit、Simple Lit、Unlit

  • ビルトイン・シェーダー:Standard

カスタムシェーダー

Unity Shader Graphで作成されたシェーダーとマテリアルはサポートしています。Unity Shader Graphで作成されたシェーダーやマテリアルはMaterialXに変換されます。Unity Shader Graphのノードの中にはMaterialXにはないものもあります。Unity Shader Graph の Editor内で、サポートされていないノードは#で示されます。LitとUnlit、両方のルートノードがサポートされています。

RealityKit for visionOSは現在、低レベルのシェーディング言語を公開していないため、ShaderLab、Metal、その他のコードベースのシェーダは使用できません。

Unlit マテリアル

Universal Render Pipeline/Unlit

URP Unlit マテリアルでは、PolySpatialはベースマップのカラーとテクスチャプロパティ、および不透明と透明(ブレンドモードアルファ)のサーフェスタイプをサポートしています。アルファクリッピングを有効にすることができます。Thresholdが0より大きい場合、ブレンドは実行されません(アルファテストのみ)。

Unlit/Color

組み込みレンダラー・パイプラインのunlit color マテリアルでは、Main Colorプロパティがサポートされています。

Unlit/Texture

ビルトイン レンダラー パイプラインのunlit texture  マテリアルでは、ベース(RGB)テクスチャがサポートされます。

Unlit/Transparent

ビルトイン レンダラー パイプラインのunlit transparentマテリアルでは、ベース(RGBA)テクスチャがサポートされています。


Lit マテリアル

Litマテリアルを使用すると、ホストシステムのイルミネーションのみがマテリアルに適用されます。たとえば、visionOSでは、現実世界ののイルミネーションをエンコードしたシステムIBLのみを適用します。Unityの内部イルミネーション(ライトマップ、ライトプローブ、および/またはダイナミックライトなど)もマテリアルに適用する場合は、PolySpatial Lightingノードに接続して、マテリアルごとにコストの高いライティングの計算を追加する必要があります。


Universal Render Pipeline/Lit

URP lit マテリアルでは、Base Map のカラーとテクスチャが尊重され、Render Face オプションとSurface Input のTilingとOffsetプロパティも尊重されます。

スペキュラ(Specular)ワークフローでスペキュラハイライト(Specular Highlights)が有効になっている場合、PolySpatialはスペキュラマップ(Specular Map)テクスチャまたは関連する色の(グレースケール)強度をサポートします。Metallicワークフローでは、PolySpatialはMetallic Mapテクスチャまたは強度をサポートし、Specular Highlightsトグルを尊重します。

どちらのワークフローでも、Smoothness 強度は尊重されますが、テクスチャチャンネルからの Smoothness(Metallic Alphaなど)はサポートされません。Normal Map はサポートされますが、法線スケールはサポートされません。同様に、Occlusion Mapはサポートされていますが、オクルージョン強度はサポートされていません。Emission カラーまたはテクスチャを指定することができます。両方が指定された場合、色はグレースケールに縮小され、乗数として動作します。

Opaque(不透明)とTransparent(アルファブレンドモード)のサーフェスタイプがサポートされています。Transparentモードでは、Preserve Specularフラグが尊重されます。アルファクリッピングを有効にすることができます。Thresholdが0より大きい場合、ブレンドは実行されません(アルファテストのみ)。

Universal Render Pipeline/Simple Lit

URP complex lit マテリアルでは、lit マテリアルでサポートされているすべてのオプションに加えて、Clear Coat オプションとその Mask および Smoothness プロパティがサポートされています。

Standard

ビルドインの Standard lit マテリアルは、URP lit マテリアルとほぼ同じように Metallic ワークフローでサポートされています。Albedo テクスチャと色、Metallic マップまたは強度、Smoothness 強度(ただし Smoothness ソースは除く)が同様に尊重されます。Normal Map と Occlusion がサポートされています(ただし、対応する強度はサポートされていません)。また、Emissionカラーまたはテクスチャ、Main Map のTilingとOffset、Specular Highlight フラグもサポートされています。Opaque、Transparent、Fade、Cutout のすべてのレンダリング モードがサポートされています。

Standard (Specular setup)

ビルドインの Standard lit specular マテリアルは、URP lit マテリアルとほぼ同じように Specular ワークフローでサポートされています。Albedo テクスチャと色、Specular マップまたは(グレースケールの)強度、Smoothness 強度(ただし Smoothness ソースは除く)が同様に尊重されます。Normal Map[^1] と Occlusion がサポートされています(ただし、対応する強度はサポートされていません)。また、Emission カラーまたはテクスチャ、Main Map のTilingとOffset、Specular Highlight フラグもサポートされています。Opaque、Transparent、Fade、Cutout のすべてのレンダリング モードがサポートされています。

Special Purpose Materials

TextMeshPro/Distance Field

TextMeshPro/Mobile/Distance Field

TMP distance field マテリアルは、Face ColorとFace Textureプロパティのみを尊重するシェーダグラフマテリアルに変換されます。

UI/Default

UI default マテリアルは、色とテクスチャのプロパティを尊重する unlit マテリアルに変換されます。

Universal Render Pipeline/Particles/Unlit

URP unlit パーティクル マテリアルは、Base Mapのテクスチャと色、Surface Typeを尊重した非点灯素材に変換されます。

AR/Basic Occlusion

AR/Occlusion

オクルージョンマテリアルは基本的な物として変換される。

まとめ

今回は、Apple Vision Pro のアプリ開発をUnityで行う際に使用するUnity PolySpatial の Materialサポートについてまとめました。次回は、Unity PolySpatial のShader Graph について説明します。

Unity PolySpatial の 他の記事は コチラ にあります。

XR エンジニア

徳山 禎男

SIerとして金融や飲料系など様々な大規模プロジェクトに参画後、2020年にOnePlanetに入社。ARグラスを中心とした最先端のAR技術のR&Dや、法人顧客への技術提供を担当。過去にMagic Leap 公式アンバサダーを歴任。

View More

お問い合わせ・ご相談

ARでやってみたいことやお困りごとなど
お気軽にお問い合わせください。

お問い合わせ