パースペクティブカメラ(PerspectiveCamera)
このカメラは、投影に透視投影(透視投影)を使用します。
この投影モードは、人間の目で見られるシーンをシミュレートするために使用され、3Dシーンのレンダリングで使用される最も一般的な投影モードです。
例
var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 ); scene.add( camera );
コンストラクタ
PerspectiveCamera(fov:数値、アスペクト:数値、near:数値、far:数値)
FOV -垂直カメラ視角円錐台
側面-カメラ錐台のアスペクト比
カメラ錐台の近位面-周辺
遠い-カメラの円錐先端面視
カメラのパラメータは一緒に定義する視錐台(視錐台)を。
属性
一般的な属性については、基本クラスのカメラを参照してください。
ほとんどのプロパティが変更された後、これらの変更を有効にするには.updateProjectionMatrixを呼び出す必要があることに注意してください。
。アスペクト :フロート
カメラの錐台のアスペクト比は通常、キャンバスの幅/キャンバスの高さです。デフォルト値は1(正方形のキャンバス)です。
。遠い :フロート
カメラの遠端、デフォルト値は2000です。
有効な値の範囲は、現在のカメラの近平面(近端平面)の値から無限大までです。
。filmGauge :フロート
フィルムサイズ。デフォルト値は35(mm)です。.filmOffsetがゼロ以外の値に設定されていない限り、このパラメーターはカメラの射影行列に影響を与えません。
。filmOffset :フロート
中心からの水平方向のオフセットは、.filmGaugeの単位と同じです。デフォルト値は0です。
。フォーカス :フロート
立体視に使用されるオブジェクトの距離と被写界深度効果。このパラメータは、StereoCameraを使用しない限り、カメラの射影行列には影響しません。デフォルト値は10です。
。fov :フロート
ビューの下部から上部までのカメラ錐台の垂直視野角。度で表されます。デフォルト値は50です。
。isPerspectiveCamera :ブール値
このクラスまたは派生クラスがPerspectiveCamerasであるかどうかをテストするために使用され、デフォルトはtrueです。
この属性はレンダラーによって最適化のために内部的に使用されるため、変更しないでください。
。近く :フロート
カメラの近端、デフォルト値は0.1です。
有効な範囲は、0から現在のカメラの遠方平面の値までです。OrthographicCameraとは異なり、0はPerspectiveCameraの近位面の有効な値ではないことに注意してください。
。ビュー :オブジェクト
錐台ウィンドウの指定またはnull。この値は、.setViewOffsetメソッドを使用して設定され、.clearViewOffsetメソッドを使用してクリアされます。
。ズーム :番号
カメラのズーム率を取得または設定します。デフォルト値は1です。
方法
一般的なメソッドについては、その基本クラスのカメラを参照してください。
。clearViewOffset ():null
.setViewOffsetで設定されたオフセットをすべてクリアします。
。getEffectiveFOV ():フロート
.zoom(複数ズーム)と組み合わせると、現在の垂直視野角を角度で返します。
。getFilmHeight ():フロート
現在のフィルムの画像の高さを返します。.aspectが1以下の場合(ポートレートフォーマット、ポートレート構図)、結果は.filmGaugeと等しくなります。
。getFilmWidth ():フロート
現在のフィルムの画像の幅を返します。.aspectが1以上の場合(横向きの形式、横向きの構図)、結果は.filmGaugeと等しくなります。
。getFocalLength ():フロート
.filmGauge(フィルムサイズ)に対する.fov(画角)の現在の焦点距離を返します。
。setFocalLength (focalLength:Float):null
現在の.filmGaugeの焦点距離を基準にしてFOVを設定します。
デフォルトでは、焦点距離は35mm(フルフレーム)カメラに指定されています。
。setViewOffset (fullWidth:Float、fullHeight:Float、x:Float、y:Float、width:Float、height:Float):null
fullWidth —
マルチビューの全幅設定fullHeight —マルチビューの全高設定
x —
セカンダリカメラの水平オフセットy —セカンダリカメラの垂直オフセット
幅—セカンダリカメラの幅
高さ—セカンダリカメラの高さ
大きな視錐台でオフセットを設定すると、マルチウィンドウまたはマルチモニターの設定に役立ちます。
たとえば、3x2ディスプレイアレイがある場合、各ディスプレイの解像度は1920x1080であり、これらのディスプレイは次のようにグリッドに配置されます。
+ --- + --- + --- + | A | B | C | + --- + --- + --- + | D | E | F | + --- + --- + --- +
モニターごとに、次のように設定して呼び出すことができます。var w = 1920; var h = 1080; var fullWidth = w * 3; var fullHeight = h * 2; // A camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); // B camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); // C camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); // D camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); // E camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); // F camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
モニターは同じサイズまたはグリッドである必要はないことに注意してください。
。updateProjectionMatrix ():null
カメラの射影行列を更新します。パラメータが変更された後に呼び出す必要があります。
。toJSON (メタ:オブジェクト):オブジェクト
meta-オブジェクトの子孫にテクスチャや画像などのメタデータを含むオブジェクト。カメラをthree.jsJSON オブジェクト/シーン形式(three.jsJSONオブジェクト/シーン形式)に変換します。