virtual normal is more robust to noise. In Fig. \[fig:VNL noise\], we sample three 3D points with large distance. $P_{A}$ and $P_{B}$ are assumed to locate on the $XY$ plane, $P_{C}$ is on the $Z$ axis. When $P_{C}$ varies to ${P_{C}}'$, the direction of the virtual normal changes from $\boldsymbol{n}$ to ${\boldsymbol{n}}'$. ${P_{C}}''$ is the intersection point between plane $P_{A}P_{B}{P_{C}}'$ and $Z$ axis. Because of restrictions $\mathscr{R}_{1}$ and $\mathscr{R}_{2}$, the difference between $\boldsymbol{n}$ and ${\boldsymbol{n}}'$ is usually very small, which is simple to show: $$\begin{split}
    \angle(\boldsymbol{n} ,{\boldsymbol{n}}') =
    &  \angle (\overrightarrow{OP_{C}}, \overrightarrow{O{P_{C}}''} ) = \arctan{\frac{\|\overrightarrow{P_{C}{P_{C}}''}\|}{\|\overrightarrow{OP_{C}}\|}} \approx 0,\\
    &\|\overrightarrow{P_{C}{P_{C}}''}\|
            \ll
    \|\overrightarrow{OP_{C}}\|
\end{split}$$

![Robustness of VN to depth noise.[]{data-label="fig:VNL noise"}](./Fig/VNL_noise){width="25.00000%"}

Furthermore, we conduct a simple experiment to verify the robustness of our proposed virtual normal against data noise. We create an unit sphere and then add gaussian noise to simulate the ideal noise-free data and the real noisy data (see Fig. \[fig:sn vn robustness sphere\]). We then sample 100K groups points from the noisy surface and the ideal one to compute the virtual normal respectively, while 100K points are sampled to compute the surface normal as well. For the gaussian noise, we use different deviations to simulate different noise levels by varying 