gpt4 book ai didi

c++ - 在 obj 文件中保存顶点法线

转载 作者:行者123 更新时间:2023-11-30 05:25:19 25 4
gpt4 key购买 nike

我是编程图形方面的新手,我必须在我大学的一个项目中显示 3D 人脸。对于闪电和阴影之类的东西,我需要顶点法线,但由于某些原因,它们在我使用的几个目标文件中都丢失了。几天来我一直在谷歌搜索这个话题,所以你们(几乎)是我最后的希望:有没有一个工具,我基本上只是把我的 obj 文件放进去,它计算丢失的法线并将它们保存在文件中?我知道我可以自己计算法线,但如果我不需要的话会节省很多时间。非常感谢您的帮助!

最佳答案

好吧,如果您已经加载了一个 obj 文件并对其进行了解析,那么您不妨同时计算法线。如果没有顶点法线,只需执行一点 Cross(AB, BC).Normalize() 并将其存储在每个三角形(或四边形)中。如果你想要每个顶点的法线,你可以平均一个顶点上的所有法线,例如如果一个顶点是 5 个三角形的一部分,则将 5 条法线添加到该顶点,然后除以 5,这样每个顶点就有一条法线。可能需要额外的中间数据结构,但应该足够简单。

如果您被允许使用库,ASSIMP 是我用来将各种文件格式解析为统一格式的库。他们可能会为您计算法线。但由于这是针对大学图形类(class)的,因此您可能应该自己完成这项工作。

关于c++ - 在 obj 文件中保存顶点法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com