Lighting Data アセット
シーンビューにおける GI の可視化

メタパス

メタパスは、アルベドとエミッシブの Enlighten 使用を標準シェーダーパスから切り離します。

オブジェクトの見え方は、シェーダーで定義されます。 Unity 3 や 4 では、ライトマッパーのマテリアルプロパティーには、マテリアルプロパティーのマッピングをそのまま使っていました。多少は機能しましたが、ネーミング規則、タグとストリングスに基づいていました。基本的にハードコードされていたため、サーフェイスプロパティーをカスタムすることはできませんでした。

Unity 5.x では、アルベドとエミッシブは特別なメタシェーダーパスを使ってレンダリングすることができます。これは、ライトマップ座標空間でレンダリングされ、GPU を使用します。つまり、ライトマッパーが分離しているので、シェーダーのカスタマイズにより、画面上でのオブジェクトの見え方を制御できる、ということです。リアルタイムレンダリングで使われるシェーダーに影響することなく GI を制御することもできます。

メタパスのフロー
メタパスのフロー

This is how we handle albedo for metallic surfaces internally. Enlighten handles diffuse transport and uses surface albedo on each bounce. Metallic surfaces with black or almost black albedo would not bounce any light. The shader pass that renders albedo biases it towards a brighter color with the hue of the metal. Dielectric materials (wood, plastic, plastic, stone, concrete, leather, skin) have white specular reflectance. Metals have spectral specular reflectance.

メタパスの使用は、DynamicGI.SetEmissive ほど早くはありませんが、単色に制限していないため柔軟であることに注意してください。

Lighting Data アセット
シーンビューにおける GI の可視化