gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:42:26 25 4
gpt4 key购买 nike

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

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

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

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

这只是一个正方形。现在,如果我更改此文件中的法线值,当我选择“渲染->显示顶点法线”时,它仍然显示自己的顶点法线。我怎样才能拥有自己的法线并应用适用于我的计算法线的着色器?请帮忙。

谢谢!!

最佳答案

并非所有 OBJ 进口商都遵守常态。我发现这个旧错误似乎仍然存在,关于 MeshLab 如何忽略 OBJ 中的法线:http://sourceforge.net/p/meshlab/bugs/70/

您可能一切都做对了,但问题可能不在您这边。

在处理网格交换时,由于各种软件的支持级别不同,网格交换可能会变得非常棘手,如果您经常这样做,那么使用多个 3D 应用程序来测试导出的数据会很方便。然后您可以更快地确定问题是在您这边还是他们这边。

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

关于graphics - MeshLab:使用我自己计算的法线渲染 obj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514478/

25 4 0
文章推荐: .net-4.0 - 为什么协变类型参数不允许我编写 [List lst = new List()]?