Shader
本日はMRGT枠です。 〇Z-fightingとは? UntiyやBlenderなどの3Dソフトでアプリケーションを作成しているとあるオブジェクトの描画がちかちか見えてしまうことがあります。 これはZ-fightingと呼ばれる問題で、上記の例では赤い板からちらちらと青い板が見…
本日はShader枠です。 筆者は基本的にコードを使用してShaderを構築することの方が多いですが、開発環境や状況によってShaderGraphを使用して構築する機会もあります。 ShaderGraphを使用する際にいつもノーマルマップの扱いを忘れてしまっていたので今回ま…
本日はMRGT枠です。 最新のMRGTのバージョンではShaderGraphの機能が提供されています。 今回はこちらについてどのようなものなのか調査していきます。 〇MRGTのShaderGraph ShaderGraphはUnityでノードベースでシェーダーを構築できる機能です。 通常シェー…
本日はShader学習枠です。 今回はShaderを使用してオブジェクトを描画しているカメラとの距離に応じてフェードを書ける表現を行っていきます。 これはMixedRealityGraphicsToolのStandardShaderではNearFadeと呼ばれる機能に当たります。 redhologerbera.hat…
本日はMRGT枠です。 こんかいはMRGTStandardShaderの機能の中のAssigned at Runtimeについて紹介します。 〇Assigned at Runtimeとは? Assigned at Runtimeの設定項目はAlbedoにテクスチャを適応していない場合のみすぐ下に存在します。 MRGTStandardShader…
本日はShader枠です。 先日はNormalVectorを使用して法線を描画するシェーダーを記述しました。 redhologerbera.hatenablog.com こんかいはメッシュの本来の法線を取得します。 〇メッシュ本来の法線とは 3Dモデルはシェーディングという補正を使用できます…
本日はUnityシェーダー枠です。 〇Normal Vectorノード ShaderGraphのNormal Vectorノードはオブジェクトの持つ法線の値を使用することができます。 一般的に法線の向きに拡大縮小するアニメーションやNoramlMapなどに使用されています。 Normal Vectorノー…
本日はShader学習枠です。 先日はMRTK(MRGT)Standardシェーダーを使用してオブジェクトが重なっていたとしても最前面に描画されるシェーダーを書いていきました。 redhologerbera.hatenablog.com 今回はコードとして実装していきます。 こんかいは次のような…
本日はMRTK枠および小ネタです。 Unityでアプリケーションを開発するうえで通常はカメラに対しての奥行で、奥から上書きされるように描画が行われることで、通常の物理空間同様に近くにあるオブジェクトほどほかのオブジェクトと重ならない見た目になります…
本日はUnity Shader学習枠です。 Untiyのシェーダーでは基本的にShaderLab言語の中でCGPROGOAM~ENDCGと記述されている間にCG/HLSL言語を使用してコードを記述します。 今回は構文に関するTipsです。 〇CGPROGAM~ENDCGとCGINCLUDE~ENDCG オーソドックスなシェ…
本日はHoloLens枠です。 HoloLens 2のアプリケーションを初めての方に体験してもらう際にはデバイスの装着位置がずれている場合視野角の問題でホログラムを見ることができず、途切れて見えてしまうということがあります。 そのためアテンド側、アプリケーシ…
本日はShader枠です。 グラフィックパイプラインの中で3Dオブジェクトは頂点シェーダーステージで描画画面に対しての座標などが処理され、フラグメントシェーダーでピクセル色が決められています。 redhologerbera.hatenablog.com redhologerbera.hatenablo…
本日はUnityShader枠です。 先日までHex表現を行うシェーダーで出現エフェクトを作成しいていました。 今回はまとめ記事になります。 〇Hex.hlsl 今回の出現シェーダーの肝は参考として紹介させていただいているブログ記事様により公開されているShaderGraph…
本日はShader枠です。 透明度を扱うシェーダーではそのシェーダーによって描画されたピクセルをすでに描画されているピクセルとどのように合成するか?というBlendingという設定があります。 この設定を行うことで半透明な表現を行うことができますが、これ…
本日はShader枠です。 先日よりHex表現を使用した出現シェーダーを開発しています。 先日はSpatialMesh用に調整を行いました。 今回はこのシェーダーを実機で確認していきます。 〇SpatialMeshのマテリアルの設定 今回はMRTKv2.8を使用しています。またMRTK…
本日は昨日に引き続きShader枠です。 昨日はUnityのワールド座標基準で出現エフェクトを行うシェーダーを作成しました。 今回はさらに発展させ、あるオブジェクトを中心に3次元的にエフェクトが行われる表現を行います。 〇Unity上の別のオブジェクトの位置…
本日はShader枠です。 先日に引き続きHex表現を使用したエフェクトを作成します。 redhologerbera.hatenablog.com 昨日の状態まではオブジェクトの持つUV座標に依存してHex表現を行っていました。 これによってオブジェクトの持つUV情報によっては表現が破断…
本日は昨日に引き続きシェーダー枠です。 先日はHex表現を使用した出現シェーダーとして透明度を持たせて出現する仕組みを作成しました。 redhologerbera.hatenablog.com 今回はさらに発光エフェクトを追加してエフェクトとしてディティールアップしていきま…
本日は昨日に引き続きShader枠です。 redhologerbera.hatenablog.com 昨日は六角形の形で画像が現れるようなシェーダーを記述しました。 今回はこれをベースに本格的な出現エフェクトを作成します。 〇エフェクトの反転 透明度を実装する前に先日のシェーダ…
本日はUnityシェーダー枠です。 昨日他ブログにて紹介されていたHexagonNodeを使用してHex=ハニカム上にテクスチャをサンプリングするシェーダーを作りました。 redhologerbera.hatenablog.com 今回はこちらのシェーダーを応用して出現エフェクトを作成して…
本日はShader学習枠です。 〇Hexノード 今回は八角形の形状がタイリングされた見た目をシェーダーに組み込んでいきます。 今回シェーダーを使った面白い表現を探していた時に次の記事を見つけました。 r-ngtm.hatenablog.com 上記の記事ではShaderGraphを使…
本日はシェーダー枠です。 今回はテクスチャを応用して複数のテクスチャを混ぜ合わせて表示できるシェーダーを記述していきます。 〇シェーダーでテクスチャを扱う方法 シェーダーでテクスチャを扱うシェーダーは次のようになります。 Shader "Unlit/Texture…
本日はUnity枠です。 Unityではメッシュを描画する際は一般的にMeshRendererコンポーネントを使用しています。(アニメーションを行うメッシュなどはSkkinedMeshRendererなどが使用される場合もあります。) MeshRenererでは描画の設定として影を設定するこ…
本日はMRGT枠です。 Microsoft MixedRealityGraphicsToolsで提供されているGraphicsToolsStandardシェーダーはMixedRealtiyデバイス向け、特にMicrosoft HoloLensに最適なパフォーマンスを出すことを目的として開発されています。 Unityの描画処理の中で特に…
本日はShader&AI枠です。 23年に入りChatGPTの普及が爆発的になっていますが、先日Unityのエディタ内でChatGPTを使用してシェーダーを作成するテストリポジトリが公開されました。 今回はこちらを試していきます。 〇ChatGPTとは? ChatGPTはDALL・E2やStab…
本日はMRGT調査枠です。 筆者は基本的にGraphicsToolsStandardShaderのマテリアルを愛用しています。 しかしUnityではマテリアルを作成する際にBuiltInパイプラインではStandard、URPではURP/Litシェーダーのマテリアルがデフォルトで作成されます。 毎回マ…
本日はMRGT枠です。 MRGTではEnableStencileTestingという項目で一つのシェーダーでマテリアルごとにステンシルプロパティを変えることができます。 この機能を自作シェーダーに組み込んでみます。 〇MRGTの実装 GraphicsToolsStandardShaderの実装は次のよ…
本日は昨日に引き続きシェーダーを紹介します。 〇Unityで特定のオブジェクトだけ明るく見えるシェーダーを作成する redhologerbera.hatenablog.com 昨日は特定のオブジェクトが明るく強調表現されるような表現を紹介しました。 この方法ではステンシルとい…
本日はMRGT&Shader枠です。 今回はMRGTを使用した特殊なエフェクト表現を紹介します。 例えば特定のオブジェクトに注目させたい場合などに全体的に描画を暗くしながらも特定のオブジェクトのみ通常の明るさで描画していきます。 〇環境 ・Unity2021.3.5f1 …
本日はMRGT枠です。 MRGTのStandardShaderにはNearFade機能が搭載されています。 redhologerbera.hatenablog.com この機能は基本的にマテリアルを使用しているオブジェクトとユーザー(カメラ)の距離に応じて透明になるという機能ですが、UseLightのオプショ…