iOS で SceneKit を試す(Swift 3) その41 - Scene Editor カメラの Depth of Field(被写界深度)
カメラとなる SCNCamara で被写界深度のシミュレーションを行う。
実際のカメラと同様に距離でオブジェクトにピントを合わせて、 他がボケるさせる効果の設定を行う。
ちなみに、今回紹介するすべてのプロパティが macOS, tvOS, watchOS でも廃止予定で、
iOS 11 など最新の OS からはカメラのシミュレーションに近い、焦点距離 (focusDistance) と F値 (fStop) で行う。
Scene Editor の パラメーター
Blur Radius
ピントがあっていないもの(被写界深度の外のもの)に対してボケ具合の最大値を設定する。
0 以上にしないと被写界深度のシミュレーションが行われない。
デフォルト値は 0.0。
Distance
ピントを合わせたいものまでの距離。焦点距離。
デフォルト値は 10.0
Aperture
レンズの口径を表す。
値を大きくすると焦点距離から鮮明に映る範囲が狭くなりボケる割合が大きくなり、
値を小さくすると全体がシャープになっていく。
デフォルト値は 0.125。
Size
オブジェクトが鮮明に表示される距離の範囲の大きさ。
デフォルト値は 0.0。
サンプル
以下の値に設定し、手前、2番目、3番目にピントを合わせたもの。
プロパティ | 値 |
---|---|
Blur Radius | 6 |
Aperture | 0.125 |
Size | 1 |
Distance: 1.2
Distance: 3
Distance: 6
コード
let camera = SCNCamera() camera.focalBlurRadius = 0.0 camera.focalDistance = 10.0 camera.aperture = 0.125 camera.focalSize = 0.0
今回はここまで。