计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现

计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现

ID:35648456

大小:8.08 MB

页数:13页

时间:2019-04-06

计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现_第1页
计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现_第2页
计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现_第3页
计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现_第4页
计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现_第5页
资源描述:

《计算机图形学课程论文--基于OPENGL的纹理贴图以其漫游的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程论文课程名称:计算机图形学专业班级:计科班学生姓名:学号:指导教师:课程设计时间:2011年6月10日1课程题目:基于OPENGL的纹理贴图以其漫游的实现2算法设计:2.1几何图元与场景表达如上的形式,绘制图形在glbegin和glend这两个函数之间,而绘制的几何图元的方式也是多种多样的。上面的分别是画多边形和画点,这是最基本的绘图的方式,当然了,OPENGL有一个辅助的函数库GLUT。它里面有一些基本的图形的绘制函数2.2OpenGL中的变换这是一个非常重要的内容,一定要理解和掌握它,这样在以后就不会出现莫名奇妙的错误了,我在学这个编程的时候,就是会经常出现不能显

2、示我们所绘制图形的问题,这个过程花费了我好多的时间来解决。这是将现实世界的东西转换到计算机所能表达非常重要的一步。它包括模型与视点的变换(移,旋转,及比例变换)、投影变换(平行投影,透视投影)2.3OpenGL中的照明OpenGL中使用简单光照模型实现顶点颜色的计算,然后通过着色模式的设置,决定内部象素颜色确定方式。OpenGL中有两种颜色着色模式:单一着色(flat)和渐变着色(smooth)。通过函数glShadeModel(GLenummode);进行设置。其中:mode参数为GL_FLAT或GL_SMOOTH,分别表示使用单一着色模式和渐变颜色模式。在使用渐变颜色

3、模式时,OpenGL使用Gouraud模型对颜色进行插值:线段内部使用顶点颜色的线性插值,多边形内部使用顶点颜色的双线性插值。1)启动和关闭光照glEnable(GL_LIGHTING);//之后使用光照模型计算顶点颜色。glDisable(GL_LIGHTING);//之后顶点颜色为当前颜色,当前颜色可以通过glColor*函数指定。(2)启动和关闭特定光源glEnable(GL_LIGHTi);glDisable(GL_LIGHTi);其中:GL_LIGHTi为GL_LIGHT0、GL_LIGHT1、...、GL_LIGHT7、…,光源的最大数目为GL_MAX_LIG

4、HTS,但至少有8个可用光源2.4OPENGL中使用纹理这个内容是我研究的重点,在OPENGL的学习过程中这方面的内容一直伴随着,这也是最基本的实现三维可视化的过程。物体的表面细节称为纹理(Texture)。OpenGL使用图像表示纹理,这也是最常用的表示纹理的方式。二维纹理用得最多,一维和三维纹理也各有其用途。那么生成纹理的操作步骤是什么呢?下面我将要介绍它(1)图像准备:既可以在程序中生成图像,也可以读取图像文件。(2)生成纹理号:适用于多个纹理反复切换时,一个纹理时不需要。(3)设置当前纹理:切换纹理,又称为纹理绑定。(4)定义纹理:指定当前纹理的图像。(5)设置纹

5、理参数:指定纹理的重叠方式和插值方式。(6)设置纹理环境参数:决定怎样使用纹理颜色,例如是否与光照色合成。(7)启动纹理功能,绘制场景,给出顶点的纹理坐标和几何坐标注:纹理坐标可以直接指定,也可以启用自动计算纹理坐标功能。(8)退出前删除纹理。用到的函数:1)生成纹理号的函数:VoidglGenTextures(GLsizein,GLuint*textures);同时生成多个纹理号。(2)设置当前纹理:voidglBindTexture(GLenumtarget,GLuinttexture);target:GL_TEXTURE_1D、GL_TEXTURE_2Dtextur

6、e:纹理号(3)删除纹理voidglDeleteTextures(GLsizein,GLuint*textures);注:删除的纹理必须存在4)定义纹理voidglTexImage2D(GLenumtarget,GLintlevel,GLintcomponents,GLsizeiwidth,glsizeiheight,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixels);voidglTexImage1D(GLenumtarget,GLintlevel,GLintcomponents,GLsizeiwidth,GLi

7、ntborder,GLenumformat,GLenumtype,constGLvoid*pixels);说明:1)target:纹理维数。例如:GL_TEXTURE_1D、GL_TEXTURE_2D2)level:纹理层次,0层表示最底层纹理(使用原始图像)3)components:1-4的整数,说明象素有几个分量4)width、height:象素宽度和高度,一定是二次幂+两个边界宽度5)border:边界宽度,0或14)format:说明各个分量的意义,例如:GL_RGB5)type:每个分量的类型,例如:GL_UNSIG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。