参考文献:C++读取STL模型文件

1. 前言
上一篇博客介绍了如何读取基于ASCII格式储存的STL三维模型文件,并用OpenGL进行了显示。
由于ASCII文件格式有大量用于标记格式的字符串,例如outer loop、endloop等等,当三角形面片的个数达到数万个,这样的格式会产生大量的无效信息。因此,不少CAD在导出STL模型文件时,都会默认采用二进制格式。
我们再来复习一下二进制格式的STL文件结构:
UINT8//Header//文件头,共80字节,存贮文件名;
UINT32//Numberoftriangles//4个字节的整数描述三角面片数量
//foreachtriangle(每个三角面片中占用50字节)
REAL32[3] //Normalvector//法线矢量,3个4字节浮点数
REAL32[3] //Vertex1//顶点1坐标,3个4字节浮点数
REAL32[3] //Vertex2//顶点2坐标,3个4字节浮点数
REAL32[3] //Vertex3//顶点3坐标,3个4字节浮点数
UINT16//Attributebytecountend//二个字节,文件属性统计
2. 程序
2.1 读入优化(先读入内存缓冲区)
这一次,我们希望能够兼顾二进制格式和ASCII格式的STL文件的读取,并加入一定的读入优化,来提高程序运行的速度。把文件读入内存缓冲区是一种常见的优化方法。
void STL_Read()
{
int stl_i;//STL_Read子函数中的for循环用到的变量
int triangle_num;//三角形面片的个数
long fileSize

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



