2013/08/02

[three.js] PerspectiveCameraのレンズ

Three.jsのCameraには、レンズを設定するためのメソッド、

  THREE.PerspectiveCamera.prototype.setLens = function ( focalLength, frameHeight ) {
    if ( frameHeight === undefined ) frameHeight = 24;
      this.fov = 2 * THREE.Math.radToDeg( Math.atan( frameHeight / ( focalLength * 2 ) ) );
      this.updateProjectionMatrix();
  }
があります。

このメソッドの引数は、

focalLength
焦点距離(mm)
frameHeight
フレーム高(mm)
となっていて、デフォルトだと、foculLength = 35, frameHeight = 24として動作します。

通常のカメラと同様に、foculLength(焦点距離)を大きくすると画角(fov)が小さくなるため、 描画対象が大きくなります(望遠レンズ)。
一方で、foculLengthを小さくすれば画角が大きくなるため、描画対象が小さくなります(広角レンズ)。

この振る舞いを確認するためのサンプルが、
let's play with cameras!
にあります。
WebGLに対応したブラウザで見ていただければ、と思います。

0 件のコメント: