c++ - 关于3D模型加载的问题

标签 c++ performance 3d

当使用像 cstdio 这样的库处理 3D 模型文件时,将整个文件加载到具有文件长度大小的新缓冲区,然后处理它而不是频繁使用文件数据访问函数不是更快吗?

我的问题既适用于二进制格式,也适用于文本模型格式,但尤其适用于通常通过逐行访问文件的函数完成读取的第二种格式(例如 Wavefront .OBJ)。

缺点/优点? 另外,我知道更大的内存复杂性,还有其他负面影响吗?

最佳答案

一个不利的方面是,如果这是单线程的,则在将整个文件读入内存时 CPU 不执行任何操作,这甚至可能会延长加载时间。

然而,在任何情况下,速度的增益或损失都可以忽略不计。

同样,不是直接解决问题而是:如果处理时间是一个大问题,您可以编写一个应用程序来处理模型并将其存储在一种格式中,这种格式可以是 mmap ed 或某种形式的顶点缓冲区。

编辑:我不太确定映射此类数据的建议有多好,有人可以对此发表评论吗?

关于c++ - 关于3D模型加载的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302099/

相关文章:

c++ - 如何在指向const地址的同时声明成员函数const指针

c++ - OpenGL - 超出 gpu 内存,可能的情况

c++ - 从 STL 优先队列中搜索/删除?

c++ - 玛雅编程 : Separating attributes into sections in the attribute editor

c++ - 在模板实例化期间,文字值不被视为常量表达式

performance - 如何为 GUI 进行 OpenGL 实时文本渲染?

javascript - HTML5/JS - 启动多个 webworker

performance - 最小化请求数量与浏览器缓存和多个域

r - 将 xyz 给定的平面转换为 R 中的 xy 坐标(3D 到 2D)

javascript - Mapbox GL JS 建筑物选择