尝试的优化渲染速度的方法-启动速度

Posted by shensunbo on January 21, 2026

加载模型-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 😭
  • 隐藏的问题:
    • blender在导出时勾选triangulate会导致fbx和blender中的mesh名称不一致😅
    • 直接在blender中triangulate会破坏拓补结构,以后就不好在blender中编辑了😫
    • 建议导出的时候拷贝一份模型文件,避免破坏原始文件
    • 帧率降低了