最近我得到了一个三角形网格,但网格上三角形的法线方向是 不一致。有没有算法转换法线一致? 它说,从一本书 “通常会传播法线的方向 沿着相邻补丁之间的最小生成树 预处理步骤或在输入遍历期间隐式[Hoppe 等。 92]。
这是否意味着使法线保持一致并不容易?
此致 慢跑
答案 0 :(得分:3)
确实不容易。有很多关于这个主题的论文。这一切开始的原始论文是:
小时。 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,pp.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或激光扫描仪)获得的,则可以通过在需要时翻转法线来使法线的方向与视点一致。但是如果你处理整个对象的模型,那么就需要一些正常的传播算法。