首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MeshLab:使用我自己计算的法线渲染obj文件

MeshLab:使用我自己计算的法线渲染obj文件
EN

Stack Overflow用户
提问于 2011-06-29 08:14:37
回答 2查看 3K关注 0票数 6

我正在尝试写一个带有顶点的obj文件。我在我的代码中计算顶点法线,并将其写入此文件。当我尝试在Meshlab中渲染这个文件时,它会正确读取顶点,但当我转到“渲染->显示顶点法线”时,它不会显示我计算的法线。相反,MeshLab会计算自己的法线并显示它们。

我不确定如何才能可视化我计算/写入文件的法线。我想稍后基于我计算的法线应用Meshlab着色器。

为了测试这一点,我创建了一个测试obj文件-

代码语言:javascript
运行
复制
vn 0.517350 0.517350 0.517350
v 0.500000 0.500000 0.500000
vn -0.333333 0.666667 0.666667
v -0.500000 0.500000 0.500000
vn 0.666667 -0.333333 0.666667
v 0.500000 -0.500000 0.500000
vn -0.666667 -0.666667 0.333333
v -0.500000 -0.500000 0.500000
f 1//1 2//2 3//3
f 4//4 3//3 2//2

这只是一个正方形。现在,如果我改变这个文件中的法线值,当我选择‘渲染->显示顶点法线’时,它仍然显示它自己的顶点法线。如何才能拥有自己的法线并应用着色器来处理我计算的法线??请帮帮忙。

谢谢!!

EN

回答 2

Stack Overflow用户

发布于 2019-11-13 01:20:32

看起来比今天(2019)这个问题在meshlab中解决了。

在下图中,您可以看到您的原始.obj文件(左),以及一个更改法线方向的修改版本(右)。常态正如预期的那样发生了变化。

票数 1
EN

Stack Overflow用户

发布于 2015-05-24 16:15:20

并不是所有的OBJ进口商都尊重法线。我发现了这个老bug,关于MeshLab如何忽略OBJ中的法线的问题似乎仍然存在:http://sourceforge.net/p/meshlab/bugs/70/

你可能做的每件事都是正确的,但问题可能不在你这一边。

在处理网格交换时,由于不同软件的支持程度不同,这可能会变得非常麻烦,如果你要做很多事情,有多个3D应用程序来测试你导出的数据,这是很方便的。然后,您可以更快地找出问题出在您这一边还是他们那一边。

如果您绝对需要对象在损坏的导入器上正确显示,并且不能使用其他格式,则一个解决方法是手动取消(复制)顶点的焊接,以便为您提供这些锐利的折痕/硬边。这不会给你提供像任意指定法线那样多的自由度,但它将允许你保留那些不连续的边界,其中区域不应该被平滑插值,而是具有折痕。

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

https://stackoverflow.com/questions/6514478

复制
相关文章

相似问题

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