SlideShare a Scribd company logo
1 of 24
Download to read offline
Pulse Shaderを読み解いて
みた
HoloMoto
HoloMoto
• 熊本出身
• HoloLensと出会って人生変わっちゃった系HoloRanger
• 外でHoloLensとともに冒険することが大好き(なので最近調子悪
い…)
• Holo2が早く個人で入手できるようになってほしい…
昨年
• MRTK 作っている人たちとミーティングした!
• MRTKのShader書いている方に一目ぼれした
• C#ですらまだマスターしてないし独学だけどShaderやろう!
MRTK PulseShaderとは?
• MRTK v2.2以降で実験的にリリースされたShader
• SpatialMesh用のSR_TrianglesShaderとハンドトラッキング用のHandTrianglesShaderの二種がある(主
に)
MRTK PulseShaderとは?
• Asset/MixedRealityToolkit.SDK/Experimental/PuseShaderに
サンプルマテリアル(MRTK v2.3)
• Assets/MixedRealityToolkit.SDK/StandardAssets/Shadersに
本体のShader(MRTK v2.3)
MRTK PulseShaderと
は?
• Asset/MixedRealityToolkit.Exa
mples/Experimental/PuseShaderにサ
ンプルシーン(MRTK v2.3)
SR_TrianglesShader
SR_TrianglesShader
シーン内の[MixedRealityToolkit(script)]の
[SpatialAwareness]内の[Display Settings]のmaterialを
SR_TrianglesShaderのmaterialに変更すれば実機で
SpatialMesh にパルスを発生させることができる。
SR_TrianglesShaderを応用してみた。
応用してみた。
• SpatialMeshのマテリアルは動的
に入れ替えることができることを
利用しダンスの進行に合わせて
Pulseの表現を変えた。
HandTrianglesShader
HandTrianglesShader
• HoloLens2でのHandTracking用のShader
• HoloLens2が私の手元にない→ 適当なオブジェクトにアタッチしてみちゃえ→動いた!
• やったね!楽しい♡
HandTrianglesShader
• メッシュが周期的に張り付く
• メッシュの張り付く回転も調整できる。
HandTrianglesShader
の応用
• AutoPulse(自動で周期的にパルスを
発生させる)のほかにアニメーション
やスクリプトなど外部からPulseを発
生させることができる。
つまりいろいろできそう!
HandTrianglesShaderの応用その1
• SDユニティちゃんのMaterialにHandTrianglesShaderを適応=ワイヤーフレーム表示
• マテリアルのPulseの値をスクリプトで手動で変更
=メッシュがばらばらに飛び散る
HandTrianglesShaderの応用その2
• Unityのプリミティブ3DスフィアにアタッチしてscaleとPulseの値をアニメーションで変更
• Effectができた!
HANDTRIANGLESSHADERの構成
• 頂点shader、ジオメトリshader、フラグメントshaderの3種で構成されている。
• 頂点shaderでメッシュの頂点を整え、ジオメトリshaderでポリゴンとして変換、ポリゴンの重心等を割り
出し回転軸などを指定し、回転やパルスをマテリアルで設定した値に合わせて調整、フラグメント
shaderで細かいカラーを指定。
• This Shader is generated from a tool and is not formatted for user readability(ツールで作ったから読み
やすいようにできてないよ!)
頂点SHADERの構成
• VertexInputから受け取り、処理をVertexOutputへと返す
頂点SHADERでやっていること
• メッシュの頂点の座標をUnityのカメラから見た座標へ変換
• メッシュの頂点をワールド座標へ変換
• ごにょごにょした値をVertexOutput構造体に渡す。
頂点SHADERでやっていること
• UNITY_SETUP_INSTANCE_ID(v)はv=VertexInputの現在どちらの目を GPU がレンダリングしているかの
情報に基づき、unity_StereoEyeIndex と unity_InstanceID の Unity のビルトインシェーダー変数を正し
い値に計算し、設定
ジオメトリSHADERでやっていること
• 頂点shaderからメッシュの頂点を受け取ってポリゴンとして扱う。
ジオメトリSHADERでやっていること
• 突然のマジックナンバー
• ほしいところにコメントがなくてメモのようにコメントがある。‥‥
• つらい
フラグメントSHADERでやっていること
• まだ読み解けていないけど・・・見た感じ・・・色関係の描画
おわりに
• 長いので毎日少しづつ勉強してブログでまとめているので是非見てください(勉強中なので間違って
いたりとかしたら教えてほしい…)
• Shaderの中身は難しいが扱うだけなら簡単で、スクリプトやアニメーションと合わせて様々なものが作
れる
• 聞くより美しいPulseを見てほしい、ぜひ触ってみてください

More Related Content

More from AsahiSakamoto

HoloLens_MeetupVal22 HoloMoto
HoloLens_MeetupVal22 HoloMotoHoloLens_MeetupVal22 HoloMoto
HoloLens_MeetupVal22 HoloMotoAsahiSakamoto
 
HoloLens_meetup_val.21
HoloLens_meetup_val.21HoloLens_meetup_val.21
HoloLens_meetup_val.21AsahiSakamoto
 
HoloLensMeetupVal.20LT718
HoloLensMeetupVal.20LT718HoloLensMeetupVal.20LT718
HoloLensMeetupVal.20LT718AsahiSakamoto
 
Xrmtg0617 オリジナルUIを作っている話
Xrmtg0617 オリジナルUIを作っている話Xrmtg0617 オリジナルUIを作っている話
Xrmtg0617 オリジナルUIを作っている話AsahiSakamoto
 
Cluster meetup HoloMoto
Cluster meetup HoloMotoCluster meetup HoloMoto
Cluster meetup HoloMotoAsahiSakamoto
 
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~AsahiSakamoto
 
Hololensに感じる未来と魅力
Hololensに感じる未来と魅力Hololensに感じる未来と魅力
Hololensに感じる未来と魅力AsahiSakamoto
 

More from AsahiSakamoto (8)

Holo lens 2_dialui
Holo lens 2_dialuiHolo lens 2_dialui
Holo lens 2_dialui
 
HoloLens_MeetupVal22 HoloMoto
HoloLens_MeetupVal22 HoloMotoHoloLens_MeetupVal22 HoloMoto
HoloLens_MeetupVal22 HoloMoto
 
HoloLens_meetup_val.21
HoloLens_meetup_val.21HoloLens_meetup_val.21
HoloLens_meetup_val.21
 
HoloLensMeetupVal.20LT718
HoloLensMeetupVal.20LT718HoloLensMeetupVal.20LT718
HoloLensMeetupVal.20LT718
 
Xrmtg0617 オリジナルUIを作っている話
Xrmtg0617 オリジナルUIを作っている話Xrmtg0617 オリジナルUIを作っている話
Xrmtg0617 オリジナルUIを作っている話
 
Cluster meetup HoloMoto
Cluster meetup HoloMotoCluster meetup HoloMoto
Cluster meetup HoloMoto
 
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~
ロービジョン×Mixedeality~XRなテクノロジーはハンディキャップに対してどのようなことができるだろうか?~
 
Hololensに感じる未来と魅力
Hololensに感じる未来と魅力Hololensに感じる未来と魅力
Hololensに感じる未来と魅力
 

I tried understund mrtk pulse shader