Как эмулировать Vector3.TransformNormal - PullRequest
1 голос
/ 02 декабря 2010

Я пытаюсь эмулировать Vector3.TransformNormal без библиотеки DirectX.

Кто-нибудь может объяснить, как работает эта функция, чтобы позволить мне воссоздать функцию?

Пока я знаювходы и видел описание того, что он делает, но я не знаю, расчеты.

public static Vector3 TransformNormal(
    Vector3 source,
    Matrix sourceMatrix
)

1 Ответ

3 голосов
/ 02 декабря 2010

Это должно сделать это (не проверял)

public Vector3 TransformNormal(Vector3 normal, Matrix matrix)
{    
    return new Vector3
    {
        X = normal.X * matrix.M11 + normal.Y * matrix.M21 + normal.Z * matrix.M31,
        Y = normal.X * matrix.M12 + normal.Y * matrix.M22 + normal.Z * matrix.M32,
        Z = normal.X * matrix.M13 + normal.Y * matrix.M23 + normal.Z * matrix.M33
    };
}
...