ARKit で LUT 画像からカラーグレーディング
昨日のサンプルの方法で pointOfView の SCNCamera を取得し、LUT (look up table) 画像を使用してカラーグレーディングを行ってみる。
使い道として全体的に色味を変えたいときに使用する。
ARSCNView に直接 CIFilter で効果を入れられないので、普通なら Metal シェーダーを使うことになるが今回の方法を使用すると画像を用意するだけで変更できる。
以下、カラーグレーティングを適応した画像。
1番下は適応されていない ARKit 本来の状態。
LUT に関しては過去記事参照。
今回は以下の LUT 画像を使用している
実装
LUT 画像をプロジェクトに入れて viewDidLoad に以下のコードを書くだけ。
if let cgCamera = sceneView.pointOfView?.camera { cgCamera.colorGrading.contents = UIImage(named:"lut001.png") cgCamera.colorGrading.intensity = 1.0 }
サンプルコード
まとめ
LUT の画像を作成しなければならないが画面全体の色調整を簡単に行うことができる。
あまりオススメできないけど、LUT の画像をいじるだけなので、やろうと思えば Photoshop などを使わずに iOS のプログラム側から色の変更可能ではある。
もし、リアルタイムに変更したい場合はフラグメントシェーダーでいじる方が良いと思われる。