我正在处理有符号/无符号距离字段(SDF/UDF(。我可以使用行进立方体渲染签名距离之外的网格。但是,在无符号距离之外渲染网格也可以使用行进立方体,我想知道为什么?
例如,我知道这篇论文(DUDE:Deep Unsigned Distance Embeddings(,它说无符号距离域可以在行进立方体环境中工作,但据我所知,该算法通过找出立方体的点是在形状的内部还是在形状的外部来发现形状的边界。当使用只有正距离值的无符号距离字段时,这是如何实现的?
如果能解释一下行进立方体算法在无符号距离方面的工作原理,我将不胜感激。
关于行进立方体的实现,我使用了DeepSDF的实现(DeepSDF行进立方体实现(,它本身使用skimage.measure.marching_cubes_lewiner
提前感谢!
行进立方体通过零交叉确定形状的边界,并用符号确定内部/外部状态。如果你翻转符号,外部变为内部,反之亦然——这不会改变边界,因为零交叉点没有改变。
因此,对于无符号距离字段,如果您不关心内部/外部关系,或者您提前知道外部在哪里(例如,相机在外部(,行进立方体将以相同的方式工作。我还没有详细阅读过这篇论文,但他们似乎是从相机开始球体跟踪的——这意味着相机应该在外面,从而解决了距离模糊的问题。
在这里找到一些新的令人兴奋的工作,这些工作正朝着划分UDF的方向发展:https://github.com/cvlab-epfl/MeshUDF