Solaris Karma Physical Lens shaderを試してみた

この記事はHoudiniアドベントカレンダー2022　13日目の記事です。
## はじめに
Houdini 18.5から搭載されていたKarmaのレンズシェーダーが気になりつつなかなか試せなかったので、アドカレの力を借りてテストしてみました。

## この記事で紹介する内容
SolarisでCameraにPhysical Lens shaderを設定
Karmaで実写に合わせてレンダリング

## 作業環境
Houdini indie 19.5.435

## ハード類
Canon TS-E 17mm F4L
Canon EOS 6D

## 参考記事
Adobe ティルトシフト撮影のすすめ （https://www.adobe.com/jp/creativecloud/photography/discover/tilt-shift-photography.html ）
Houdini 18.5 Physical Lens and Focus Plane（https://youtu.be/FAx3rSHH-Sk ）
Houdini 19 BACKGROUND PLATE （https://www.sidefx.com/ja/products/whats-new-19/solaris ）

## 素材撮影
まず物理素材を撮影（広角なのでトリミングしている）
どちらもF4.0、フォーカスはPig headの左目に設定
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/cad3a92a-be7e-7d97-6b99-24af10e0f785.jpeg"><img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/29f2d9bc-ba63-3e1c-6932-f7892e7573f8.jpeg">
（左）通常フォーカス
　近くにピントが合っているので奥にいくほどボケている
（右）フォーカス面がほぼ水平になるようにティルトして撮影
　フォーカスが合う平面がほぼ水平なので奥の鉢の地面までピントが合っている
　代わりに垂直方向にピントが合わなくなり、黄色のマスコットの頭部はボケている

## Karmaでティルトレンズ設定
### ネットワーク全景
Pig HeadとBoxを奥行きをもたせて配置してカメラと合成用バックプレートを設定している
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/f4160a73-6799-63c9-aeeb-a71ed3c38d2f.jpeg">

### 手順
Pig HeadとBoxを配置
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/5d5b9204-4de5-2276-fdbc-cd88b3e7a60f.jpeg">
マテリアルライブラリー内にPhysical Lens VOPを配置
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/e3609bf4-17ac-9bbd-7cba-57cd2e4e89e6.jpeg">

Camera KarmaタブからUse Lens Shaderをチェック、Lens Shader VOPを指定
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/26bf51e5-b76b-9b80-8743-ab0934190f56.jpeg">
同じくCamera SamplingタブからF-stopが0のままだとボケないので設定する
Focus distanceはビューポート内で設定すると自動で入力される
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/741a4228-3b9f-cab6-3185-4fc4a5053358.jpeg">


カメラ選択時にビューポート内でEnter
"Shift + G"でティルトモードに切り替え、フォーカス面を指定する
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/fd60534c-badc-a39a-f7b0-172dee5dd18d.jpeg">
"Shift + 左クリック"で3つフォーカスする点を指定して面を設定するが若干クセがあるように感じた
今回はとりあえず手動で合成画像のフォーカス面に合わせた
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/3860d3c9-580c-aaa5-94f9-6f31cda0316e.jpeg">
Background Planeで合成用シャドウを受けレンダリング＆合成
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/826f9c1d-0b56-f62d-6303-e724a0eac3be.jpeg">

## 出力結果
最初の実写オブジェクトの配置が詰めすぎで絶妙にわかりにくいが、拡大してよく見るとフォーカス面がほぼ実写と同じ面にあり上下方向にボケている
<img width="360" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233336/0dd8f258-d59f-3221-bab6-aed12d1ccfe3.jpeg">

## おわりに
今回はフォーカス範囲を広くとる順方向のティルトを使いましたが、高所から撮影して逆方向へティルトすると一昔前に流行ったミニチュア風の撮影ができます。
Karmaで実写のティルト撮影素材と合成したり、CG内で完結してミニチュア風撮影をしても面白い表現ができるのではないかと思います。
（動画で試してみたかったのが心残り）

ではよいクリスマスとHoudini lifeを！

レンズ使用例：
<iframe width="560" height="315" src="https://www.youtube.com/embed/a3iXeGAtPRg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>