リファレンス perspective()

perspective()

カメラにパースペクティブ投影を設定します。

パースペクティブ投影では、カメラから遠い形状は近い形状よりも小さく見えます。 この技術は遠近法と呼ばれ、リアルな3Dシーンを作成します。これはデフォルトで新しい p5.Cameraオブジェクトに適用されます。

myCamera.perspective()は、カメラの視錐台を変更することで カメラのパースペクティブを変更します。視錐台はカメラから見える空間の体積です。 視錐台の形状は、上部が切り取られたピラミッドです。カメラは ピラミッドの上部があるべき場所に配置され、ピラミッドの底面に向けて 向けられます。視錐台内のすべてが見えます。

最初のパラメータfovyは、カメラの垂直視野角です。 これは、カメラがどれだけ高く、または狭く見えるかを表す角度です。 例えば、myCamera.perspective(0.5)を呼び出すと、カメラの垂直 視野角を0.5ラジアンに設定します。デフォルトでは、fovyはスケッチの 高さとカメラのデフォルトのz座標(800)に基づいて計算されます。 デフォルトのfovyの計算式は2 * atan(height / 2 / 800)です。

2番目のパラメータaspectは、カメラのアスペクト比です。 これは上面の幅と高さの比率を表す数値です。 例えば、myCamera.perspective(0.5, 1.5)を呼び出すと、カメラの 視野角を0.5ラジアン、アスペクト比を1.5に設定し、正方形のキャンバスで 形状がより細く見えるようになります。デフォルトでは、aspectwidth / heightに設定されます。

3番目のパラメータnearは、カメラからニアクリッピング面までの 距離です。例えば、myCamera.perspective(0.5, 1.5, 100)を呼び出すと、 カメラの視野角を0.5ラジアン、アスペクト比を1.5に設定し、 ニアクリッピング面をカメラから100ピクセルの位置に配置します。カメラから 100ピクセル未満の距離に描画された形状は表示されません。デフォルトでは、near0.1 * 800に設定されており、これはカメラと原点の間のデフォルト距離の 1/10です。

4番目のパラメータfarは、カメラからファークリッピング面までの 距離です。例えば、myCamera.perspective(0.5, 1.5, 100, 10000) を呼び出すと、カメラの視野角を0.5ラジアン、アスペクト比を1.5に設定し、 ニアクリッピング面をカメラから100ピクセルの位置に、ファークリッピング面を カメラから10,000ピクセルの位置に配置します。カメラから10,000ピクセル以上 離れた場所に描画された形状は表示されません。デフォルトでは、far10 * 800に 設定されており、これはカメラと原点の間のデフォルト距離の10倍です。

実例

シンタックス

perspective([fovy], [aspect], [near], [far])

パラメーター

fovy
Number:

カメラの視錐台の垂直視野角。デフォルトは 2 * atan(height / 2 / 800)です。

aspect
Number:

カメラの視錐台のアスペクト比。デフォルトは width / heightです。

near
Number:

カメラからニアクリッピング面までの距離。 デフォルトは0.1 * 800です。

far
Number:

カメラからファークリッピング面までの距離。 デフォルトは10 * 800です。

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/p5.Camera.js and open a pull request!

関連するリファレンス