空間メッシュ
このサンプルでは、現実世界の環境に近似した空間メッシュを生成して可視化する方法を紹介します。
空間メッシュとAR FoundationのAR Mesh Managerコンポーネントの機能については、Unityのドキュメントを参照してください。Snapdragon Spaces SDK機能の使用方法については、空間メッシュ機能のページを参照してください。
機能の有効化
この機能を使用す るには、以下のOpenXRのプロジェクト設定でSpatial Meshingにチェックする必要があります。
Project Settings > XR Plug-in Management > OpenXR (Androidタブ) > OpenXR Feature Groups > Snapdragon Spaces > Spatial Meshing

サンプルのインポート
まだサンプルをインポートしていない場合は、以下の手順でインポートすることができます。
サンプルシーンは以下の場所に存在します。
Assets/Samples/Snapdragon Spaces/1.X.X/Core Samples/Scenes/Spatial Meshing Sample/Spatial Meshing Sample.unity
サンプルの仕組み
ARMeshManagerコンポーネントをXR Originゲームオブジェクトの子に付けると、メッシュ生成のサブシステムが有効になります。起動すると、サブシステムは現実世界のオブジェクトに近いメッシュを生成します。

サンプルシーンのSpatial Meshing Sample Controllerスクリプトコンポーネントは、UIへの変更を処理します。
-
CPU Normalsのチェックボックスがオンの場合
ARMeshManager.meshesChangedイベントで提供されるMeshFilterコンポーネントがCPUで生成された法線を持つようになります。- 生成されたメッシュは、
Assets > Samples > Snapdragon Spaces > Core Samples > Scenes > Spatial Meshing Sample > Prefabs > MeshPrefabWithCPUNormalsPrefabにあるプレハブを使用して作成されます。 - このプレハブにはMesh Rendererがアタッチされており、Mesh With Cpu Normalsマテリアルを使用してメッシュを描画します。このマテリアルはStandardシェーダーを使用します。
-
CPU Normalsのチェックボックスがオフの場合
ARMeshManager.meshesChangedイベントによって提供されるMeshFilterコンポーネントは法線を持ちません。- 生成されたメッシュは、
Assets > Samples > Snapdragon Spaces > Core Samples > Scenes > Spatial Meshing Sample > Prefabs > MeshPrefabにあるプレハブを使用して作成されます。 - このプレハブにはMesh Rendererがアタッチされており、Depth Outlineマテリアルを使用してメッシュを描画します。このマテリアルはカスタムMesh Visualizationシェーダーを使用し、ビジュアライゼーション用 に法線を生成します。
-
Mesh Opacityのスライダー
- レンダリングされたメッシュの透け具合をコントロールします。
- この値はSpatial Meshing Sample Controllerコンポーネントによって0.1〜1.0の間になります。0.1は非常に透明で、1.0は完全に不透明です。