我有一个三维网格在一个obj文件,这是一个三维人脸重建算法的输出。问题是该算法沿第二轴反射人脸,即每个顶点v x y z都在“现实”v -x y z中。
我尝试了一个很明显的东西来倒置所有的x,它起作用了,但是现在网格有了倒转的脸方向。我能够通过在Filters -> Normals, Curvatures and Orientation -> Invert Faces Orientation中应用MeshLab来修复这个问题。
问题是,我无法理解这个选项的作用,或者我最初的修复方法为什么行不通,你能解释一下吗?另外,你能解释一下wavefront.obj格式中的法线几何表示什么吗?
发布于 2019-10-24 09:45:11
如果你倒置以"v“开头的线中的坐标X符号,你也需要改变"vn”线中X的符号,它代表网格的法向逐顶点。您可以很容易地使用meshlab过滤器“每个顶点法线函数”和表达式:
nx = -nx
ny = ny
nz = nz无论如何,“算法沿第二轴反射脸部”听起来很奇怪。最可能不是改变X坐标的符号,而是旋转你的网格90度,因为你的程序被配置为"Z轴向上“而不是"Y轴向上”。这个旋转将改变一个坐标的符号,也将交换你的坐标的值。我建议修改这一点,并理解您的算法是"X镜像“还是”重新定位“输入网格。
https://stackoverflow.com/questions/58535803
复制相似问题