首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wavefront.obj文件中的法线(vn)代表什么?

wavefront.obj文件中的法线(vn)代表什么?
EN

Stack Overflow用户
提问于 2019-10-24 06:57:10
回答 1查看 1.3K关注 0票数 1

我有一个三维网格在一个obj文件,这是一个三维人脸重建算法的输出。问题是该算法沿第二轴反射人脸,即每个顶点v x y z都在“现实”v -x y z中。

我尝试了一个很明显的东西来倒置所有的x,它起作用了,但是现在网格有了倒转的脸方向。我能够通过在Filters -> Normals, Curvatures and Orientation -> Invert Faces Orientation中应用MeshLab来修复这个问题。

问题是,我无法理解这个选项的作用,或者我最初的修复方法为什么行不通,你能解释一下吗?另外,你能解释一下wavefront.obj格式中的法线几何表示什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 09:45:11

如果你倒置以"v“开头的线中的坐标X符号,你也需要改变"vn”线中X的符号,它代表网格的法向逐顶点。您可以很容易地使用meshlab过滤器“每个顶点法线函数”和表达式:

代码语言:javascript
复制
nx = -nx
ny = ny
nz = nz

无论如何,“算法沿第二轴反射脸部”听起来很奇怪。最可能不是改变X坐标的符号,而是旋转你的网格90度,因为你的程序被配置为"Z轴向上“而不是"Y轴向上”。这个旋转将改变一个坐标的符号,也将交换你的坐标的值。我建议修改这一点,并理解您的算法是"X镜像“还是”重新定位“输入网格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58535803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档