Unity でホワイトバランスを設定する

カテゴリ:unity

Unity のバージョンは 5.4.

標準のアセットにそのような機能はないので,外部のスクリプトを使う. ColorSuiteUnityWhiteBalance等がある. この記事では UnityWhiteBalance を使う(私が作ったので).

インポート・設定

WhiteBalanceEffect.cs(.meta) と whiteBalance.shader(.meta) と計4つのファイルを適当な場所に配置する. 配置したら WhiteBalanceEffect.cs をカメラにつける.

どの色を指定するか

真っ白のオブジェクトをレンダリングして,そのオブジェクトがレンダリングされた色をホワイトバランスに指定する.

手順

  1. 環境光を無効にする(オプション)
  2. 環境光の設定は Unity 5.4 では Window > Lighting の Scene タブにある. Ambient Intensity を 0 にするか, Ambient Source を Color にして真っ黒を指定する.

    環境光を消す
  3. White Balance に白を指定する
  4. init white balance
    ホワイトバランスのリセット
  5. シーンにカメラのほうを向いた真っ白の板ポリゴンを配置し,レンダリング(実行)する
  6. daylight
    太陽光を想定した光なので全体的に黄色い
  7. スポイトでレンダリングされた色を拾う
  8. 露出オーバーになるが,これも修正できる.

    over exposure
    露出オーバー
  9. ピッカーで露出を調整する
  10. corrected
    露出の調整

    たいていは真上に移動させるだけで十分だ.

  11. 環境光を有効にする(オプション)