1. サーフェス シェーダ: サーフェス シェーダは Unity 独自のシェーダ コードの一種であり、SubShader で定義されます。サーフェス シェーダーを作成するのに必要なコードはほとんどなく、詳細の一部は Unity によって自動的に処理されます。ただし、サーフェス シェーダーの本質は頂点シェーダーとフラグメント シェーダーと同じであり、サーフェイス シェーダーを定義すると、Unity はそれを裏で頂点シェーダーとフラグメント シェーダーに変換します。サーフェイスシェーダーUnityを使用すると処理量が多く開発が楽になりますが、柔軟性が非常に低い、レンダリングの詳細を制御できないなどのデメリットも明らかです。
2. 頂点シェーダーとフラグメント シェーダー: 頂点シェーダーとフラグメント シェーダーは、SubShader の Pass ブロックで定義されます。頂点シェーダーとフラグメント シェーダーの記述はより複雑ですが、柔軟性が高く、より詳細な制御が可能です。
3. ToggleOff : 属性の切り替え
例:
[ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 0.0
[NoScaleOffset]
マテリアル パネルは UV オフセットを表示しません
[HDR]_EmissionColor("Color", Color) = ( 0, 0, 0, 0 )
[HideInInspector]
表示パネルの非表示プロパティ
4. タグ
Tags { "Queue" = "透明" }
Geometry
(デフォルト) ほとんどの不透明なオブジェクトに適用可能Background
- 背景、一般的なスカイ ボックスなどはこのタグを使用し、最初にレンダリングされますAlphaTest
- シェーダーが AlphaTest 関数を使用したい場合は、パフォーマンスを向上させるためにこのキューを使用しますTransparent
- このレンダリング キューは、シェーダーの後で使用すると便利ですAlphaTest Alpha Blend に進むもの、または詳しく書かれていないものはこのキューに配置する必要があります。
5. デプスライト、デプステスト
// ZWrite On
// ZTest LEqual
6. Cull
// Cull には 3 つのタイプがあります
// Cull Off はカリングしません
// Cull Back は背面 (カメラの反対側を向いている顔) をカリングします
// Cull Front は前面 (カメラの方向を向いている顔) をカリングします