ACES Filmic Tonemapping
#CG #色 #トーンマッピング
Academy Color Encoding Systemのトーンマッピング
Reference Images
https://github.com/ampas/aces-output/tree/dev/tests/images
このリファレンスをもとにみんなカーブをfitしているらしい
実装
リファレンス実装
https://github.com/ampas/aces-core
アカデミー本家によるリファレンス実装
UnityがAdoptしてそう 🔗
Unreal EngineもAdoptしてそう 🔗
Krzysztof Narkowicz
https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
そんな全力でACES導入しなくてもええやろのやつ
$ \frac{2.51 t^2 + 0.03 t}{2.43 t^2 + 0.59 t + 0.14}
https://gyazo.com/daf8aea3b63dad81f5ba2748ddb1e9ba
https://www.desmos.com/calculator/of0jmwdjp8
Stephen Hill
https://github.com/TheRealMJP/BakingLab/blob/master/BakingLab/ACES.hlsl
三刺激値をちゃんと線形変換しながらカーブをかけているので、真赤で光らせた箇所がちゃんと白く飛んだりしてすごいよ
ACESInputMat
sRGBをXYZ色空間にする
ホワイトポイントをD65からD60にする(どういう意味?)
XYZをAP1 (ACEScg) にする
Output Transform (カーブ)
Reference Rendering Transform (RRT): シーン参照の色空間から表示参照の色空間へ変換する
Output Device Transform (ODT): 出力デバイスの色空間(ここでは伝達関数?)へ変換する
ACESOutputMat
AP1をXYZにする
ホワイトポイントをD60からD65にする
XYZをsRGBにする
Three.jsはこれを使っている 🔗
Babylon.jsもこれを使っている 🔗