本日もMixedReality-GraphicsTools-Unityを触っていきます。
前回までは導入からドキュメントを読み解いていきました。
今回はサンプルシーンからMaterialGalleryをより一つ一つ見ていきます。
〇MaterialGallery
MaterialGalleryはGraphicsStandardShaderで提供される機能を用いたサンプル群です。
今回はRenderingModeから見ていきます。
〇Rendering Modes
Rendering ModesはShaderがどのタイミングでどのようにレンダリングされるのかを指定します。
Graphics Tools/StandardシェーダーはUnityで提供されている多くのレンダリングオプションを使用できます。
〇Opaque
Opaque(不透明)はデフォルトのレンダリングモードです。
レンダーキュー(Shaderが描画される順)はGeometry=2000となっています。
レンダーキューはRenderingModeに依存しており、値が小さい順にレンダリングが行われます。
Geometryは透明度を持ったオブジェクトよりも先に描画が行われます。
〇Cutout
Cutoutは透明度を扱うことができるモードです。
木の葉やPing画像などの透明度を持ったテクスチャを使用してα値に応じて透明と不透明を切り替えています。
AlphaCutoffの値を使用することで指定した値より下のα値(0~1)をとったピクセルは描画されず透明になります。
〇Fade
FadeはTransparent同様透明~半透明のオブジェクト描画を行いますが、Transparentに対し非物理学的に透過していくことが特徴です。
TransparentがガラスだとしたらFadeは蜃気楼やお化けのような表現ができます。
〇Transparent
Transparentはガラスや現実的な半透明なオブジェクトの描画に使用されます。
TransparentとFadeのプロパティ的な違いは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などの学習もできそうです。
今後のチャレンジとして行っていきます。