计算机图形学(OpenGL)

上传人:ji****72 文档编号:51937604 上传时间:2018-08-17 格式:PPT 页数:110 大小:3.53MB
返回 下载 相关 举报
计算机图形学(OpenGL)_第1页
第1页 / 共110页
计算机图形学(OpenGL)_第2页
第2页 / 共110页
计算机图形学(OpenGL)_第3页
第3页 / 共110页
计算机图形学(OpenGL)_第4页
第4页 / 共110页
计算机图形学(OpenGL)_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《计算机图形学(OpenGL)》由会员分享,可在线阅读,更多相关《计算机图形学(OpenGL)(110页珍藏版)》请在金锄头文库上搜索。

1、计算机图形学主讲人:陈学工(tel:07318836763 email:)1教材和参考书 教材 计算机图形学,倪明田等,北京大学出版社,2000 年。 参考书 1、OpenGL编程指南(第七版),Dave Shreiner等 (李军等译),机械工业出版社,2010年。 2、计算机图形学(第三版),Donald Hearn,电 子工业出版社,2004年。 3、计算机图形学基础,唐泽圣等,清华大学出版 社,2001年。2本课程的学习内容 1、图形软件包 2、用VC+编写OpenGL程序 3、图形变换 4、图元绘制 5、颜色和光照 6、混合、反走样和雾化 7、显示列表、位图和图像 8、纹理映射 9、

2、复杂图形绘制3一、图形软件包 1、Direct 3D和DirectX DirectX是微软公司的多媒体应用软件包, Direct 3D是其中的一部分。DirectX支持图形 、音响、应用程序安装和设备管理等。 Direct 3D至少支持游戏或其他应用中的12种 3D图形效果处理。4一、图形软件包 2、Heidi Heidi主要应用于CAD和CAM技术中,如 AutoCAD、3D Studio以及3DS MAX。 Heidi是专业性强的软件包,在CAD和CAM 领域应用比较广泛,在其它领域如多媒体或 游戏软件中应用较少。5一、图形软件包 3、OpenGL OpenGL是以SGI公司为首,联合IB

3、M、Intel 等8家公司共同制定的3D图形标准。 OpenGL与硬件无关、独立于操作系统、支 持网络运行。6二、用VC+编写OpenGL程序 1、OpenGL函数库 基本库 基本库是OpenGL的核心函数库。所有OpenGL操作都可用 这些函数来实现。可以在平台之间移植。这些函数以“gl” 为前缀。 实用库 实用库建立在基本库的基础之上,目的是为了减轻使用者 的编程负担。这些函数以“glu”为前缀。 辅助库 提供窗口管理函数、事件处理函数和简单模型制作函数。 这些函数以“aux”为前缀。 Windows专用函数7二、用VC+编写OpenGL程序 2、帧缓存 在OpenGL中,帧缓存由颜色缓存

4、、深度缓 存、模板缓存和累积缓存组成。 颜色缓存:用于存储每个像素点的颜色,包括左 前、(左后、右前、右后)和辅助颜色缓存。 深度缓存:用于存储每个像素点的深度值。 模板缓存:用于将作图限制在屏幕中的某些部分 。 累积缓存:在RGBA模式中,用于将一系列图像 累加成一幅图像。 3、建立OpenGL控制台应用程序(.NET)8三、图形变换 1、投影 void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); 函数功能:用一个正射投影矩阵右乘当前

5、投影矩 阵。 输入参数:裁剪面left,right,bottom,top,zNear,zFar 。 输出参数:无 返回值:无 void glOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);9三、图形变换 正射投影nearfarview directiontopbottomleft right10三、图形变换 正射投影矩阵11三、图形变换 void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);

6、函数功能:设置一个透视投影矩阵。 输入参数:视域的角度fovy,视域宽与高的比率, 视点到近和远裁剪面的距离zNear和zFar。 输出参数:无 返回值:无12三、图形变换 void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); 函数功能:用一个透视投影矩阵右乘当前投影矩 阵。 输入参数:裁剪面left,right,bottom,top,到近和远 裁剪面的距离zNear和zFar。 输出参数:无 返回值:无13三、图形变换 透视投影(

7、glFrustum)nearfarleftrightbottomtopview point14三、图形变换 透视投影(glFrustum)矩阵15三、图形变换 2、视区变换 void glViewport(GLint x, GLint y, GLint width, GLint height); 函数功能:在窗口中定义一个视区。 输入参数:视区左下角坐标(x,y),视区的宽width, 视区的高height。 输出参数:无 返回值:无16三、图形变换 3、裁剪变换 void glClipPlane(GLenum plane,const GLdouble *equation); 函数功能:定义附

8、加裁剪平面。 输入参数: 参数plane表示裁剪平面索引号 GL_CLIP_PLANEi (i取0到到 GL_MAX_CLIP_PLANES-1 之间的整数), 参数 equation表示三维平面方程Ax+By+Cz+D=0的系 数A,B,C和D构成的数组。 输出参数:无 返回值:无17三、图形变换 4、几何变换 void glRotatef,d(TYPE angle, TYPE x, TYPE y, TYPE z); 函数功能:对局部坐标系进行旋转。 输入参数:旋转角度angle,旋转轴方向矢量(x,y,z) 。 输出参数:无 返回值:无18三、图形变换 void glTranslatef,

9、d(TYPE x, TYPE y, TYPE z); 函数功能:对局部坐标系进行平移。 输入参数:在坐标轴方向的平移量x,y和z。 输出参数:无 返回值:无 void glScalef,d(TYPE x, TYPE y, TYPE z); 函数功能:对局部坐标系进行缩放。 输入参数:在坐标轴方向的缩放量x,y和z。 输出参数:无 返回值:无19四、图元绘制 1、图元定义 void glBegin(GLenun mode); 函数功能:定义图元,图元顶点序列开始。 输入:图元类型 输出:无 返回值:无 void glEnd(void); 函数功能:定义图元,图元顶点序列结束。 输入:无 输出:无

10、 返回值:无20四、图元绘制 2、画点 void glPointSize(GLfloat size); 函数功能:定义顶点大小。 输入:顶点大小size,size必须大于0.0,缺省为1.0。 输出:无 返回值:无 void glVertex2,3,4sifdv(TYPE coords); 函数功能:定义顶点。 输入:顶点坐标。 输出:无 返回值:无21四、图元绘制 3、画线 void glLineWidth(GLfloat width); 函数功能:定义线宽。 输入:线宽width,该值必须大于0.0,缺省为1.0。 输出:无 返回值:无 void glLineStipple(GLint f

11、actor,GLushort pattern); 函数功能:定义线模式。 输入:factor表示重复次数(1到255), pattern表示线模式 。 输出:无 返回值:无22四、图元绘制 4、画多边形 void glPolygonMode(GLenum face,GLenum mode); 函数功能:定义多边形模式。 输入:face表示绘制多边形的哪些面(GL_FRONT, GL_BACK, GL_FRONT_AND_BACK),mode表示面模式 (GL_POINT, GL_LINE, GL_FILL)。 输出:无 返回值:无 void glPolygonFace(GLenum mode)

12、; 函数功能:定义多边形的正面。 输入:mode表示多边形的哪个面为正面(GL_CCW, GL_CW)。 输出:无 返回值:无23四、图元绘制 void glCullFace(GLenum mode); 函数功能:剔除多边形的某些面。 输入:mode表示被剔除的面(GL_FRONT, GL_BACK, GL_FRONT_AND_BACK 。 输出:无 返回值:无 void glPolygonStipple(const GLubyte *mask); 函数功能:定义填充模式。 输入:mask指向一个32x32位图。 输出:无 返回值:无24四、图元绘制 5、实例 图元绘制实例:见pointp.c

13、,lines.c和polys.c glBegin(GLenun mode); mode可能的取值有: GL_POINTS; GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP; GL_TRIANGLES, GL_TRIANGLE_STRIP; GL_QUADS, GL_QUAD_STRIP; GL_POLYGON. 在二维投影下,glRectf可以绘制矩形25五、颜色和光照 1、绘图颜色 void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 函数功能:设定清颜色缓冲

14、区颜色值。 void glClear(GLbitfield mask); 函数功能:清除指定的缓冲区。26五、颜色和光照 void glColor3b,f,d,s,i,ub,ui,us(TYPE red, TYPE green, TYPE blue); void glColor4b,f,d,s,i,ub,ui,us(TYPE red, TYPE green, TYPE blue, TYPE alpha); void glColor3b,f,d,s,i,ub,ui,usv(TYPE *v); void glColor4b,f,d,s,i,ub,ui,usv(TYPE *v); 函数功能:指定当前

15、颜色。 void glIndexs,i,f,d(TYPE c); void glIndexs,i,f,dv(TYPE *c); 函数功能:设置当前颜色索引值。27五、颜色和光照 2、阴影模式 void glShadeMode(GLenum mode); 函数功能:设置阴影模式。 输入参数:阴影模式类型mode。mode取值为 GL_FLAT或GL_SMOOTH。当阴影模式为 GL_FLAT时,多边形用一个顶点的颜色进行绘 制;当阴影模式为GL_SMOOTH时,多边形用各 个顶点颜色的插值结果进行绘制。 输出参数:无 返回值:无28五、颜色和光照 3、材质 void glMateriali,f(GLenum face,Glenum pName, TYPE param); void glMateriali,fv(GLenum face,Glenum pName, TYPE *param); 函数功能:定义当前多边形的材质。 输入参数:参数face表示材质应用于多边形的哪个面 (

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号