Skip to content

Rendering ModeからZWriteを上書きできる設定を追加する #51

Description

@PenguinDOOM

目的

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の深度書き込み契約を変更する場合は理由を明記する。

完了条件

  • ForwardBaseのZWriteをユーザーが明示的にOn / Offできる。
  • Rendering Mode標準値を使用する状態へ戻せる。
  • Opaque / Cutout / Transparentそれぞれの標準値が文書化されている。
  • Rendering Mode切り替えおよびResyncで上書き状態が意図せず失われない。
  • ForwardAdd / ShadowCaster / Metaへの適用範囲が明確になっている。
  • 複数選択、Undo、保存、再読み込みが正しく動作する。
  • 公開プロパティABIとシェーダー契約を更新する。
  • 深度・透明描画の代表的な回帰確認と影響範囲のDaily検証が通る。

優先順位

AlphaToMask (#50) の次に実装する。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions