こんにちは、iOSエンジニアの千吉良(ちぎら)です。
AVCaptureSession
を使ってカメラからの入力を取得して画面に描画しようとした場合、 BGRA 形式のピクセルバッファを受け取って画面への描画を行うことになります。取得したピクセルバッファを用いて画像編集をした際に、ピクセルフォーマットの考慮が漏れていて景色が青くなってしまった、という経験をされた方も多いのではないでしょうか。
ARKit からも同じようにフレーム毎にピクセルバッファを取得することができますが、ARKit ではピクセルバッファは YCbCr(YUV) という形式になっており、描画部分に Metal を用いる場合にはピクセルフォーマットを意識してプログラムを書く必要があります。
今回は ARKit から取得したピクセルバッファを、Metal を用いて画面に描画するまでの処理をピクセルフォーマットに注目しながら追ってみます。
続きを読む