public void PerspectiveFovRH() => Trials(1000, r => { var fov = RandomFloat(r) * 2; var aspect = RandomFloat(r) * 2; var(znear, zfar) = RandomFloatOrderedPair(r, 0, 10000); AssertAlike(FMatrix4x4.PerspectiveFovRH(fov, aspect, znear, zfar), Matrix4x4.CreatePerspectiveFieldOfView(fov, aspect, znear, zfar)); });
public static FMatrix4x4 CreateLookatProjView(Vector3 cameraPosition, Vector3 cameraLookat, Vector3 up, Size renderTargetSize, float vFov = (float)Math.PI / 4, float znear = 5.0f, float zfar = 1000.0f) { var aspect = renderTargetSize.Width / (float)renderTargetSize.Height; return(FMatrix4x4.PerspectiveFovRH(vFov, aspect, znear, zfar) * FMatrix4x4.ViewLookAtRH(cameraPosition, cameraLookat, up)); }