3Dスケッチにおいて、現在のカメラに遠近法投影を設定します。
遠近法投影では、カメラから遠い形状は近い形状よりも小さく見えます。この技術は フォアショートニングと呼ばれ、リアルな3Dシーンを作成します。WebGLモードでは デフォルトで適用されます。
perspective()
は、カメラの視錐台を変更することでカメラの遠近法を変更します。 視錐台は、カメラから見える空間の体積です。 その形状は、上部が切り取られたピラミッドです。カメラはピラミッドの 上部があるべき場所に配置され、視錐台の上面(近面)と底面(遠面)の間の すべてを見ることができます。
最初のパラメータfovy
は、カメラの垂直視野角です。これは カメラがどれだけ高く、または狭く見えるかを表す角度です。 例えば、perspective(0.5)
を呼び出すと、カメラの垂直視野角が 0.5ラジアンに設定されます。デフォルトでは、fovy
はスケッチの 高さとカメラのデフォルトのz座標(800)に基づいて計算されます。デフォルトの fovy
の計算式は2 * atan(height / 2 / 800)
です。
2番目のパラメータaspect
は、カメラのアスペクト比です。これは 上面の幅と高さの比率を表す数値です。 例えば、perspective(0.5, 1.5)
を呼び出すと、カメラの視野角が 0.5ラジアンに、アスペクト比が1.5に設定され、正方形のキャンバスでは 形状がより細く見えるようになります。デフォルトでは、アスペクト比はwidth / height
に設定されます。
3番目のパラメータnear
は、カメラから近面までの距離です。 例えば、perspective(0.5, 1.5, 100)
を呼び出すと、カメラの 視野角が0.5ラジアン、アスペクト比が1.5に設定され、近面がカメラから 100ピクセルの位置に配置されます。カメラから100ピクセル未満の距離に描画された 形状は表示されません。デフォルトでは、nearは0.1 * 800
に設定されます。 これは、カメラと原点の間のデフォルトの距離の1/10です。
4番目のパラメータfar
は、カメラから遠面までの距離です。 例えば、perspective(0.5, 1.5, 100, 10000)
を呼び出すと、 カメラの視野角が0.5ラジアン、アスペクト比が1.5に設定され、近面が カメラから100ピクセルの位置に、遠面がカメラから10,000 ピクセルの位置に配置されます。カメラから10,000ピクセル以上離れた場所に描画された 形状は表示されません。デフォルトでは、farは10 * 800
に設定されます。 これは、カメラと原点の間のデフォルトの距離の10倍です。
注意:perspective()
はWebGLモードでのみ使用できます。
実例
シンタックス
perspective([fovy], [aspect], [near], [far])
パラメーター
カメラの視錐台の垂直視野角。デフォルトは 2 * atan(height / 2 / 800)
です。
カメラの視錐台のアスペクト比。デフォルトは width / height
です。
カメラから近クリッピング平面までの距離。 デフォルトは0.1 * 800
です。
カメラから遠クリッピング平面までの距離。 デフォルトは10 * 800
です。