Philip-Trettner / GlmSharp

Open-source semi-generated GLM-flavored math library for .NET/C#
MIT License
47 stars 18 forks source link

GLM_FORCE_LEFT_HANDED ? #12

Closed clibequilibrium closed 11 months ago

clibequilibrium commented 11 months ago

Hello,

Awesome library ! Any way we can set GLM_FORCE_LEFT_HANDED similar to what glm and cglm do to use Left Handed Coordinate system ?

Cheers.

clibequilibrium commented 11 months ago

If anyone is looking for left handed Z up glm.perspective method here is how:

    public static Matrix4x4 PerspectiveFOVLeftHanded(float fov, float aspect, float zNear, float zFar)
    {
        float tanHalfFovY = MathF.Tan(fov / 2f);

        Matrix4x4 m = default;

        m[0, 0] = 1 / (aspect * tanHalfFovY);
        m[1, 1] = 1 / tanHalfFovY;
        m[2, 2] = zFar / (zFar - zNear);
        m[2, 3] = 1;
        m[3, 2] = -(zFar * zNear) / (zFar - zNear);

        return m;
    }