夜風のMixedReality

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

Shader

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を基に…

UnityでShaderを勉強する その⑬ 頂点・フラグメントShaderを書く

本日はShader勉強枠です。 先日までSurfaceShaderを勉強していきました。 本日は頂点Shaderやフラグメントシェーダーを扱います。 ●VertexShader(頂点シェーダー)・フラグメントシェーダーとは? それぞれのオブジェクトのメッシュの頂点・ピクセルデータ…

UnityでShaderを勉強する その⑫ オブジェクトを法線方向に展開するShaderを書く

本日はShader勉強枠です。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redh…

UnityでShaderを勉強する その⑪ スライスを扱うShaderを編集する。

本日はShader勉強枠です。 前回はオブジェクトをスライスするShaderを書きました。 redhologerbera.hatenablog.com 前回のShaderのままではスライスする箇所はワールド座標で固定されており、オブジェクトが移動した場合クリップする範囲がずれてしまいます…

UnityでShaderを勉強する その⑩ スライスを扱うShaderを書く

本日はShader勉強枠です。 今回はオブジェクトをスライスするShaderを書いてみます。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologe…

UnityでShaderを勉強する その⑨ ここまで勉強したShaderを復習する

本日はShader勉強枠です。 今回までUnityのShaderを勉強していきました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.haten…

UnityでShaderを勉強する その⑧ スクリーンスペースを扱うShaderを書く

本日もShader勉強枠です。 前回UnityのレファレンスからDiffuse SimpleShaderを見て細部のディテールアップを行う2つ目のテクスチャを使用するShaderを作成しました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenab…

UnityでShaderを勉強する その⑦ 細部を表現するためのテクスチャを使用するShaderを書く

本日はShader勉強枠です。 前回UnityのレファレンスからDiffuse SimpleShaderを見てRimLightを使用するShaderを作成しました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com …

UnityでShaderを勉強する その⑥ リムライトを扱うShaderを書く

本日はShader勉強枠です。 前回UnityのレファレンスからDiffuse SimpleShaderを見ていきました。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.hatenablog.com 今回はDiffuse SimpleShaderを…

UnityでShaderを勉強する その⑤ 法線マップを扱うShaderを書く

今回はUnityのShader勉強枠です。 UnityのレファレンスにあるサーフェースShaderの例からShaderを勉強しています。 docs.unity3d.com 前回はTextureを持つshaderを書きました。 redhologerbera.hatenablog.com 〇法線マップとは? 法線マップ(NormalMap)はバ…

UnityでShaderを勉強する その③ 実際にShaderの中身を見ていく

本日はShader勉強枠です。 前回実際にShaderの中身を見ていきました。 redhologerbera.hatenablog.com 今回はもっと中身を読み解いてShaderの構造をつかみます。 前回に引き続きShaderサンプルを見ながら勉強しています。 docs.unity3d.com 〇Diffuse Simple…

UnityでShaderを勉強する その② 実際にShaderの中身を見ていく

本日はShader勉強枠です。 Shaderは3Dオブジェクトの表現において非常に大切なものですが、Unity自体やC#などと違い初心者向けの情報が少なく手を出しにくいのが現状です。 前回Shaderとは何かを見ました。 redhologerbera.hatenablog.com 今回はShaderの中…