OpenGL图形编程5雾与显示列表(陈永强).ppt
1,OpenGL图形编程,武汉纺织大学数学与计算机学院,授课教师:陈永强 教授,5.雾与显示列表,5.1雾5.2显示列表,5.1雾,雾效果 随着视点距离的增大,物体变得愈来愈模糊。,5.1雾,1.启用与关闭雾:启用 glEnable(GL_FOG)关闭 glDisable(GL_FOG),5.1雾,2.设置雾属性void glFogifv(GLenum pname,TYPE param);雾效混合因子f GL_EXP GL_EXP2 GL_LINEAR,5.1雾,3.雾坐标Z:视点与片元之间的距离。默认情况下,Z自动计算产生。也可设置顶点的雾坐标 void glFogCoordfdv(TYPE z);,5.1雾,例子红皮书fog.c fogcoord.c,5.2显示列表,适用场合矩阵操作光栅位图与图像光照、材质和光照模型纹理,9,5.2显示列表,显示列表的创建void glNewList(GLuint listID,GLenum listMode);参数listID为一个不为0的正整数索引值。参数listMode取值GL_COMPILE或GL_COMPILE_AND_EXECUTE。,5.2显示列表,显示列表的创建如:glNewList(listID,listMode);glutSolidCube(2.0);glEndList();,5.2显示列表,显示列表的执行单个列表执行 void glCallList(GLuint listID);多个列表执行void glCallLists(GLsizei n,GLenum type,const GLvoid*lists);,12,5.2显示列表,多级显示列表OpenGL支持创建多级显示列表,即在glNewList和glEndLsit函数对之间允许调用glCallList函数来执行其他显示列表。,5.2显示列表,显示列表的删除void glDeleteLists(GLuint listID,GLsizei range);,5.2显示列表,例子红皮书torus.c list.c stroke.c,