目的
Pure BaseのForwardBaseおよびForwardAddで、RGBとAlphaのBlend factorを個別に設定できるようにし、BlendOpも公開する。
Rendering Modeは標準的なBlend状態を提供しつつ、必要なマテリアルではより詳細な合成規則を設定できる描画状態契約へ拡張する。
対象
PureBase/Unlit
PureBase/Toon
PureBase/PBR
PureBase/Hybrid
- ForwardBaseのSrcBlend / DstBlend RGB・Alpha
- ForwardAddのSrcBlend / DstBlend RGB・Alpha
- ForwardBaseおよびForwardAddのBlendOp RGB・Alpha
- Rendering Mode normalizer
- Material Inspector UI
- 公開プロパティ、シェーダー契約、テスト
設計事項
実装前に次を確定する。
- 公開プロパティ名と型。
- ForwardBase用として次を分離する。
- Src Blend RGB
- Dst Blend RGB
- Src Blend Alpha
- Dst Blend Alpha
- BlendOp RGB
- BlendOp Alpha
- ForwardAdd用として次を分離する。
- Src Blend RGB
- Dst Blend RGB
- Src Blend Alpha
- Dst Blend Alpha
- BlendOp RGB
- BlendOp Alpha
- Rendering Mode標準値とユーザー指定値をどう共存させるか。
- Transparent時のForwardAddで追加ライトによるAlpha蓄積を避ける既定値。
- 現在の
ColorMask RGB をForwardAddで維持するか、Alpha Blend設定を公開する以上Alpha出力も許可するか。
- Resync Rendering Modeがユーザー指定Blend状態を上書きする範囲。
- 既存
_SrcBlend / _DstBlend / _AddSrcBlend / _AddDstBlend の互換性を維持するか、移行するか。
実装要件
- 4つのベースシェーダーで同じBlend契約を使用する。
- ShaderLabで
Blend SrcRGB DstRGB, SrcAlpha DstAlpha を利用する。
- 必要に応じて
BlendOp OpRGB, OpAlpha を利用する。
- Rendering Modeの標準値から逸脱しない既定設定を用意する。
- 既存マテリアルがアップグレード後に意図せず異なる合成結果にならないようにする。
- 複数選択、Undo、保存、再読み込み、Resyncを正しく扱う。
- 不要なシェーダーバリアントを増やさない。
完了条件
優先順位
ZWrite override (#51) の次に実装する。
目的
Pure BaseのForwardBaseおよびForwardAddで、RGBとAlphaのBlend factorを個別に設定できるようにし、BlendOpも公開する。
Rendering Modeは標準的なBlend状態を提供しつつ、必要なマテリアルではより詳細な合成規則を設定できる描画状態契約へ拡張する。
対象
PureBase/UnlitPureBase/ToonPureBase/PBRPureBase/Hybrid設計事項
実装前に次を確定する。
ColorMask RGBをForwardAddで維持するか、Alpha Blend設定を公開する以上Alpha出力も許可するか。_SrcBlend/_DstBlend/_AddSrcBlend/_AddDstBlendの互換性を維持するか、移行するか。実装要件
Blend SrcRGB DstRGB, SrcAlpha DstAlphaを利用する。BlendOp OpRGB, OpAlphaを利用する。完了条件
優先順位
ZWrite override (#51) の次に実装する。