夜風のMixedReality

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

Shader

GraphicsToolsStandardShaderのMetaShaderに関して学ぶ

本日はMRGT勉強枠です。 現在MRGTのプロジェクトへPRを提出しています。 レビューアーの方がチェックしていただいており、いくつかの修正依頼が来ています。 今回は残す最後の修正依頼にトライします。 〇メタシェーダーの役割と実装 最後に残った修正依頼は…

Shaderの変更を保持して使用できるAssignNewShaderToMaterial を触る その② プロパティを保持する処理を実装する

本日はMRGT枠です。 現在MRGTのプロジェクトへ機能開発を行いプルリクエストを提出しています。 github.com ここでは修正のリクエストが来ており、以下のようにAssignNewShaderToMaterialを編集してStanardShaderなどの発光マップがシェーダー変更時にMRGTSt…

MixedReality-GraphicsTools-Unityを触る その⑩ MaterialGalleryサンプル Stencil

本日はMRTK3調査枠です。 現在GraphicsToolsを読み解いています。 今回はGraphicsTools/StandardシェーダーのサンプルであるMaterialGalleryサンプルシーンを見ていきます。 〇Stencil Portal ステンシル(Stencil)とは切り抜きを意味します。 ステンシルを使…

Shaderの変更を保持して使用できるAssignNewShaderToMaterialを触る その①AssignNewShaderToMateria

本日はShader学習枠です。 現在MixedRealityToolkitのGraphicsToolsに対して機能開発を行いPRを出しています。 ここではShaderに新しい関数を実装し、表現の幅を広げる実装を行いましたが、PRで次のような修正依頼のフィードバックをいただきました。 Could …

GraphicsToolsStandardシェーダーにEmissiveMapの機能を追加する。 その② Shaderの改造

本日は昨日に引き続きGraphicsToolsのStandardシェーダー機能開発を行います。 ここ数日でGraphicsToolsに関して調査していますが、現在GraphicsToolsへ筆者がFeatureRequestを行いイシューを立て新機能の開発を行っています。 github.com MixedRealityToolk…

GraphicsToolsStandardシェーダーにEmissiveMapの機能を追加する。

本日はShader調査枠です。 ここ数日でGraphicsToolsに関して調査していますが、現在GraphicsToolsへ筆者がFeatureRequestを行いイシューを立て新機能の開発を行っています。 github.com MixedRealityToolkitはMicrosoft主導でオープンソースソフトウェアとし…

MixedReality-GraphicsTools-Unityを触る その⑧ MaterialGallery サンプル MainMap その①

本日はMRTK3調査枠です。 現在GraphicsToolsを読み解いています。 今回はGraphicsTools/StandardシェーダーのサンプルであるMaterialGalleryサンプルシーンを見ていきます。 前回はSaderのレンダリングモードについてのサンプルオブジェクト見ました。 redho…

MixedReality-GraphicsTools-Unityを触る その⑦ StandardShaderでURP、ビルドイン両方のパイプラインにおける処理の流れを追う

本日はMRTK3調査枠です。 現在GraphicsToolsに関して調査しています。 前回まではドキュメントを読み解いていました。 redhologerbera.hatenablog.com GraphicsToolsStandardシェーダーはURP、ビルドインの両方のグラフィックパイプラインに対応しています。…

MixedReality-GraphicsTools-Unityを触る その⑥ MaterialGalleryサンプル RenderingMode

本日もMixedReality-GraphicsTools-Unityを触っていきます。 前回までは導入からドキュメントを読み解いていきました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com 今回はサンプルシーンからMaterialGalle…

MixedReality-GraphicsTools-Unityを触る その④ GraphicsToolsStandardShaderのドキュメントを読む 後半

本日はGraphicsToolsStandardShaderのドキュメントを読んでいきます。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com Microsoftによるドキュメントはこちらになります。 docs.microsoft.com 今回で一通りドキュメントを読み終えていきます。…

MixedReality-GraphicsTools-Unityを触る その④ GraphicsToolsStandardShaderのドキュメントを読む 中編

本日も昨日に引き続きMRTKGraphicsToolsを見ていきます。 現在ドキュメントを読み進めています。 redhologerbera.hatenablog.com 〇レンダーパイプラインの対応 近年のUnityではスクリプタブルレンダーパイプライン(SRP)を使用することで従来のビルドイン…

MixedReality-GraphicsTools-Unityを触る その③ GraphicsToolsStandardShaderのドキュメントを読む 前半

本日は昨日に引き続きMRTK3のGraphicsToolsを調査していきます。 GraphicsToolsではMRTKのShaderやレンダリングなどのグラフィックに関する機能を担うMRTK3のパッケージです。 前回はMRTKv2のMRTKStandardShaderの後継機に当たるGraphicsTools/StandardShade…

MixedReality-GraphicsTools-Unityを触る その② GraphicsTools StandardShader

今回はMRTK3調査枠です。 MRTK3がリリースされたことで間にMRTK3の調査が入ってしまいましたが今回はGraphicsToolsを触っていきます。 前回は導入とサンプルシーンをざっと見ていきました。 redhologerbera.hatenablog.com 今回はShaderを見ていきます。 〇G…

SpatialMeshのShader内でメッシュの向きを取得して床のみを描画する。

本日は昨日に引き続きShader調査枠です。 昨日はShader内でのモデルの法線を取得しました。 redhologerbera.hatenablog.com 今回はこちらを使用してHoloLensのSpatialMeshの床だけを描画するShaderを書きます。 〇SpatialMeshで床だけが描画されるShader 今…

UnityでShader内でメッシュの向きを取得して色を変える 

