夜風のMixedReality

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

Shader

Unityでステンシル値を任意に変更可能なシェーダーを実装する

本日はMRGT枠です。 MRGTではEnableStencileTestingという項目で一つのシェーダーでマテリアルごとにステンシルプロパティを変えることができます。 この機能を自作シェーダーに組み込んでみます。 〇MRGTの実装 GraphicsToolsStandardShaderの実装は次のよ…

Unityで特定のオブジェクトだけ明るく見えるシェーダーを作成する その② オクルージョンの実装

本日は昨日に引き続きシェーダーを紹介します。 〇Unityで特定のオブジェクトだけ明るく見えるシェーダーを作成する redhologerbera.hatenablog.com 昨日は特定のオブジェクトが明るく強調表現されるような表現を紹介しました。 この方法ではステンシルとい…

Unityで特定のオブジェクトだけ明るく見えるシェーダーを作成する

本日はMRGT&Shader枠です。 今回はMRGTを使用した特殊なエフェクト表現を紹介します。 例えば特定のオブジェクトに注目させたい場合などに全体的に描画を暗くしながらも特定のオブジェクトのみ通常の明るさで描画していきます。 〇環境 ・Unity2021.3.5f1 …

MRTKのNearFade機能を応用してオブジェクトの一部が透明になる表現を実装する

本日はMRGT枠です。 MRGTのStandardShaderにはNearFade機能が搭載されています。 redhologerbera.hatenablog.com この機能は基本的にマテリアルを使用しているオブジェクトとユーザー(カメラ)の距離に応じて透明になるという機能ですが、UseLightのオプショ…

Unityで常に最前面に描画されるシェーダーを書く ZTestについて

本日はUnityShader学習枠です。 Unityでは基本的に現実世界同様手前にあるオブジェクトが奥にあるオブジェクトを塗りつぶすように描画されています。 しかし場合によっては奥にあるオブジェクトが一番手前に描画されてほしいというときもあります。 今回はい…

Unityでシェーダーエラーが発生する場合のトラブルシューティングフローについて

本日はShader学習枠です。 筆者の所属している会社では良くも悪くもグラフィックエンジニアは筆者が一人で担当しており、社内で使用するシェーダーも筆者が担当していることが多いのですが、先日外部で公開されていたシェーダーを社内で利用したところMetaQu…

MixedRealityGraphics Tools のProximityLightを理解する その②シェーダーのパラメータ

本日はMRGT調査枠です。 前回に引き続きMRGTのProximityLightを追っていきます。 前回はProximityLightがどこで使われているかを見ていきました。 redhologerbera.hatenablog.com 今回はUnityプロジェクトで実際にProximityLightを使用していきます。 〇Prox…

MixedRealityGraphics Tools のProximityLightを理解する その①

本日はMRGT枠です。 〇MRGTとは? MixedRealityGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityデバイス向けのアプリケーション開発ツールMixedRealityToolkit3(MRTK3)の一つとして提供されているグラフィックに関する機能を内包したパッ…

MixedRealityGraphicsToolsのHoverLightの使い方

本日はMRGT枠です。 MRGTではGraphicsToolsStandardShaderをはじめとして様々な機能が提供されていますが、今回はUnityでポイントライトのように使用できるHoverLightについてみていきます。 〇HoverLightとは? HoverLightはMRGTで提供されている機能で、ポ…

MixedRealityGraphicsToolsShaderのNear Fade機能の紹介

本日はMRGT枠です。 今回はGraphicsTools Standardシェーダーに内蔵されている機能のNear Fadeを紹介します。 〇MRGTとは? MixedRealityGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリケーション開発向けのツールキットであるMix…

MRGTのEmissionMapとBlenderを使用してUnityの発光表現を行う その① EmissionMapの作成と利用

本日はMRGT枠です。 〇MRGTとは? MixedRealityGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリケーション開発向けのツールキットであるMixedRealityToolkit(MRTK)でのパッケージの一つとして提供されているグラフィック関連のUnit…

ゼロから始めるUnityShader開発 第五章 透明度のシェーダーを書く その③一般的なAlphaBlending

本日はシェーダー枠です。 昨日は透明度を持った半透明なオブジェクトの描画を行いました。 キーポイントとして透明度を持ったオブジェクトの描画には以下の二つがあります。 ・不透明なオブジェクトが描画された後に描画する ・すでに描画されているピクセ…

ゼロから始めるUnityShader開発 第五章 透明度 半透明なシェーダーを書く

本日はシェーダー学習枠です。 〇不透明なオブジェクトの描画順 描画処理が行われる際は一般的に遠くにあるものから塗りつぶされるように描画が行われています。 半透明なオブジェクトは不透明なオブジェクトの描画が完了した後に処理が実行されます。 これ…

プラットフォームによってShaderのUV座標が上下反転する問題

本日はShaderのトラブル解消を行います。 先日MixedRealityGraphicsToolsの拡大鏡機能をHoloLensで実行した際にUV座標のV座標が反転する現象を確認しました。 redhologerbera.hatenablog.com 取り急ぎの対処としてV座標に-1をかけ合わせてトラブルを回避しま…

Tokyo HoloLens Meetup Vol.32LT登壇資料

本日はイベント枠です。 昨日TokyoHoloLens Meetupに参加をしました。 イベント自体のレポートに関しては昨日記事にまとめております。 redhologerbera.hatenablog.com 本日はHoloLens Meetupイベント中に筆者が登壇したLTに関して紹介します。 〇LT大会 LT…

Unityプロジェクト内のマテリアルをシェーダー別に取得するツールを作る その③ プロトタイプの完成

