fn perspective_rh_gl(fov_y_radians: T, aspect_ratio: T, z_near: T, z_far: T) -> Self {
        let inv_length = T::ONE / (z_near - z_far);
        let f = T::ONE / (T::HALF * fov_y_radians).tan();
        let a = f / aspect_ratio;
        let b = (z_near + z_far) * inv_length;
        let c = (T::TWO * z_near * z_far) * inv_length;
        Self::from_cols(
            V4::new(a, T::ZERO, T::ZERO, T::ZERO),
            V4::new(T::ZERO, f, T::ZERO, T::ZERO),
            V4::new(T::ZERO, T::ZERO, b, -T::ONE),
            V4::new(T::ZERO, T::ZERO, c, T::ZERO),
        )
    }
/// Creates a right-handed perspective projection matrix with [-1,1] depth range.
/// This is the same as the OpenGL `gluPerspective` function.
/// See https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluPerspective.xml
Creates a right-handed perspective projection matrix with [-1,1] depth range.
This is the same as the OpenGL `gluPerspective` function.
Creates a right - handed perspective projection matrix with [ - 1 1 ] depth range . This is the same as the OpenGL ` gluPerspective ` function .
fn perspective_rh_gl(fov_y_radians: T, aspect_ratio: T, z_near: T, z_far: T) -> Self {
        let inv_length = T::ONE / (z_near - z_far);
        let f = T::ONE / (T::HALF * fov_y_radians).tan();
        let a = f / aspect_ratio;
        let b = (z_near + z_far) * inv_length;
        let c = (T::TWO * z_near * z_far) * inv_length;
        Self::from_cols(
            V4::new(a, T::ZERO, T::ZERO, T::ZERO),
            V4::new(T::ZERO, f, T::ZERO, T::ZERO),
            V4::new(T::ZERO, T::ZERO, b, -T::ONE),
            V4::new(T::ZERO, T::ZERO, c, T::ZERO),
        )
    }
fn perspective_rh_gl ( fov_y_radians : T , aspect_ratio : T , z_near : T , z_far : T ) -> Self { let inv_length = T :: ONE / ( z_near - z_far ) ; let f = T :: ONE / ( T :: HALF * fov_y_radians ) . tan ( ) ; let a = f / aspect_ratio ; let b = ( z_near + z_far ) * inv_length ; let c = ( T :: TWO * z_near * z_far ) * inv_length ; Self :: from_cols ( V4 :: new ( a , T :: ZERO , T :: ZERO , T :: ZERO ) , V4 :: new ( T :: ZERO , f , T :: ZERO , T :: ZERO ) , V4 :: new ( T :: ZERO , T :: ZERO , b , - T :: ONE ) , V4 :: new ( T :: ZERO , T :: ZERO , c , T :: ZERO ) , ) }
Creates a right-handed perspective projection matrix with [-1,1] depth range.
Creates a right - handed perspective projection matrix with [ - 1 1 ] depth range .
fov_y_radians
T
aspect_ratio
T
z_near
T
z_far
T
fov_y_radians
T
aspect_ratio
T
z_near
T
z_far
T