PSSMDemo.PSSM.CalculateFarClipDistance C# (CSharp) Метод

CalculateFarClipDistance() приватный Метод

private CalculateFarClipDistance ( Matrix &view, Microsoft.Xna.Framework.BoundingBox &sceneBox, float nearClipDistance ) : float
view Matrix
sceneBox Microsoft.Xna.Framework.BoundingBox
nearClipDistance float
Результат float
        float CalculateFarClipDistance(ref Matrix view, ref BoundingBox sceneBox, float nearClipDistance)
        {
            // シーン AABB の頂点の中で最もカメラから遠い点の z 値を探す。

            float maxFarZ = 0.0f;

            sceneBox.GetCorners(corners);
            for (int i = 0; i < corners.Length; i++)
            {
                // z についてのみビュー座標へ変換。
                float z =
                    corners[i].X * view.M13 +
                    corners[i].Y * view.M23 +
                    corners[i].Z * view.M33 +
                    view.M43;

                // より小さな値がより遠くの点。
                if (z < maxFarZ) maxFarZ = z;
            }

            // maxFarZ の符号を反転させて距離を算出。
            return nearClipDistance - maxFarZ;
        }