本日は昨日に引き続きMRGTに提出予定のエディタツールを作成していきます。 先日はプロジェクト内に含まれるすべてのマテリアルをデバッグログとして出力しました。 redhologerbera.hatenablog.com 今回は任意のシェーダーでフィルタリングしてログを出力し…

Unityプロジェクト内のマテリアルをシェーダー別に取得するツールを作る その②ボタンの実装とマテリアルの検索

本日はUnity枠です。 昨日からMRGT向けの新機能としてUnityプロジェクト内のマテリアルをシェーダー別に取得するツールを作成しています。 前回はエディタウィンドウの基本設定を行っていきました。 redhologerbera.hatenablog.com 今回はこちらの機能を作成…

MixedRealityGraphicsTools v0.5がリリースされました。

本日はMRGT枠です。 昨日MixedRealityToolkit 3(MRTK3)のパッケージの一つでxR上でのグラフィックに特化したパッケージであるMixedRealityGraphicsTools(MRGT)の公式メジャーアップデートv0.5がリリースされました。 本リリースでは筆者の開発した機能も含…

ゼロから始めるUnityShader開発 CustomShaderGUIでマテリアルをカスタマイズする Enum型のプロパティを表示する

本日はShader学習枠です。 今回はShader自体というよりはShaderをUnity上に表示させる際に使用できるカスタマイズ表示を実装します。 〇CustomShaderGUIとは? 〇Enum型のマテリアルプロパティの実装 〇カスタムシェーダーGUIの全コード 〇CustomShaderGUIと…

ゼロから始めるUnityShader開発 第四章 SRP Batcherに対応するシェーダーを記述する

本日はShader勉強枠です。 今回は軽量化の処理であるSRPBatcherに関して紹介します。 〇SRP Batcherとは? SRP BatcherはSRPと名がつくことからわかるようにURPやHDRPなどのSRPで使用できるレンダリングの最適化にかかわる機能です。 従来はマテリアル単位で…

MixedRealityGraphicsToolsのNPR機能の陰に画像を使用できるようにする その② 

本日は昨日に引き続きMRGTStandardShaderのトーン表現を拡張していきます。 redhologerbera.hatenablog.com 〇shader_featureの定義 URPではマテリアルから使用する機能だけチェックボックスを有効化して有効にするウーバーシェーダーシステムを使用するため…

MixedRealityGraphicsToolsのNPR機能の陰に画像を使用できるようにする その① プロパティの表示

本日はShader学習枠です。 〇MxedRealityGprahicsTools(MRGT)とは? MixedRealityToolkitGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリ向けのUnitySDKであるMixedRealityToolkit3(MRTK3)の一つでグラフィックを担っています。 xR…

ゼロから始めるUnityShader開発 CustomShaderGUIでマテリアルのプロパティをカスタマイズする  任意にプロパティの表示非表示を切り替える

本日はShader学習枠です。 今回はCustomShaderGUIを使用して任意にプロパティの表示を切り替える実装を紹介します。 redhologerbera.hatenablog.com 〇チェックボックスと連動して表示を行う シェーダーによってはある機能を有効にしている場合のみ必要とな…

ゼロから始めるUnityShader開発 CustomShaderGUIでマテリアルのプロパティをカスタマイズする ShaderGUIの使い方とTextureのカスタマイズ

本日はShader勉強枠です。 今回はShader自体というよりはShaderをUnity上に表示させる際に使用できるカスタマイズ表示を実装します。 〇CustomShaderGUIとは? 〇CustomShaderGUIを使用する 〇ラベルの作成 〇Shaderのプロパティの取得 〇プロパティの表示 …

MixedRealityToolkit GraphicsTools DistantLightを完全に理解する

本日はまとめ記事です。 〇MixedRealityToolkitGraphicsToolsとは? MixedRealityToolkitGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリ向けのUnitySDKであるMixedRealityToolkit3(MRTK3)の一つでグラフィックを担っています。 xR…

ゼロから始めるUnityShader開発 第六章 モザイクシェーダー

本日はShader学習枠です。また2022年最後の記事になります。本年は毎日ブログを更新できました。23年も毎日更新はもちろんのことですが、質もよくしていきたいと思います。 〇モザイクシェーダー 今回は画像をmosaicで表示する表現を紹介します。 ①新規のUnl…

UntiyShaderGraphでクリスタルなシェーダーを描く その②

本日は昨日に引き続きUnityでクリスタルなシェーダーを書いていきます。 昨日はクリスタルの表現において最もコア的なTransmissionとIOR(屈折)を実装しました。 これはViewDirectionノードによってカメラの角度を取得、hlsl で提供されているRefract関数を…

UnityShaderGprahでクリスタルなシェーダーを描く その① リフレクションの実装

本日はShader学習枠です。 今回はShaderGprahを使用して宝石のようなシェーダーを作っていきます。 〇Transmission(伝搬) Blenderでガラスやクリスタルの表現を行う際はTransmission(伝搬)を使用することが一般的です。 アルファとの違いとしてただ単に透明…

ゼロから始めるUnityShader開発 第五章 ノーマルマップ その②

本日はShader勉強枠です。 前回の記事はこちらになります。 redhologerbera.hatenablog.com 〇ノーマルマップとは ノーマルマップはローポリゴンでありながら凸凹間を再現するために使用されるテクスチャとそれを用いた実装です。 ノーマルマップを使用する…

ゼロから始めるUnityShader開発 第五章 複数の機能を切り分けて使えるシェーダーを記述する

本日はShader学習枠です。 〇複数の機能を切り分けて使用できるシェーダー Unityのマテリアルではシェーダーごとに提供されているパラメータを使用してマテリアルごとの特徴を出すことができます。 同一シェーダーのキューブ 例えば上図では同じシェーダーを…