目的
Pure BaseのRendering Modeが自動設定するZWriteを、必要なマテリアルだけ明示的に上書きできるようにする。
Rendering Modeは標準的な描画状態を提供しつつ、VRChat向け半透明などZWriteを有効にしたいケースで固定値に縛られない設計へ変更する。
対象
PureBase/Unlit
PureBase/Toon
PureBase/PBR
PureBase/Hybrid
- ForwardBaseの
ZWrite
- Rendering Mode normalizer
- Material Inspector UI
- 公開プロパティ、シェーダー契約、テスト
設計事項
実装前に次を確定する。
- Rendering Mode標準値とユーザー上書き値をどう表現するか。
Auto / Off / On の3状態にするか、別のOverrideトグルを持つか。
- Opaque / Cutout / Transparentそれぞれの標準ZWrite値。
- Transparentの標準ZWriteをOnとするか、既存0.2.0仕様との互換性をどう扱うか。
- Rendering Mode切り替え時にユーザー上書きを保持するか。
- ForwardAddは従来どおり
ZWrite Off 固定とするか。
- ShadowCaster / Metaにはこの設定を適用しないことを契約として固定するか。
- Resync Rendering Modeがユーザー指定ZWriteを破壊しない方法。
実装要件
- 4つのベースシェーダーで同じZWrite上書き契約を使用する。
- Rendering Modeの標準状態とユーザー上書き状態を明確に分離する。
- Resync、複数選択、Undo、保存、再読み込み後も状態が一致する。
- Rendering Mode以外の公開プロパティを不要に書き換えない。
- ForwardAddの深度書き込み契約を変更する場合は理由を明記する。
完了条件
優先順位
AlphaToMask (#50) の次に実装する。
目的
Pure BaseのRendering Modeが自動設定するZWriteを、必要なマテリアルだけ明示的に上書きできるようにする。
Rendering Modeは標準的な描画状態を提供しつつ、VRChat向け半透明などZWriteを有効にしたいケースで固定値に縛られない設計へ変更する。
対象
PureBase/UnlitPureBase/ToonPureBase/PBRPureBase/HybridZWrite設計事項
実装前に次を確定する。
Auto / Off / Onの3状態にするか、別のOverrideトグルを持つか。ZWrite Off固定とするか。実装要件
完了条件
優先順位
AlphaToMask (#50) の次に実装する。