导入参数
参数¶
assimp提供的选项。具体的用户看具体参数的备注
// -ptv --pretransform-vertices ?
// -gsn --gen-smooth-normals 为网格中的所有顶点生成平滑法线。
// -gn --gen-normals 为所有网格的所有面生成法线。
// -cts --calc-tangent-space 自动计算切线和副法线
// -jiv --join-identical-vertices 自动合并相同的顶点
// -rrm --remove-redundant-materials 搜索多余的/没有参考的材料并删除它们。
// -fd --find-degenerates 这一步搜索所有网格的退化原语,并将它们转换为适当的线或点。
// -slm --split-large-meshes 将大的网格分割成较小的子网格。
// -lbw --limit-bone-weights 将同时影响单个顶点的骨骼数量限制为最大值。
// -vds --validate-data-structure 验证导入的场景数据结构。
*确保所有索引有效,所有动画和
// -icl --improve-cache-locality 重新排序三角形以获得更好的顶点缓存局部性。
// -sbpt --sort-by-ptype 将不同图元放置到不同的模型中去,图片类型可能是点、直线、三角形等
// -lh --convert-to-lh 输出数据匹配Direct3D的约定:左旋几何,UV坐标的左上角原点,最后顺时针面顺序,适合CCW剔除。
// -fuv --flip-uv 这一步沿着y轴翻转所有的UV坐标,并相应地调整材质设置和bitangents。
// -fwo --flip-winding-order ?顺时针
// -tuv --transform-uv-coords ?
// -guv --gen-uvcoords ?
// -fid --find-invalid-data 这一步搜索所有网格的无效数据,如零法向量或无效的UV cocord,并删除/修复它们。这是为了消除一些常见的导出错误。
// -fixn --fix normals 这一步试图确定哪些网格的法向量是面向内的,并将它们反转。
// -tri --triangulate
// -fi --find-instances 这个步骤搜索重复的网格,并用对第一个网格的引用替换它们。
// -og --optimize-graph ?
// -om --optimize-meshes 减少网格数量的后处理步骤。
// -db --debone
// -sbc --split-by-bone-count
// -gs --global-scale 这一步将执行模型的全局scale。
//
// -c<file> --config-file=<file>
默认参数¶
// use default configurations
if (!strncmp( param + ofs, "full", 4 )) {
fill.ppFlags |= aiProcessPreset_TargetRealtime_MaxQuality;
} else if (!strncmp( param + ofs, "default", 7 )) {
fill.ppFlags |= aiProcessPreset_TargetRealtime_Quality;
} else if (! strncmp( param +ofs,"fast",4)) {
fill.ppFlags |= aiProcessPreset_TargetRealtime_Fast;
}