Apple Engine

Apple, iPhone, iOS, その周辺のことについて

ARKit で LUT 画像からカラーグレーディング

昨日のサンプルの方法で pointOfView の SCNCamera を取得し、LUT (look up table) 画像を使用してカラーグレーディングを行ってみる。

使い道として全体的に色味を変えたいときに使用する。

ARSCNView に直接 CIFilter で効果を入れられないので、普通なら Metal シェーダーを使うことになるが今回の方法を使用すると画像を用意するだけで変更できる。

以下、カラーグレーティングを適応した画像。
1番下は適応されていない ARKit 本来の状態。

 

LUT に関しては過去記事参照。

appleengine.hatenablog.com

 

今回は以下の LUT 画像を使用している

f:id:x67x6fx74x6f:20170829193255p:plain f:id:x67x6fx74x6f:20170829193537p:plain

 

実装

LUT 画像をプロジェクトに入れて viewDidLoad に以下のコードを書くだけ。

if let cgCamera = sceneView.pointOfView?.camera {
    cgCamera.colorGrading.contents = UIImage(named:"lut001.png")
    cgCamera.colorGrading.intensity = 1.0
}

 

サンプルコード

github.com

 

まとめ

LUT の画像を作成しなければならないが画面全体の色調整を簡単に行うことができる。

あまりオススメできないけど、LUT の画像をいじるだけなので、やろうと思えば Photoshop などを使わずに iOS のプログラム側から色の変更可能ではある。

もし、リアルタイムに変更したい場合はフラグメントシェーダーでいじる方が良いと思われる。