3

最近得到一个三角形网格,但是网格上三角形的法线方向不一致。是否有任何算法可以将法线转换为一致?在一本书中,它说 “通常,法线的方向是在预处理步骤中或在输入遍历期间隐式地沿着相邻块之间的最小生成树传播的 [Hoppe et al. 92]。

这是否意味着使法线保持一致并不容易?

问候慢跑

4

1 回答 1

4

这确实不是一件容易的事。有很多关于这个主题的论文。一切开始的原始论文是这样的:

H. Hoppe、T. DeRose、T. Duchamp、J. McDonald 和 W. Stuetzle,“从无组织点重建表面”,SIGGRAPH,1992。该方法本身在 VCG (Meshlab) 和 PCL 库中实现。

最近的一篇论文:J. Liu、J. Cao、X. Liu、J. Wang、X. Wang 和 X. Shi,“Mendable一致的点云方向”,计算机辅助设计,卷。55,第 26-36 页,2014 http://jjcao.weebly.com/uploads/4/5/3/4/4534726/cad14.pdf

该论文的作者提供了一个 Matlab 代码:http: //jjcao-orientation.googlecode.com/svn/trunk/Code/ 该代码比原始 Hoppe 算法慢得多,但结果要好得多,尤其是在困难的情况下,当网格包含尖角和不光滑的边缘。

此外,对一般想法的一个很好的回顾是这个:http: //vmv09.tu-bs.de/downloads/papers/koe09.pdf

如果您知道点云是从特定点(例如,从 Kinect 或激光扫描仪)获得的,则可以通过在需要时翻转法线来使法线的方向与视点一致。但是如果你处理的是整个对象的模型,那么就需要一些正常的传播算法。

于 2014-10-29T14:45:19.100 回答