GLM实现了用C语言对OBJ文件的常用操作,用于简单的3D游戏编程应该足够了。3DS MAX,MAYA都可以把模型以OBJ文件格式导出。OBJ文件中包含模型的顶点,面,三角形,法向,纹理坐标等数据,但是其中不包含纹理和材质。材质可以放在OBJ文件中指定一个材质库文件中,使用时材质库文件一般和OBJ文件放在一起。纹理图形就要自己想办法了。
//模型数据结构:
struct GLMmodel{
char* pathname; //模型文件和材质库的路径
char* mtllibname; //材质库名
//模型数据结构:
struct GLMmodel{
char* pathname; //模型文件和材质库的路径
char* mtllibname; //材质库名
GLuint numvertices; //
顶点数
GLfloat* vertices; //储存顶点的向量
GLuint numnormals; //模型法向数
GLfloat* normals; //储存法向的向量
GLfloat* vertices; //储存顶点的向量
GLuint numnormals; //模型法向数
GLfloat* normals; //储存法向的向量
GLuint numtexcoords; //
纹理坐标数
GLfloat* texcoords; //储存纹理坐标的向量
GLfloat* texcoords; //储存纹理坐标的向量
GLuint numfacetnorms; //
规则平面数
GLfloat* facetnorms; //储存规则平面的向量
GLfloat* facetnorms; //储存规则平面的向量
GLuint numtriangles; //
三角形数
GLMtriangle* triangles; //储存三角形的向量
GLMtriangle* triangles; //储存三角形的向量