夜風のMixedReality

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

Shader

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

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

ShaderをSRPBatcherに対応させる。

本日はShader学習枠です。 UnityのURPなど新しいレンダーパイプラインではレンダリングにおける最適化の手法としてSRPBacherを使用することができます。 筆者もよく使用するものの仕組みなど深く理解できていない部分があったため今回は勉強していきます。 …

URP環境でブラーシェーダーを描く

本日はShader勉強枠です。 筆者も独自のShaderを描けるようにはなってきましたがまだまだ初心者です。 今回はエフェクト用のShaderを描いてみます。 〇ブラーとは? 筆者もグラフィック関係に携わるまで聞いたことがなかったのですが、[ブラー(Blur)]とはぼ…

ジオメトリシェーダーでメッシュをアニメーションさせる

本日はShader学習枠です。 ShaderAnimationを学んでいきます。 〇ジオメトリシェーダーでメッシュをアニメーションさせる。 今回は前回作成したジオメトリシェーダーで複製したメッシュをそれぞれアニメーションさせていきます。 redhologerbera.hatenablog.…

ジオメトリシェーダーでメッシュを複製する。

本日はShader学習枠です。 ジオメトリシェーダーの処理を使用することで頂点シェーダーから受け取った頂点データをもとに頂点の増減ができることは知っていたのですが、具体的な処理を記述したことはなかったので改めて勉強してみました。 〇実機での動作 今…

HoloLens用のSpatialMeshShaderを開発する その① HoloLens Adventカレンダー2021 5日目

本日はShader勉強枠です。 またHoloLens Adventカレンダー5日目の記事です。 〇HoloLens Adventカレンダーとは? HoloLens Adventカレンダーは技術関連投稿サイトのQiita上で毎年12月に開かれているイベントの一つです。 あるテーマに沿って12月1日から25日…

MRTKワイヤフレームShaderを調査する。 その⑤ ジオメトリシェーダーの処理

本日はMRTK調査枠です。 現在ジオメトリシェーダーの勉強を兼ねMRTKで提供されているワイヤフレームシェーダーの中身を追っています。 〇ジオメトリシェーダー ジオメトリシェーダーはフラグメントシェーダーの前に実行される処理で、頂点シェーダーから受け…

MRTKワイヤフレームShaderを調査する。 その④ 頂点シェーダーの処理

本日はMRTK調査枠です。 現在ジオメトリシェーダーの勉強を兼ねMRTKで提供されているワイヤフレームシェーダーの中身を追っています。 redhologerbera.hatenablog.com 〇頂点シェーダー v2g vert(appdata_base v) { UNITY_SETUP_INSTANCE_ID(v); v2g o; o.vi…

Unity ShaderLabでコードを描くテクニック

本日はUnityShader勉強枠です。 筆者はUnity Shaderの勉強を独学で初めて1年ほどたちますが、ほかの方がGitHubに上げているコードを読んでいると次のようなコードを目にすることが多くありました。 Shader "HoloMoto/GeometryFirst" { Properties { ... } S…

DirectXでHoloLensアプリケーションを開発する サンプルプロジェクトのデプロイ

本日はDirectXを用いてHoloLensアプリケーションを構築します。 HoloLensのアプリケーション開発はUnityのほかUnrealEnginが使用可能ですが、DirectX、OpenXRなどを用いてゲームエンジンを用いずネイティブでアプリケーション開発を行うことも可能です。 今…

MRTKワイヤフレームShaderを調査する。 その③ ワイヤフレームシェーダーの概要

本日はSubShader内の処理を読み解いていきます。 #pragma vertex vert #pragma geometry geom #pragma fragment frag WireFrameShaderでは頂点シェーダー、フラグメントシェーダーのほかにジオメトリシェーダーが実装されています。 実行環境がDirectX #if d…

Oculus Quest 2でジオメトリシェーダーを使用する。

本日はシェーダー枠です。 Shaderには頂点シェーダー、フラグメントシェーダーのほかジオメトリシェーダーを使用することができ、Shaderアニメーションなど非常に複雑な処理を可能としています。 しかしOculus Quest 2で描画が行われないため、ずっとOculus …

MRTKワイヤフレームShaderを調査する。 その① カスタムシェーダーGUI

今回はShader勉強枠です。 今回はMRTKで提供されているワイヤフレームシェーダーに関して調査します。 〇MRTKのワイヤフレームシェーダーとは? MRTKでは[SpatialAwareness(空間認識)]で作成された[SpatialMesh(空間メッシュ)]を描画するためのマテリアルと…

ガチラボでShaderGraphを使用したShader芸勉強会を開催しました。その② 面の表現

本日はShader勉強枠です。 10月27日20:30から熊本のxRコミュニティ[KumaMCN]のオンライン勉強会を開催しました。 今回はShaderGraphを使用してShaderAnimationを作成しています。 〇ガチラボとは? [ガチラボ]とは熊本のxRコミュニティ[KumaMCN]で行われるガ…

ガチラボでShaderGraphを使用したShader芸勉強会を開催しました。 面のアニメーション

本日はイベント登壇枠です。 10月27日20:30から熊本のxRコミュニティ[KumaMCN]のオンライン勉強会を開催しました。 今回はShaderGraphを使用してShaderAnimationを作成しています。 〇ガチラボとは? [ガチラボ]とは熊本のxRコミュニティ[KumaMCN]で行われる…

Blenderで面や辺を分離する。

本日はBlender勉強枠です。 初歩的なことですが、今前使用していなかったテクニックなので今回まとめます。 〇Blenderで面や辺を分離する。 今回は次回以降のShader表現で使用するために次のICO球を面ごとにそれぞれ分割します。 ①[編集モード]で[A]キーでIC…

複数のUVマップを使用したShader表現を行う。

本日はshader勉強枠です。 Shaderでは様々な表現が行えます。今回は複数のUVマップを使用したShader表現に挑戦します。初めに導入として複数のUVマップそのものをUnityのShaderGraphで扱っていきます。 〇複数のUVマップを使用したオブジェクト ①BlenderでIC…

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]はそ…