射影行列は、世界座標を画面座標に変換するために使用されます。
3次元仮想世界の位置は、x、y、z座標のトリプレットです。何かを描画したい場合(またはOpenGLに何かを描画するように指示したい場合)、これらの座標がユーザー画面のどこにあるかを計算する必要があります。
この計算は、行列の乗算を使用して実装されます。
x、y、zで構成されるベクトル(および行列がスケーリングなどの操作を実行できるようにするために必要な4番目の値1)に行列を掛けて、x、y、z座標の新しいセット(4番目の値)を受け取ります。は破棄されます)これは、このポイントがユーザー画面のどこにあるかを表します(どのオブジェクトが他のオブジェクトの前にあるかを判別するには、z座標が必要です)。
関数mat4.perspectiveは、まさにそれを行う行列を生成する射影行列を生成します。引数は次のとおりです。
- 度(45)の視野
- 視野のアスペクト比(ビューポートのアスペクト比)
- まだ描画されているビューアからの最小距離(0.1ワールドユニット)
- まだ描画されているビューアからの最大距離(100.0ワールドユニット)
- 生成された行列が格納されている配列(pMatrix)
ポイントにこのマトリックスを掛けると、結果はこのポイントを描画する必要のある画面座標になります。