目的
Pure Baseの全ベースシェーダーでShaderLabの Offset Factor, Units を設定可能にし、Z-fighting回避や意図的な深度バイアスが必要な描画に対応する。
通常のマテリアルではOffsetを無効相当の既定値とし、必要な場合だけ明示的に使用できる描画状態契約へ拡張する。
対象
PureBase/Unlit
PureBase/Toon
PureBase/PBR
PureBase/Hybrid
- ForwardBaseのDepth Offset
- ForwardAddのDepth Offset
- 必要に応じてShadowCasterおよびOutline PassのDepth Offset
- Material Inspector UI
- 公開プロパティ、シェーダー契約、テスト
設計事項
実装前に次を確定する。
Offset Factor と Offset Units の公開プロパティ名と型。
- ForwardBaseとForwardAddで同じ値を共有するか、個別設定にするか。
- 既定値を
0, 0 として現行描画を維持すること。
- ShadowCasterへ同じOffsetを適用するか、独立設定または固定値とするか。
- Outline Pass実装後、アウトライン用Offsetを独立設定にするか。
- Rendering Mode切り替え時にOffsetを変更しない独立設定とするか。
- 大きな正負値によるDepth precisionやクリッピング上の注意点をどこまでUIまたは文書で示すか。
実装要件
- 4つのベースシェーダーで同じDepth Offset契約を使用する。
- 既定値では現行描画結果を変更しない。
- Rendering Mode normalizerがOffsetを不要に上書きしない。
- 複数選択、Undo、保存、再読み込みで値を正しく維持する。
- 不要なシェーダーバリアントを増やさない。
完了条件
優先順位
ZTest (#53) の次に実装する。
目的
Pure Baseの全ベースシェーダーでShaderLabの
Offset Factor, Unitsを設定可能にし、Z-fighting回避や意図的な深度バイアスが必要な描画に対応する。通常のマテリアルではOffsetを無効相当の既定値とし、必要な場合だけ明示的に使用できる描画状態契約へ拡張する。
対象
PureBase/UnlitPureBase/ToonPureBase/PBRPureBase/Hybrid設計事項
実装前に次を確定する。
Offset FactorとOffset Unitsの公開プロパティ名と型。0, 0として現行描画を維持すること。実装要件
完了条件
Offset Factor, Unitsを設定できる。0, 0で、既存マテリアルの描画を変更しない。優先順位
ZTest (#53) の次に実装する。