今回はMRTK3調査枠です。
MRTK3がリリースされたことで間にMRTK3の調査が入ってしまいましたが今回はGraphicsToolsを触っていきます。
前回は導入とサンプルシーンをざっと見ていきました。
今回はShaderを見ていきます。
〇GraphocsTools StandardShader
MRTK3ではv2のMixedReality StandardShaderに代わりGraphics Tools/StandardShaderが使用できます。
代わりといってもMRTK3ではMRTKv2と併用することもできるためMixedRealityStandardShaderと置き換わるものではなく、別のShaderとして開発されています。
中身も構造が変わっており、MRTKStandardShaderではCGPROGRAM~ENDCGで記述され、コアな処理はすべてShaderファイル内で行われていましたが、GraphibsTools/StandardShaderではHLSLPROGRAM~ENDHLSLの記述になっており、さらにコアな処理はGraphicsToolsStandardProgram.hlslに記述されincludeされるようになっています。
これによりMRTKStandardShaderでは1000行を超えていたファイルは300行ほどに収められ可読性が上がっています。
Shader "Graphics Tools/Standard" { Properties { ... } SubShader { ... Pass { ... HLSLPROGRAM ... #include_with_pragmas "GraphicsToolsStandardProgram.hlsl"//Shaderの 処理は別ファイルをインクルードしている。 ENDHLSL } ... } ... } CustomEditor "Microsoft.MixedReality.GraphicsTools.Editor.StandardShaderGUI" }
また URPにも対応してる仕組みとなっています。
GraphicsToolsStandardShader自体はMRTKStandardShader同様 CustomEditorでインスペクタの表示が管理されるようになっており、ShaderGUIUtillsが担当しています。
これによりShaderプロパティが管理され、チェックボックスにチェックを入れ有効化した時、必要な詳細のプロパティが表示されるようになっています。
今回は以上です。
GraphicsToolsStandardShaderは一見するとMRTKv2のMRTKStandardShaderと同じですが、中身が全く異なっており、使用感などを同じにしながら別のShaderとしてアップデートしていることがわかりました。