当使用像 cstdio 这样的库处理 3D 模型文件时,将整个文件加载到具有文件长度大小的新缓冲区,然后处理它而不是频繁使用文件数据访问函数不是更快吗?
我的问题既适用于二进制格式,也适用于文本模型格式,但尤其适用于通常通过逐行访问文件的函数完成读取的第二种格式(例如 Wavefront .OBJ)。
缺点/优点? 另外,我知道更大的内存复杂性,还有其他负面影响吗?
最佳答案
一个不利的方面是,如果这是单线程的,则在将整个文件读入内存时 CPU 不执行任何操作,这甚至可能会延长加载时间。
然而,在任何情况下,速度的增益或损失都可以忽略不计。
同样,不是直接解决问题而是:如果处理时间是一个大问题,您可以编写一个应用程序来处理模型并将其存储在一种格式中,这种格式可以是 mmap ed 或某种形式的顶点缓冲区。
编辑:我不太确定映射此类数据的建议有多好,有人可以对此发表评论吗?
关于c++ - 关于3D模型加载的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302099/