rkd*_*rkd 6 3d graphics mesh normals meshlab
我正在尝试用顶点编写一个obj文件.我在我的代码中计算顶点法线并写入此文件.当我尝试在Meshlab中渲染这个文件时,它正确地读取顶点,但是当我转到'Render-> Show vertex normals'时,它没有显示我计算的法线.相反,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
Run Code Online (Sandbox Code Playgroud)
这只是一个方格.现在,如果我更改此文件中的正常值,当我选择"渲染 - >显示顶点法线"时,它仍会显示自己的顶点法线.我如何拥有自己的法线并应用适用于我的计算法线的着色器?请帮忙.
谢谢!!
小智 1
并非所有 OBJ 进口商都遵守常态。我发现这个旧错误似乎仍然存在,关于 MeshLab 如何忽略 OBJ 中的法线:http://sourceforge.net/p/meshlab/bugs/70/
您可能一切都做对了,但问题可能不在您这边。
在处理网格交换时,由于各种软件的支持级别不同,网格交换可能会变得非常棘手,如果您经常这样做,那么使用多个 3D 应用程序来测试导出的数据会很方便。然后你可以更快地确定问题是在你这边还是他们那边。
如果您绝对需要对象在损坏的导入器上正确显示并且无法使用其他格式,则一种解决方法是手动取消焊接(复制)顶点以提供那些尖锐的折痕/硬边缘。这不会为您提供与任意指定法线一样多的自由度,但它允许您保留那些不连续的边界,其中区域不应平滑插值,而应有折痕。