Skip to content

全ベースシェーダーにAlphaToMask設定を追加する #50

Description

@PenguinDOOM

目的

Pure Baseの全ベースシェーダーで、MSAA環境におけるCutout境界の品質改善などに利用できる AlphaToMask を設定可能にする。

Rendering Modeの既定挙動を壊さず、必要なマテリアルだけが明示的にAlpha-to-Coverageを利用できる設計にする。

対象

  • PureBase/Unlit
  • PureBase/Toon
  • PureBase/PBR
  • PureBase/Hybrid
  • ForwardBaseおよび必要に応じてForwardAddのShaderLab state
  • 公開プロパティ、Material Inspector UI、シェーダー契約、テスト

設計事項

実装前に次を確定する。

  • 公開プロパティ名と型。
  • 既定値をOffとして既存描画を維持すること。
  • AlphaToMask を適用するPass。
  • Opaque / Cutout / Transparentそれぞれで設定を許可するか、UI上の表示条件を設けるか。
  • Transparentで有効化した場合の挙動をサポート対象とするか。
  • ForwardAddへ適用する必要があるか。
  • Rendering Mode切り替え時に値を保持するか、モード標準値へ同期するか。
  • MSAA無効環境で描画結果へ不要な影響を与えないこと。

実装要件

  • 4つのベースシェーダーで同じプロパティ名と既定値を使用する。
  • 既定値では現行描画結果を変更しない。
  • Cutoutの既存 _Cutoff 契約と競合しない。
  • Rendering Mode normalizerがユーザー指定値を不要に上書きしない。
  • 複数マテリアル選択、Undo、保存、再読み込みで値が維持される。
  • オプションモジュールなしで正常に動作する。

完了条件

  • 4つのベースシェーダーでAlphaToMaskを設定できる。
  • 既定値はOffで、既存マテリアルの描画を変更しない。
  • Cutout + MSAA環境でAlpha-to-Coverageが有効になる。
  • Opaque / Transparentでの仕様が決定され、UIと文書が一致している。
  • ForwardBase / ForwardAddへの適用範囲が明確になっている。
  • Rendering Mode切り替え後も意図した値が維持または同期される。
  • 公開プロパティABIとシェーダー契約を更新する。
  • 代表的なMSAA有効・無効の回帰確認と影響範囲のDaily検証が通る。

優先順位

Outline (#49) の次に実装する。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions