2

我引入的模型通常没有法线和切线。在aiProcess_CalcTangentSpace的评论中看到这一行,我感到很失望:

“如果网格没有法线,则什么都不做。”</p>

这里的问题是,我的网格确实有法线,但它们只是由 aiProcess_GenSmoothNormals 计算的。

有没有办法在生成法线后进行额外的后期处理?我绝对可以自己编写代码来生成切线,但我比我更信任 assimp 团队的切线生成技能。

更新:我发现您可以通过使用导入器的成员函数“ApplyPostProcessing(UINT flags)”来应用额外的后期处理步骤

问题是尽管这样做了,我的模型仍然没有切线或双切线。这张截图很容易地总结了这个问题: 尽管存在法线,但未计算切线

感谢您阅读

4

1 回答 1

1

更新:不,由于某种原因,额外的后期处理没有产生切线......这里发生了一些可疑的事情。

哎呀,我仔细阅读了手册并很快回答了我自己的问题。

看起来在生成法线之后运行这个函数可以解决问题: ASSIMP_API const aiScene* aiApplyPostProcessing ( const aiScene * pScene,
unsigned int pFlags)

http://assimp.sourceforge.net/lib_html/cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d

于 2013-07-22T20:18:01.880 回答