1

我一直在尝试解析directx .x 文件,而不使用directX API 仅加载模型的几何图形。我第一次尝试使用 C++ 流,但解析一个 800Kb 的文件需要将近 3 秒。所以我尝试对 CI/O 函数做同样的事情,现在大约需要 120 毫秒。问题是使用 DX API 加载相同的文件需要相同或几乎相同的时间,但它还会加载所有内容,而不仅仅是几何。所以我认为我的解析器效率低下,只是加载几何。使用分析器,我注意到大部分时间都花在 fscanf() 上,我用它来解析顶点和索引。我还尝试将每一行放在缓冲区中,然后使用 sscanf,但时间是一样的。我没有使用 STL。关于如何进行更快的解析避免使用 fscanf 的任何建议?请不要' 不要说“使用像 Assimp 这样的另一个库”,因为我想自己这样做。提前致谢。

4

1 回答 1

1

将读取与扫描分开,例如首先将整个文件读入内存(或使用内存映射),然后使用 sscanf 或其他方式进行扫描(boost::spirit,为什么不呢?)

于 2012-08-31T21:20:04.760 回答