Skip to content

ForwardBaseとForwardAddのZTestを設定可能にする #53

Description

@PenguinDOOM

目的

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、保存、再読み込みで値を正しく維持する。
  • 不要なシェーダーバリアントを増やさない。

完了条件

  • ForwardBaseのZTestを設定できる。
  • ForwardAddのZTestを設定できる。
  • ForwardBase / ForwardAddで値を共有するか個別設定するかが決定されている。
  • 既定値は LEqual で、既存マテリアルの描画を変更しない。
  • ShadowCaster / Meta / Outlineへの適用範囲が明確になっている。
  • Rendering Mode切り替えおよびResyncでユーザー指定値が意図せず変更されない。
  • 公開プロパティABIとシェーダー契約を更新する。
  • 代表的なCompareFunctionの深度回帰確認と影響範囲のDaily検証が通る。

優先順位

Separate Blend + BlendOp (#52) の次に実装する。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions