Unity│リニアワークフローの基本と設定方法

リニアワークフロー(LWF)は、物理的に正確なライティングを実現するための仕組みです。

昔のモニター規格の名残で、設定がやや複雑になっています。この記事では、UnityとMayaでリニアワークフローを設定する方法を解説します。

目次

リニアワークフローとは

簡単に言うと、光の計算を物理的に正しい「リニア空間」で行い、最終的にモニター表示用に「ガンマ補正」をかける仕組みです。

詳しく知りたい方は以下の記事が参考になります。

検証環境の準備

以下のシーンを作成して検証します。

  • オブジェクト:SphereとPlane
  • カメラ:位置を調整
  • ライト:Directional Lightの色を白に設定
  • マテリアル:Legacy Shaders/Diffuseを使用(床と球にアサイン)
  • ライト設定:Window → Lighting → Ambient Sourceを「Color」に、Reflection Sourceを「Custom」に

リニア設定(Unity)

カラースペースの切り替え

Edit → Project Settings → Player → Other Settings → Color Spaceを「Linear」に変更します。

値の補正について

リニア空間では、入力値にガンマ補正(1/2.2乗)をかける必要があります。

ライトの強度

Intensity 4にしたい場合の計算式は以下の通りです。

4^(1/2.2) = 1.878

Intensityに「1.878」を入力します。

マテリアルのカラー

Diffuse 0.1にしたい場合の計算式は以下の通りです。

(0.1^(1/2.2)) × 255 = 89.5

Main Colorに「90」を入力します。

結果の確認

一番明るい部分のモニター上での値は以下のようになります。

(強度 × ディフューズ)^(1/2.2)
(4 × 0.1)^(1/2.2) = 0.66 (168/255)

リニア設定(Maya)

ライト

Directional LightのIntensityを「4」に設定します。

マテリアル

LambertのColorをRGB(0.1, 0.1, 0.1)に、Diffuseを「1」に設定します。カラースペースはRendering Space(デフォルト)のままで問題ありません。

レンダリング

通常通りレンダリングし、「Save Color-Managed Image」で保存します。Unity同様、一番明るい部分は0.66(168/255)になります。

ガンマ設定(比較用)

リニアとの違いを確認するため、通常のガンマ設定も記載します。

Unity(ガンマ設定)

  • Color Spaceを「Gamma」に(デフォルト)
  • Directional LightのIntensityを「4」に
  • 一番明るい場所を0.66(168/255)にするためのマテリアル値
((168/255) / 4) × 255 = 42

Main Colorに「42」を入力します。

Maya(ガンマ設定)

  • Directional LightのIntensityを「4」に
  • 一番明るい場所を0.66にするためのマテリアル値
(168/255) / 4 = 0.164

LambertのColorをRGB(0.164, 0.164, 0.164)に設定し、Rendering Spaceのチェックを外します。

リニアとガンマの設定比較

項目リニア(Unity)ガンマ(Unity)
Color SpaceLinearGamma
Light Intensity1.878(補正後)4
Material Color90(補正後)42
最終出力168/255168/255

まとめ

  • Mayaはリニアワークフローの設定が比較的シンプル
  • Unityはライトもマテリアルも補正値を計算して入力する必要がある
  • 計算式は「入力したい値^(1/2.2)」を覚えておくと便利
  • リニア設定により、物理的に正確なライティング結果が得られる

リニアワークフローは設定が面倒ですが、正確なライティングを実現するためには重要な概念です。プロジェクトの要件に応じて使い分けてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次