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