#memo

indiedev太郎

DoFを光学的なパラメーターから設定する

https://i.gyazo.com/fda21381cb704dcd289680cb4cae90a8.gif


UE4のDoFのパラメーターについて - #memo

これの続き、UE4でカメラのシミュレーションを作る、DoFの微妙に直感的でないパラメーターを自動的に設定できたい

レンズの公式 - Wikipedia
被写界深度 - Wikipedia
4.ピント - カメラと光のはなし
5.被写界深度 - カメラと光のはなし

インターネットからピント調節と被写界深度の理解を得る
出てくる変数は、

レンズの焦点距離: f
F値: N
許容錯乱円: c
被写体との距離(物点): d

次に、この変数の初期設定をする
許容錯乱円は、35mmフィルムの0.03にしておく
F値は50mmで1.8のやついうことにしておく(手元にあるので…)

ここから被写界深度の前端Dn、被写界深度の後端Dfが求まる

Dn = dNc(d-f)/(f^2+Nc(d-f))
Df = dNc(d-f)/(f^2-Nc(d-f))

この値をDoFのパラメーターに渡す、ここまでの計算はmmでやっていて、UE4のデフォルトユニットはcmなので注意する

Focal Distance = (d-Dn)/10
Focal Region = (Df+Dn)/10

Dfはあるラインを超えるとintの範囲を超えてしまうので、UE4で雲が見えてる距離を最大値とする、
今回は適当に60mに設定しているけど、ちゃんと調べる

Max Bokeh Sizeは有効口径で良さそうなので、f/Nを代入する

これでScale, Near Transition Region, Far Transition Region以外は、レンズ焦点距離F値、被写体の距離から自動で求まるようになった
後半2つはよくわかったらなんとかしたい