编辑: 笔墨随风 | 2013-01-08 |
/ /顶点索引 ・
4 8 ・ 物探化探计算技术 29卷int facets[
90 ];
/ /存面片数组 int facetsNum;
/ /面片数 int edges[
60 ];
/ /存顶点数组 int edgesNum;
/ /顶点数 };
/ /颜色结构体定义 struct ColorStruct { int index;
/ /颜色索引 GLfloat ra, ga, ba;
/ /环境光的各分量 GLfloat rd, gd, bd, ad;
/ /漫反射光的各分量 GLfloat rs, gs, bs;
/ /镜面反射光的各分量 GLfloat spec;
/ /镜面反射光的强度 };
/ /材质描述结构体 structMaterialColor { char name[
100 ];
GLfloat ra, ga, ba;
/ /环境光的各分量 GLfloat rd, gd, bd, ad;
/ /漫反射光的各分量 GLfloat rs, gs, bs;
/ /镜面反射光的各分量 GLfloat spec;
/ /镜面反射光的强度 };
/ /模型描述结构体 structModelContext { int facetCount;
/ /面的数量 int triangleFlag;
/ /三角形标注 Vertex vertexL ist[VERTEX_MAX ];
/ /模型中的顶点列表 int vertexCount;
/ /顶点数量 Vertex lineL ist[L I NE_MAX ];
/ /线中的顶点数组 int lineCount;
/ /顶点数量 Vertex lineStripL ist[L I NE_STR IP_MAX ];
int lineStripCount;
int edgeList[ EDGE_MAX ] [
2 ];
/ /边界列表 int edgeCount;
/ /边界数 Vertex objVertexList[OBJ_VERTEX_MAX ];
/ /OBJ文件中的顶点 int ovCount;
/ /顶点序数 int onCount;
/ /法向量序数 ColorStruct colorList[ COLOR_MAX ];
/ /模型中的颜色列表 int colorCount;
/ /颜色数 …… };
程序中定义了一个全局变量 : ModelContext3 model.又实现了一个类 ,将OBJ文件的内容读入 到全局变量中.在该类中定义了一些读入函数 void readL ineData (char
3 FileName) ;
/ /读入线数据 void readObjData ( char
3 FileName) ;
/ /读其它对象数据 FI LE
3 fileOpen ( const char
3 filename, const char
3 mode) ;
/ /打开文件 MaterialColor
3 readMaterials( char
3 FileName) ;
/ /读材质 获取了全局变量后 ,就可以在视图类中绘制所 得到的对象模型 ,然后对模型进行操作和交互式处 理.图 1是读入一个 OBJ文件的效果图. 图1读入 OBJ文件后的效果图 Fig .
1 Effect map after reading OJB files ・
5 8 ・ 1期 黎华等 : 几种三维模型文件在 OpenGL中的输入与处理
3 其它三维格式文件的输入和处理 这里介绍一种网络上比较流行的三维数据格 式WRL文件在 OpenGL 中的输入与处理.WRL 文件资源非常........