我拉的模型往往没有法线和切线。我很失望地看到comments for aiProcess_CalcTangentSpace中的这一行:
“如果网格没有法线,则不执行任何操作。”
这里的问题是,我的网格确实有法线,但它们只是通过计算得出的 aiProcess_GenSmoothNormals。
生成法线后是否有办法进行额外的后期处理?我本可以编写代码来自己生成切线,但是我相信助手团队的切线生成技能比我的更多。
更新: 我发现你可以通过使用Importer的成员函数“ApplyPostProcessing(UINT flags)”来应用额外的后期处理步骤
问题是尽管这样做,我的模型仍然没有切线或bitangents。此屏幕截图非常容易地总结了这个问题:
感谢您阅读
答案 0 :(得分:1)
更新:不,由于某种原因,额外的后期处理没有产生切线......这里发生了一些可疑的事情。
哎呀,我仔细阅读了手册并很快回答了我自己的问题。
看起来像运行此函数之后生成法线就可以了:
ASSIMP_API const aiScene * aiApplyPostProcessing(const aiScene * pScene,
unsigned int pFlags)
http://assimp.sourceforge.net/lib_html/cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d