夜風のMixedReality

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

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

本日もMixedReality-GraphicsTools-Unityを触っていきます。

前回までは導入からドキュメントを読み解いていきました。

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

今回はサンプルシーンからMaterialGalleryをより一つ一つ見ていきます。

MaterialGallery

MaterialGalleryGraphicsStandardShaderで提供される機能を用いたサンプル群です。

今回はRenderingModeから見ていきます。

〇Rendering Modes

 Rendering ModesはShaderがどのタイミングでどのようにレンダリングされるのかを指定します。

Graphics Tools/StandardシェーダーはUnityで提供されている多くのレンダリングオプションを使用できます。

〇Opaque

Opaque(不透明)はデフォルトのレンダリングモードです。

レンダーキュー(Shaderが描画される順)はGeometry=2000となっています。

レンダーキューはRenderingModeに依存しており、値が小さい順にレンダリングが行われます。

docs.unity3d.com

Geometryは透明度を持ったオブジェクトよりも先に描画が行われます。

〇Cutout

Cutoutは透明度を扱うことができるモードです。

木の葉やPing画像などの透明度を持ったテクスチャを使用してα値に応じて透明と不透明を切り替えています。

AlphaCutoffの値を使用することで指定した値より下のα値(0~1)をとったピクセルは描画されず透明になります。

〇Fade

FadeTransparent同様透明~半透明のオブジェクト描画を行いますが、Transparentに対し非物理学的に透過していくことが特徴です。

TransparentがガラスだとしたらFadeは蜃気楼やお化けのような表現ができます。

〇Transparent

Transparentはガラスや現実的な半透明なオブジェクトの描画に使用されます。

TransparentFadeのプロパティ的な違いはSource Blendにあります。

これはShader内のBlendのソースに当たります。

            Blend[_SrcBlend][_DstBlend]

Alpha(透明度)を持つShaderはそのオブジェクトが描画される前にどのように描画されるか(混ぜ合わせるか)という処理をBlend [元の画像][AlphaShaderの処理後の画像]の形式で描画をどのようにするか指定します。

SrcAlphaはシェーダーで計算された色を乗算する処理を示します。

Oneはシェーダーで計算された色をそのまま描画します。

このあたりはべつ記事で改めて調査していきます。

〇Additive

Additive(加算)はalphaを含むシェーダーで、主にパーティクルなどのエフェクトでよく見るShaderです。

特徴としてBlendが

Blend One One

となっており、オーバーレイされるように描画されます。

〇Custom

Customは描画の設定を自身でカスタマイズするモードです。

BlendモードやBlendオプション、Depthなどをカスタマイズしてより高度な描画ができます。

当然ながら描画順などの問題もあり、この設定を使いこなすためにはShaderやレンダリングにある程度精通している必要があります。

本日は以上です。

GraphicsToolsStandardShaderを使用することでAlphaBlendingなどの学習もできそうです。

今後のチャレンジとして行っていきます。