perspective static method

List<double> perspective(
  1. double fieldOfViewInRadians,
  2. double aspect,
  3. double near,
  4. double far,
)

Implementation

static List<double> perspective(
  double fieldOfViewInRadians,
  double aspect,
  double near,
  double far,
) {
  var f = tan(pi * 0.5 - 0.5 * fieldOfViewInRadians);
  var rangeInv = 1.0 / (near - far);

  return [
    f / aspect, 0, 0, 0, //
    0, f, 0, 0, //
    0, 0, (near + far) * rangeInv, -1, //
    0, 0, near * far * rangeInv * 2, 0 //
  ];
}