本日は Unity の小ネタ枠です。
半透明かつ両面描写が可能なStandardShaderを作成する手順を記事にします。
通常のStandardShaderを半透明にした場合
通常の StandardShader の[RenderType]を[Transparent]に変更して透過した場合、以下のように背面の面は描画されない透過になります。
本記事では StandardShader を両面描画を有効化して背面の面も描写されるようにしてみます。
StandardShaderのカスタマイズ
Unity のビルドインシェーダをカスタマイズするため、以下のページからシェーダのソースコードを取得します。
unity3d.com
利用したい Unity バージョンのプルダウンを開き、[ビルトインシェーダー]をクリックします。
builtin_shaders-XXXX.X.XXX.zip がダウンロードされるので、これを展開します。
例えば Standard シェーダは Standard.shader という名前で builtin_shaders-XXXX.X.XXX/DefaultResourcesExtra 配下にあります。
Standard.shader を Unity プロジェクトに取り込んでカスタムシェーダを作成します。
今回はシェーダ名を Custom/CulloffStandard にしました。
次にシェーダを編集します。
SubSheder の項に[Cull off]の設定を追加すれば両面描画が行われるようになります。
これで StandardShader のカスタマイズは完了です。
動作確認
新規マテリアルを作成し、[Custom/CulloffStandard]を設定します。
透過を行うので合わせて[RenderType]を[Transparent]に変更します。
作成したマテリアルを反映すると背面の面も描画されるようになりました。