夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Shader

ShaderGraphでSubGraphの機能を使用する

本日はShaderGraph勉強枠です。 SubGraphの機能に関して勉強しました。 〇SubGraphとは? ShaderGraphでShaderを開発する際にノードが複雑になり可読性が低下する場合があります。 また、よく使用するノードの集まり(処理)がある場合まとめておきたいとい…

ShaderGraphでパーティー感あるShaderを描く

本日はshader勉強枠です。 本日はパーティー感あるShaderを作成します。 〇パーティー感あるシェーダー ①[UnlitGraph]でShaderGraphを作成します。 今回もエフェクトのShaderのためライトの影響を考慮しないUnlitで作成します。ライトの処理がないことにより…

ShaderGraphの変数をスクリプトで扱う

本日はshader勉強枠です。 UnityのShaderではマテリアルに表示されるパブリックな変数をスクリプトで変更できます。 例えば次のような[Universal Render Pipeline/Lit]シェーダーのマテリアルをアタッチしたPlaneの例を見てみます。 使用しているShaderごと…

ShaderGraphで電光掲示板のShaderを描く

本日はShader勉強枠です。 〇電光掲示板 電光掲示板は多数のLED照明の集合として1つの絵を描いています。 電車やバスの行き先表、空港の案内などいたるところで見る電光掲示板を今回はUnityで再現します。 ①プロジェクトウィンドウで右クリックし[UnlitGraph…

Shader GraphでホログラムShaderを作る  その② ホログラムシェーダーの完成

本日はShader勉強枠です。 先日コミュニティのイベント"ガチラボ"でShaderGraphを触る勉強会を開催しました。本日はそこで触ったShaderをまとめます。 〇ガチラボとは? [ガチラボ]とは熊本のxRコミュニティ[KumaMCN]で行われるガチ勢育成勉強会です。 熊本…

Shader GraphでホログラムShaderを作る  その①

本日はShader勉強枠です。 先日コミュニティのイベント"ガチラボ"でShaderGraphを触る勉強会を開催しました。本日はそこで触ったShaderをまとめます。 〇ガチラボとは? ["ガチラボ"]とは熊本のxRコミュニティ["KumaMCN"]で行われるガチ勢育成勉強会です。 …

ShaderGraphでライトを使用する(CEDEC2021版)

本日はShader勉強枠です。 先日ShaderGraphでライトを使用するノードを作成しました。 redhologerbera.hatenablog.com この方法はUnityの公式ドキュメントに上がっている情報をもとに筆者で最新のShaderGraphで使用できるようにしたものです。 先日こちらの…

ShaderGraphで基礎的なToonShaderを作る

本日はShader勉強枠です。 昨日テンプレートではなくノード内でUnityのDirectinalLightを扱うShaderを作成しました。 redhologerbera.hatenablog.com ノード内でライトを扱うメリットとしてはライトを扱った高度な処理を可能とすることです。 今回はToonShad…

ShaderGraphでLightを使用する。

本日はShader枠です。 UnityのSRP(Scriptable Render Pipeline)ではShaderGraphの機能を使用することでコードを記述することなくノードベースでShaderを構築できます。 今回はShaderGraphの中でUnityのDirectionalLightを扱う仕組みを作ります。 〇Light.HLS…

熊本のコミュニティでシェーダーの勉強会を開催しました。

本日はイベント枠です。 私の師に当たる熊本のxRコミュニティで活躍されているガチ本さんと合同でコミュニティ内で知識共有と交流を目的とした勉強会を開催しました。 〇KumaMCN KumaMCNは熊本を拠点に活動しているxRコミュニティです。 今回のイベントではK…

SFチックのUIを作る その19 SFチックなボード

本日はHoloLens 2用のオリジナルUIです。 HoloLensではMRTKExamplesでMRTKを用いてHoloLensに最適化したUIが提供されています。 これをベースに筆者のオリジナルのUIを作成していきます。 〇今回は説明ボードを作成しました。 アプリ内での使用用途は以下の…

HLSLShaderのテンプレート

本日はShader枠です。 私事ですが、筆者の師匠に当たるかたとお会いしていました。話の中で8月にShaderに関するイベントを開催する流れになりました。 今回はShaderをゼロから学ぶ型や、自分自身が使いやすいように空のHLSLシェーダーのテンプレートを残し…

Unity Tiling,Offsetを扱うShaderを書く

本日はUnity Shader枠です。 UnityのShaderではテクスチャを用いることで単一のマテリアルで様々な表現を行うことができます。 テクスチャを使用しているマテリアルのプロパティを見ると[Tiling]と[Offset]のプロパティがあります。 [Tiling]と[Offset]はそ…

HoloLensで発光オブジェクトのGlow効果を出す。

本日はHoloLensの表現枠です。 UnityではShaderの機能が対応している場合[Emittion]を使用することができます。 この場合オブジェクト自身から発光するためライトの影響を受けなくなります。 しかし実際の発光現象では発光体だけではなく周囲の空気に反射し…

Unity HLSLでライトを扱うShaderを書く

本日はShader勉強枠です。 Unityでは[ShaderLab]言語の中で[Cg/HLSL]言語を使用し、記述します。 近年のUnityでは[CGPROGRAM~ENDCG]から[HLSLPROGRAM~ENDHLSL]で記述する流れへ変わってきています。 これはどちらで書いても際はないようですが、[UniversalRe…

Unityでアウトラインを持つオリジナルShaderを書く

本日はShader勉強枠です。 今回はUnityでアウトラインを持つShaderを書いていきます。 〇アウトラインシェーダー アウトラインとはオブジェクトの輪郭が表示されるような見た目のShaderです。 これを実現するためには[アウトラインを表示するShader]、[通常…

URPのShaderGraphでMRTKStandardShaderを再現する。 テクスチャ

本日はMRTKShader枠です。 MRTKではMRTKStandardShaderと呼ばれる非常に多機能なUberShader(使用する機能のみコンパイルされるShader)が提供されています。 ところが、このShaderはUnityのURPプロジェクトでは使用することができません。そこでShaderの勉強…

進化したShaderGraphを触ってみる。 変更点確認

本日はUnityShader枠です。 Unityではスクリプタブルレンダーパイプラインを導入したプロジェクトでShaderをノードベースに構築できる[ShaderGraph]と呼ばれる機能が使用できます。 従来ではShaderを構築するためにはUnityのC#とは別にCg/HLSL言語やそれを使…

MapSDKfor UnityをURP(UniversalRenderPipline)プロジェクトで動かす

本日はMapSDKの枠です。 〇MapSDKとは? [Microsoft Map-SDK for Unity(以下Map-SDK)]はMicrosoftが提供しているBing Mapの情報をHoloLensをはじめとするMixedRealityデバイスで使用できるツールです。 これを使用することで自身のアプリに簡単に地図を実…

HoloLensでATフィールドを展開する

本日はアニメや映画などのファンタジー世界をHoloLensの力を使って再現していきます。 今回1990年代(筆者のうまれる前ですが)からのヒット作で今年映画最新作で一通りの幕を閉じたエヴァンゲリオンシリーズの世界からATフィールドをHoloLensで再現しま…

SpatialMeshのスキャン表現に使える SpatialScanShaderを作成した。

本日はShader勉強枠です。 今回はHoloLens,HoloLens 2で使用する想定のオリジナルShader[SpatialScanShader]を作成しました。 〇使い方 MRTKを導入したプロジェクトから[SpatialAwareness]の構成で[SpatialScanShader]を使用したマテリアルをアタッチします…

HoloLens 2向けのHandMeshのマテリアルを実機内でチェックするツールを作りました。

タイトル通りですが、HoloLens 2のHandTrackingで表示されるメッシュのマテリアルをHoloLens 2実機内でシュミュレーションして自身のアプリケーションにあったHandMeshの表現を行えるツールを作りました。 〇作ったもの www.youtube.com GitHubに公開してい…

MRTK HandTrianglesShaderの中身を読み解く その⑥ ジオメトリシェーダーを読み解く Ⅲ

本日もMRTKのHandTrianglesShaderの勉強枠です。 前々回からHandTrianglesShaderのジオメトリシェーダーを読み解いていきます。 長いのでその③ 序Ⅲです。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com float Transition_Q160; bool FadingO…

MRTK HandTrianglesShaderの中身を読み解く その⑤ ジオメトリシェーダーを読み解く 序Ⅱ

本日もMRTKのHandTrianglesShaderの勉強枠です。 前回ジオメトリシェーダーの扱いを学びHandTrianglesShaderのジオメトリシェーダーを読み解いています。 今回MRTKのHandTrianglesShaderのジオメトリシェーダーを読み解いていきます。 長いのでその② 序Ⅱです…

MRTK HandTrianglesShaderの中身を読み解く その④ ジオメトリシェーダーを読み解く 序

本日はMRTKのHandTrianglesShaderの勉強枠です。 前回ジオメトリシェーダーの扱いを学びました。 今回MRTKのHandTrianglesShaderのジオメトリシェーダーを読み解いていきます。 長いのでその① 序です。 redhologerbera.hatenablog.com [maxvertexcount(Geo_M…

UnityでShaderを勉強する その⑰ ジオメトリシェーダー

前回からMRTKのHandTriangleShaderの中身を読み解いていました。 頂点シェーダーを読み解いて、次へ進む前にジオメトリシェーダーに関して勉強していなかったため、先にジオメトリシェーダーを学んでいきます。 〇ジオメトリシェーダーとは? 頂点シェーダー…

MRTK HandTrianglesShaderの中身を読み解く その③ 頂点シェーダーを読み解く

昨日はHandTrianglesShaderのPropertiesとShaderLab部分を見ていきました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com さて、いよいよ今日からShaderの処理を読み解きます。 すべてのソースコードは以下のMRTKのGitHubで閲覧することが…

MRTK HandTrianglesShaderの中身を読み解く その② SubShaderを読み解く

本日はShader枠です。 前回に引き続きHandTrianglesShaderの中身を読み解いています。 〇HandTrianglesShaderを大雑把にみる HandTrianglesShaderは800行に及ぶ非常に長いコードです。 例えばProperties部分だけで60行近くプロパティが記述されています。 …

MRTK HandTrianglesShaderの中身を読み解く その① properties{}

本日もShaderの勉強枠です。 本日はより実践的なShaderを読み解く一つとしてMixedRealityToolkitに同梱されているPulseShaderからHandTrianglesShaderを読み解きます。 〇Properties ここではUnityのマテリアルで扱えるパラメーターが記述されます。 Propert…

UnityでShaderを勉強する その⑭ 拡散パラメータと発光パラメータを扱うライティング

本日はShader勉強枠です。 昨日から頂点シェーダーの勉強に入りました。 本日は拡散パラメータと発光パラメータを扱うライティングのShaderに関して勉強していきます。 Unityシェーダーのサンプルやデモを数多く紹介しているサイトShaders Laboratoryを基に…