Skip to content
Go back

Basic Implementation of Bokeh

· Updated:

doi web

拙訳

ボケ(Bokeh)

  • 最も重要な光学効果のひとつ
    • 画像に”奥行きdepth”の外観を加える
    • 美しいボケは画像品質のために重要である

散乱(と収集)?(Scatter (or Gather)?)

  • 散乱ベースのアルゴリズムの方が理論上ボケを実装しやすい
    • より良い品質
  • ブルートフォース実装は更に計算コストが高い
    • 合理的なパフォーマンスのために多くのハックを必要とする

(散乱と)収集?((Scatter or) Gather?)

  • 収集ベースアルゴリズムの方がパフォーマンスをより簡単に改善できる
    • 低性能なハードウェアや昔のハードウェアで
    • MIPMAPテクニック
    • 多くのハックが必要となる
      • 色にじみcolor bleedingのためのマスキング
      • レイヤ分けのアプローチ

基本的な実装(Basic Implementation)

  • 以下に基づいて絞りの形状に各ピクセルをブラーする
    • 深度
    • カメラパラメータ
  • 最も大きな違いは収集ベースと散乱ベースのアプローチでのフィルタリングアルゴリズム
    • 基本的な実装は同じ

MIPMAPテクニック(Mipmap Techniques)

  • ボケが大きければ、多くのタップが必要とする
    • より浅いshallower被写界深度のため
    • 大きなボケのために低い解像度のテクスチャを使うと、パフォーマンスを活用するのに役立つ
  • より正しいブラー半径
  • 滑らかだが、あまり正しくない
  • 異なるソーステクスチャLODバイアス、同じタップ数

フォーカス呼吸(Focus Breathing)

  • 先に示したように、フォーカス距離は実効F値に影響を与える
    • 視野角
    • 露出

実効F値の計算(Computing Effective F-number)

  • 実効F値に基づいて視野角と露出を更新する
FOV=2atan(h(dof)2dof)FOV = 2 \text{atan} \left( \frac{h(d_o - f)}{2 d_o f} \right)Fe=(dif)FF_e = \left( \frac{d_i}{f} \right) F
  
hhセンサーのサイズ
dod_oフォーカス距離
did_iレンズからセンサーまでの距離
ff焦点距離
FFF値

正確なCoC(Accurate CoC)

  • |錯乱円(ボケの直径)は以下で計算できる
CoC(z)=(dofdofzfzf)D(zf)zfCoC(z) = \left( \frac{d_o f}{d_o - f} - \frac{zf}{z - f} \right) \frac{D(z - f)}{zf}
dod_oフォーカス距離
zzレンズから対象までの距離
ff焦点距離
DD絞りの直径

ボケの形状(Bokeh Shape)

  • 典型的なカメラは円形絞りを持つ
    • 単純な多角形ではない
    • 単純な円形ではない

実装(Implementation)

  • とても単純なアプローチ
    • 与えられたF値と最小F値の比に関してブラーフィルタ形状を変更する

比較(Comparison)

カメラから3mの距離にある直径5mmの光源

フォーカス距離は1.5m、70-200mm F2.8のレンズを200mmに持つ

もうひとつ(One More Thing)

  • 実験中、現実の写真でのf/2.8とf/3.5との間のサイズ差は理論的な計算より小さい
    • 実際には、f/2.8のボケは光学的にケラれるoptical vignetted

光学の口径食(Optical Vignetting)

  • 光学の口径食はレンズ設計の制限のために生じる
    • 特定の条件下で、ボケが欠けるeclipsed
    • とても複雑な現象
  • 口径食は様々なポイントで発生する
  • カメラレンズを伴う口径食シミュレーション(点線は光線が遮蔽されていることを示す)

実装(Implementation)

  • カメラレンズを完璧にシミュレートするのは難しい
    • レイトレーシングが必要
      • リアルタイムには計算コストが高すぎる
      • 事前計算したLUTが必要になる
        • 高次元
    • 適切なレンズ設計が必要とされる
      • ズーム、フォーカス、絞りのメカニズムが正確にシミュレートされなければならない
  • レンズ設計を近似する
    • レンズデータベース
      • 光学の口径食は光学的な制限により発生する
        • 物理的にもっともらしいシミュレーションが必要
        • そうでなければ、不自然な口径食が発生する
      • 光学の口径食の発生しやすさはカメラレンズによって異なる
        • 更に、与えられるレンズパラメータに依存する

近似的なレンズデータベース(Approximated Lens Database)

  • 口径食シムに必要なパラメータ
    • 設計パラメータ
      • 推定レンズ鏡筒位置、および、光学の口径食を引き起こす可能性が最も高い半径
      • 絞りの位置と半径
      • バックフォーカスback focus1の長さ、または、フランジバックの長さflange focal length2
    • カメラパラメータ
      • 実効F値

口径食シェーダ(Vignetting Shader)

  • レンズデータベースを持つピクセルシェーダで口径食を計算する
    • 真のレイトレーシングは高価すぎる
      • 光線は焦点から絞りまでの線で近似される
      • 射影された絞りとレンズ鏡筒との遮蔽を計算する

結果(Results)

  • 欠ける方向は前ボケと後ボケで反対になる

口径食(Vignetting)

  • 画像の中心と比較して周囲で画像の明るさが減少すること
    • 光学の口径食による減少
      • ボケは焦点において1ピクセルに収束する
    • 自然の口径食による減少
      • コサイン4乗則

光学の口径食による減少(Reduction by Optical Vignetting)

  • 欠けたボケの領域は明るさを減衰する
    • ケラれたボケの領域は同じレンズデータベースを用いて計算できる
      • 2つの円が重なる領域
      • 結果はシェーダで明るさを減衰するために使われる

自然の口径食による減少(Reduction by Natural Vignetting)

  • 画像の射影はコサイン4乗則に従う
    • 光量はcos4θ\cos^4 \thetaθ\thetaは視野角)に従って減少する
      • 現実のカメラレンズはレンズの縁で口径比aperture ratioが増加することでこの効果を減らす
        • 結果として、自然の口径食はcos4cos^4に従わない(一般的には2乗から3乗)
    • 自然の口径食はF値が大きくなっても改善されない
      • この現象は常に発生する
      • 広角レンズで特に目立つ

コサイン4乗則(Cosine Fourth Law)

  • 最小F値(F2.8)による減衰率(コサイン4乗則と光学の口径食による減衰)
  • 小さいF値による減衰率(ほぼコサイン4乗則による減衰)
  • 35mmカメラシステムにおけるカメラレンズの減衰率(f=25mm)

口径食の結果(Results of Vignetting)

  • カドの口径食は大きなF値で軽減されるが、自然の口径食はF値に関わらず依然として残る

結論(Conclusion)

  • 現実のかめらのメカニズムに従うことが重要である
    • フォトリアリスティックな光学効果を達成するため
    • ボケはただのブラーではない

Footnotes

  1. 訳注:バックフォーカスとは、レンズ最後端からフィルム面までの距離のこと

  2. 訳注:フランジバックとは、レンズのマウント面からフィルム面までの距離のこと