示例#1
0
        public static Vector3 ComputeCameraRayDirection(Vector2 screenQuadUv, FMatrix4x4 cameraViewInv)
        {
            var uv   = CMul(screenQuadUv * 2.0f - Vec2(1.0f), Vec2(1.0f, -1.0f));
            var near = (cameraViewInv * Vec4(uv, 0.1f, 1.0f)).NormalizeByW().XYZ();
            var far  = (cameraViewInv * Vec4(uv, 1.0f, 1.0f)).NormalizeByW().XYZ();

            return(Normalize(far - near));
        }
示例#2
0
 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Vector4 Mul(FMatrix4x4 m, Vector4 v) => m * v;