private void RenderSingleTargetDepth(GraphicsDevice Graphics, Vector3 Position)
        {
            Graphics.SetRenderTarget(RenderTarget);
            Graphics.DepthStencilState = DepthStencilState.Default;

            List <Geometry3D> RenderTargetGeometries = SceneNode.GetAllGeometries(Position);

            Matrix CameraProjection = RenderCamera.ProjectionMatrix;
            Matrix CameraView       = RenderCamera.ViewMatrix;

            //Vector3 CameraPosition = RenderCamera.Position;

            Graphics.Clear(Color.White);

            for (int j = 0; j < RenderTargetGeometries.Count; j++)
            {
                object[] ClipMapData = GetClosestClipMap(RenderTargetGeometries[j].Position);
                if (ClipMapData.Length != 0)
                {
                    Geometry3D Geom = RenderTargetGeometries[j];
                    Geom.RenderDepth(Graphics, CameraView, CameraProjection, (Texture2D)ClipMapData[0], (Vector3)ClipMapData[1], (Vector4)ClipMapData[2], ClipPlaneDirection, ClipOffset, RenderCamera.FarPlaneClip, RenderCamera.IsOrthogonal);
                }
                else
                {
                    Geometry3D Geom = RenderTargetGeometries[j];
                    Geom.RenderDepth(Graphics, CameraView, CameraProjection, null, new Vector3(), new Vector4(), ClipPlaneDirection, ClipOffset, RenderCamera.FarPlaneClip, RenderCamera.IsOrthogonal);
                }
            }
            if (RenderCamera.IsOrthogonal)
            {
                //Debug.WriteLine(SceneNode.Count);
            }

            Graphics.SetRenderTarget(null);

            HasRendered = true;
        }