加载模型-assimp
- 😫aiProcessPreset_TargetRealtime_Quality,这个配置包含了大量的计算
- aiProcess_CalcTangentSpace:计算切线空间 🔴 高
- aiProcess_JoinIdenticalVertices - 合并重复顶点 🔴 高
- aiProcess_GenSmoothNormals - 生成平滑法线 🟡 中
- …
优化
- 尝试自定义一些配置,去掉不必要的计算
- 在Blender中预计算切线数据,导出时勾选Tangents选项
1 2 3 4
unsigned int flags = aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_ValidateDataStructure;
导出时预计算切线数据时勾选tangent space,但这个只能计算三角形,还需要勾选 triangulate faces选项,结果会导致导出的文件是原来的两三倍
不勾选triangulate faces选项会出现: Mesh ‘Mesh.025’ has polygons with more than 4 vertices, cannot compute/export tangent space for it
- 实际在开发板中的测试结果:
- X86 linux
- previous: 400 ms?
- optimized: 130 ms
- TI QNX
- previous: 2.5s
- optimized: 2s 😭
- X86 linux
- 隐藏的问题:
- blender在导出时勾选triangulate会导致fbx和blender中的mesh名称不一致😅
- 直接在blender中triangulate会破坏拓补结构,以后就不好在blender中编辑了😫
- 建议导出的时候拷贝一份模型文件,避免破坏原始文件
- 帧率降低了