本日はUnityShader調査枠です。 Shaderでは3Dモデルの様々な情報を扱うことで様々な表現ができます。 今回はNormal(法線)をShaderで取得して表現を行っていきます。 今回は目標としてHoloLensのSpatialMeshの法線を取得して、床のみを描画するような表現…

ShaderGraphでメッシュの裏表を取得する

本日はShader学習枠です。 〇メッシュの裏と表 3DCGではメッシュごとに法線(ノーマル)を持っており、裏表を持っています。 Blenderではメッシュの向きを表が青、裏が赤で表示できます。 Unityへインポートされた3Dモデルのメッシュも面の向きを持っており…

_CameraOpawueTextureを使用した際にドロステ効果を解消する方法

本日はUnityShader学習枠です。 先日、一昨日とUnityのshader表現で_CameraOpaqueTextureを使用していきました。 これはシーン内のカメラ映像をShader内で画像として使用できるURPの機能です。 クラシックなビルドインパイプラインの場合はGrabPass{}がこれ…

Unityでカラーフィルターシェーダーを作成する。

本日はshader学習枠です。 〇カラーフィルターを作成する 今回は画像のようなカラーフィルターを作成します。 一見半透明のオブジェクトを置いているように見えますが、これは_CameraOpaqueTextureを使用し取得したカメラのレンダリング映像を処理しています…

Unity URPで_CameraOpaqueTextureを使用する

本日はUnity Shader勉強枠です。 先日URP Grab Pass を使用してURPプロジェクトですでにレンダリングした画像をShader側で使用することができました。 redhologerbera.hatenablog.com 〇URPプロジェクトでのGrabPassの代用_CameraOpaqueTexture URPではデフ…

URPプロジェクトでGrabPassを使用する

本日はShader学習枠です。 〇GrabPassとは? GrabPassはUnity内でのShaderですでにレンダリングした画像を使用することができます。 これを用いることで一度描画したカメラの映像にエフェクトを加えることなどできます。 以前ShaderGraphでBlur表現を行いま…

Blenderで影のみをベイクし、Unityで表示する

本日はUnity×Blender調査枠です。 Untiyでは様々なShaderを使用することができます。 この中で最も軽いShaderと呼ばれているShaderがUnlitなシェーダーです。 これはライトの処理を計算しないため非常に軽量と呼ばれています。 今回はこのUnlitで影を表示す…

UnityでのHLSLファイルの作成法 ShaderでHLSLファイルを使用する理由

本日はShader勉強枠です。 本日インターン生でお仕事にかかわっている方からShaderに関して質問をもらいました。 良い内容だったのでこちらでも記事にします。 ・質問内容 Shaderに関して学習を始めたが、Unity内でhlslファイルの作成方法がわからない。 Sha…

ShaderGraphでグロス表現を行う

本日はShader学習枠です。 表面が滑らかなガラスなどに見られるグロス表現をShaderGraphで実装します。 〇ライトの実装 ShaderGraphではいくつかあるテンプレートのうちLitのテンプレートを用いることで滑らかさ(Smoothness)があります。 しかしこれは組み込…

ShaderGraphでクリッピング表現を行う。 その② Unityエディタ上でのコントロール

本日はShader学習枠です。 昨日は特定の範囲がクリッピング(くりぬき)される表現を実装しました。 redhologerbera.hatenablog.com 今回はこちらをさらに改造して、クリッピング範囲を任意に動かせるようにします。 〇クリッピング範囲の移動 ①Blackboardに…

ShaderGraphでクリッピング表現を行う その①

本日はShader学習枠です。 ShaderGraphでクリッピング表現を行います。 〇クリッピング表現を行う クリッピングとはClip(くりぬき)の名の通り、描画のうちの任意の一部分を別の色もしくは透明にする表現を指します。 今回はShaderGraphでクリッピング表現を…

Unity Shader内で面の裏と表を取得する

本日はShader学習枠です。 UnityのShaderではSubShader内でCull(Culling)を記述することで3Dモデルのメッシュの表と裏、どちらを描画しないかを記述することができます。 SubShader { Cull Off Pass{ ... } } Cull Frontは面の表面をCulling=描画対象から…

VRで右目の描画がおかしくなる問題の解消

本日はUnityShader枠です。 先日SteamVR用のアプリケーションを作成していると次のように描画がおかしくなる問題がありました。 SkyBoxの描画がおかしく、スカイボックスが画像に映ると描画の画面がそのまま残ってしまう問題がありました。 〇原因 以前も本…

Boothで自分の作品を公開する

本日は普段の開発Tipsとは異なり、普段使用しているBoothに関する挑戦記事です。 〇Boothとは? BoothはPixivと連携したオンライン上でのマーケットサイトを指します。 booth.pm アクセサリーなど実際の現実の商品も多く取り扱われていますが、UnityのPartic…

Unity URP環境でMultiPassのシェーダーを描く

本日はShader学習枠です。 〇URP環境でマルチパスが実行されない問題 次のようなごく簡単なアウトラインシェーダーを描きました。 仕組みとしては2つのPassブロックを使用して、2回描画を行っています。 1回目でオブジェクトを法線方向に大きく、そして面の…

グラフィックスAPIとは? DirectX、Vulkan、OpenGLESなどの違い

本日はGPUの負荷処理を勉強していきます。 昨日[SRPBatcher]に関して勉強した際にふと普段使用しているグラフィックスAPIに関して気になって今回はグラフィックスAPIに関して調べて勉強していきます。 redhologerbera.hatenablog.com GraphicsAPIとは? [Gra…