HoloLens Shader Pack 後編です
後編ではSpatialMap用のMaterial/Shaderについて簡単に紹介します
(Material名 / Shader名)
1. Triangles / CellsAndLines
2. Squares / Grid
3. Quads / CellsAndLines
4. MultiGrid / MultiGrid
5. Holodeck / Grid
6. Flagments / PatterAndHighlight
使い方
1. SpatialMappingCalcNormalsをScene内の空のGameObjectまたはSpatialMapping Prefabにアタッチ
2. SpatialMappingManagerのSurfaceMaterialにHololensShaderPack/Assets/Materials/SpatialMapping内のMaterialを適応
3.
- GazeTransitionAnimatorをシーン内のSpatialMappingにアタッチし、SurfaceMaterialに2で使用しているマテリアルを指定すると、現在見ている位置を中心にパルスアニメーションが走る(この時マテリアルのPulse TransitionがEnableになっていることを確認)
- TapTransitionAnimatorをシーン内のSpatialMappingにアタッチし、SurfaceMaterialに2で使用しているマテリアルを指定すると、タップした位置を中心にパルスアニメーションが走る(この時マテリアルのPulse TransitionがEnableになっていることを確認)
4. SpatialMappingMaterialControllerを用いることで、SpatialMappingのマテリアル変更をトリガー可能 (例として音声認識を使ってSelectNextMaterialを呼び出すなど)
5. GazeAnimatorは, 注視点に指定されたマテリアルをコピーするスクリプトで、カーソルオブジェクトの代わりに利用することで注視点をシェーダーによって可視化できる (Fragmentsマテリアルは、この機能を使用するマテリアル)
今回はTapTransitionAnimatorを除いた以下の構成にしました
SMMCSampleは、SpatialMapController.csのSelectNextMaterialをAirTapで呼ぶ簡単なコードです
using UnityEngine; using HoloToolkit.Unity.InputModule; public class SMMCSample : MonoBehaviour, IInputClickHandler { SpatialMappingMaterialController _smmc; private void Start() { _smmc = GetComponent<SpatialMappingMaterialController>(); } public void OnInputClicked(InputClickedEventData eventData) { _smmc.SelectNextMaterial(); } }
動画