目的
Pure BaseのForwardBaseおよびForwardAddで、現在 LEqual 固定のZTestを必要に応じて変更できるようにする。
通常のマテリアルでは従来どおり LEqual を既定値とし、特殊な描画順序やオーバーレイ用途などで深度比較関数を明示的に設定できる描画状態契約へ拡張する。
対象
PureBase/Unlit
PureBase/Toon
PureBase/PBR
PureBase/Hybrid
- ForwardBaseのZTest
- ForwardAddのZTest
- Material Inspector UI
- 公開プロパティ、シェーダー契約、テスト
設計事項
実装前に次を確定する。
- ForwardBaseとForwardAddで同じZTest値を共有するか、個別設定にするか。
- 公開するCompareFunctionの範囲。
- 既定値を
LEqual として現行描画を維持すること。
- Rendering Mode切り替え時にZTestを変更しない独立設定とするか。
- ShadowCasterは従来どおり
LEqual 固定とするか。
- Meta PassにはZTest設定を適用しないことを契約として固定するか。
- Outline Pass実装後、アウトライン用ZTestを独立設定にするか。
- Always / Greater / GEqualなど特殊設定で発生し得る描画上の注意点をどこまでUIまたは文書で示すか。
実装要件
- 4つのベースシェーダーで同じZTest契約を使用する。
- 既定値では現行の
ZTest LEqual と同じ描画結果を維持する。
- Rendering Mode normalizerがZTestを不要に上書きしない。
- 複数選択、Undo、保存、再読み込みで値を正しく維持する。
- 不要なシェーダーバリアントを増やさない。
完了条件
優先順位
Separate Blend + BlendOp (#52) の次に実装する。
目的
Pure BaseのForwardBaseおよびForwardAddで、現在
LEqual固定のZTestを必要に応じて変更できるようにする。通常のマテリアルでは従来どおり
LEqualを既定値とし、特殊な描画順序やオーバーレイ用途などで深度比較関数を明示的に設定できる描画状態契約へ拡張する。対象
PureBase/UnlitPureBase/ToonPureBase/PBRPureBase/Hybrid設計事項
実装前に次を確定する。
LEqualとして現行描画を維持すること。LEqual固定とするか。実装要件
ZTest LEqualと同じ描画結果を維持する。完了条件
LEqualで、既存マテリアルの描画を変更しない。優先順位
Separate Blend + BlendOp (#52) の次に実装する。