在尝试解析wavefront .obj文件时,我想到了两种方法:
IMO,选项1将非常耗费内存,但要快得多.由于选项2涉及大量文件读取(并且因为大多数对象中的顶点数量变得非常大),因此速度会慢得多,但记忆密集程度会降低.
问题是:比较内存和速度之间的权衡,哪个选项更适合普通计算机?而且,还有另一种方法吗?
我计划使用OpenGL和GLFW来渲染对象.
IMO,选项1将非常耗费内存,但速度要快得多.
无论如何,你必须将这些顶点放入内存中.但是不需要2D阵列,BTW会导致两个指针间接,因此会受到重大影响.只需使用简单std::vector<Vertex>的数据,矢量索引就是随附的面部列表的索引.
编辑由于评论
class Vertex
{
union { struct { float x, y, z }; float pos[3] };
union { struct { float nx, ny, nz }; float normal[3] };
union { struct { float s, t }; float pos[2] };
Vertex &operator=();
}
std::vector<Vertex>;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9271 次 |
| 最近记录: |