夜風のMixedReality

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

MixeRealityGraphicsTools StandardShader全機能解説 その① RenderingModeを完全に理解する。

本日はMRGT調査枠です。 また本ブログ解説から1000記事目の記事になります。

2019年に始まった本ブログですが、累計PVが先日20万を越え、多くの方に見ていただいているようでとてもうれしいです。

 今回はMixedRealityGraphicsToolsのStandardShaderの全機能を一つ一つ読み解いて紹介していきます。

〇環境

今回はMixedRealityGraphicsToolsの最新ブランチから機能を紹介します。

github.com

正式にリリースされていないバージョンのため正式リリース時に使用が変更されている可能性はあります。

〇Rendering Mode

Graphics/Standardの冒頭でRendering Modeがあります。

ここではEnum型でOpaqueCutoutFadeTransparentAdditiveCustomが選択可能です。

〇Opaque

基本の設定です。

透明度を持たない不透明のオブジェクトの描画に使用されます。

通常透明度を持つレンダリングよりも軽量な処理となります。

〇Cutout

 Cutoutは不透明でありながら使用されているテクスチャのα値に応じて一部が透明になります。

これはShaderの処理として、該当のピクセルを破棄することを行っており、半透明などはできません。

〇Fade

Fadeは半透明なレンダリングができるレンダリングモードです。

最初に使用する場合次のような警告が出ます。

Depth buffer sharing is enabled this project ,but this material does not write depth. Enabling depth will improve reprojection,but may cause rendering artifacts in translucent materials.

これを日本語訳すると以下の意味になります。

デプスバッファの共有は可能ですが、この素材は深度を書き込めません。デプスを有効にすると、再プリジェクションが向上しますが、半透明なマテリアルではレンダリングアーチファクトが発生する可能性があります。

この警告は透明度を持てるマテリアルにおいてデプスを使用していない場合に表示されます。

Fix Nowを選択することで警告は削除されますが、デプスが有効になります。

このデプスが有効の場合カメラからの距離の情報を持つことができます。

Depth buffer sharingとはHoloLensの推奨設定に関連する警告です。

learn.microsoft.com

簡単に読み解くとアプリで取得するデプスバッファをHoloLensのシステム側と共有することでアプリだけではなくシステム側と同期してホログラムの安定化に使用する機能のようです。

レンダリングアーチファクトは3DCGのノイズを指します。

これは透明度を持つオブジェクトによくあるレンダリングの破断を指します。

レンダリングアーチファクトが発生し描画がおかしくなっている

正しいレンダリング

〇Transparent

TransparentはFadeに似ていますが、物理的な透明度を持つレンダリングです。

Fadeは非物理的な透明を行うのに対して、ガラスなどのような物理的な透明度を持つ描画に最適です。

〇Custom

CustomはMRGTで使用できるパラメータを手動で設定できる機能です。

Custom以外のパラメータはCustomで表示されるパラメータのプリセットのようなものです。

Customを使いこなすためには高度なShaderへの理解が必要ですが、細かい描画回りの設定が可能です。

 この設定周りはMRGTというよりはShader自体の解説になるのため別途枠をとって紹介します。

 本日は以上です