主要内容从原网站翻译过来:链接 Assimp
数据结构
- 调用 Assimp::Importer::ReadFile,aiImportFile或aiImportFileEx,返回aiScene。作为data的根。
- 默认下,所有的3D数据是右手坐标系下的,和openGl一致。在D3D这种左右坐标系下,设置flag aiProcess_MakeLeftHanded。
- winding-order默认是CCW的,可以设置 aiProcess_FlipWindingOrder to get CW data。
- UV坐标是左下角为原点,使用flag aiProcess_FlipUVs 可改为左上角为原点。
- assimp库里矩阵都是行主序。 opengl的api要求的是列主序, unity也里也是列主序。
Node 层次结构
- scene 由 node的树状结构构成,从scene的root node起,每个node可以有多个child nodes,node相对于parent node有一个transform变换。
- 每个node refer to 一个或多个meshes,meshes列表存储在aiScene,node通过index to refer,因此多个node能refer to 多个mesh。在node里每个refered mesh的instance是相对于node坐标的,需要级联计算得到global坐标。
recursive filter function such as the following ps