- 3
- 0
- 约1.52万字
- 约 29页
- 2018-08-27 发布于湖北
- 举报
基于opengl的三维物傩纹理贴图研究jfqj20mg
基于OpenGL的三维物傩纹理贴图研究
关键字: OpenGL 纹理贴图 三维物体 纹理贴图是开发三维图形系统的重要一环。本文论述了结舍c语言与OpenGL实现三维物体纹理贴图的思路与方法。并通过实例验证了纹理贴图技术在绘制真实感图形中的可行性。
在软件开发过程中,为了能够更好地再现三维图形,常常需要绘制逼真的景物。现实世界中的物体表面往往有着丰富的纹理,因此,要绘制逼真的三维物体,除了对物体进行光照处理外,还需要给物体表面附加上这种纹理特征,使之看起来更真实,这就要用到“纹理贴图”技术。文中将论述在Windows窗口系统下,用C语言和OpenGL实现三维物体的纹理贴图过程,从中可以看到纹理贴图的一般性原理与方法。
1、纹理贴图的概述
纹理贴图技术又称纹理映射技术,是计算机图形学中广泛应用的一项重要技术。传统的几何造型很难描述景物表面的微观细节,而利用纹理图像来描述景物表面各点处的反射属性,可以达到模拟景物表面丰富的纹理细节的目的,从而提高计算机生成图形的真实性。另一方面,采用纹理映射的方法可以大大地简化建模的过程。比如,同是一栋大楼表面。若完全用建模的方法来构造,则需要画出大楼的每一扇门、每一扇窗户;若采用纹理映射,只需建立简单的长方体模型,用拍下的大楼外观图片贴至模型表面即可。相比之下,工作量要小得多。
纹理贴图,从本质上讲,是—个位图图像。在程序中,—个纹理图像就是一个一维或二维数组,存储每一个像素的颜色值(包括R、G、B、A分值,分别存储一个像素的红、绿、蓝、透明度分值)。运用一个纹理贴图,就是把纹理图像根据纹理坐标对应到图元上。比如,现在有一个三角形,顶点坐标分别是Vl、V2、V3,以及一幅纹理图像。现在。我们可以在绘制三角形之前,为顶点VI、V2、V3指定纹理坐标,使每一个顶点的坐标和它的纹理坐标一一对应,如图1所示:
一旦建立起这种对应关系,就可以开启纹理贴图功能,让OPenGL根据顶点的贴图坐标渲染出指定的三角形,如图2所示:
这就是纹理贴图的原理。
2、OpenGL的纹理贴图
纹理映射是将制定图像的一部分映射到允许进行纹理映射的每个图段上。这种映射伴随着使用一幅图像的颜色到某一图段的(s,t,r)坐标所指示的位置上并修改该图段的RGBA颜色。概括地说,使用纹理绘制的一般步骤为:定义纹理贴图、控制纹理、说明纹理贴图方式、定义纹理坐标等。
2.1定义纹理
一般来说,离散法是比较常用的纹理定义方法,其实现函数为:gl_Texlmage2D()
该函数的原型如下:void glTelmage2D(GLenum target,Glint level,GLenum components,GLsizei width,GLsizei height,Glint border,GLenumformat,GLenum type,const GLvoid4pixels)
其中:target指定纹理映射,此处必须是GLTEXTURE2D;Jevel指定纹理图像分辨率的级数,当只有一种分辨率时,level=0;Components是选择用于调整和混合的成分;width和height分别指定纹理图像的宽和高,必须是2n,n为正数;Border为边界的宽度,必须是0和1;format和type分别指定纹理映射的格式和数据类型;Pixels指定一个指针,指向纹理数据在内存中的位置。
2.2控制纹理
纹理图像在映射到物体时会产生许多问题。这些问题主要有纹理图像的纹理怎样对应到屏幕上的像素、怎样通过纹理贴图实现纹理缩放和纹理重复等。其实现函数为glTexParameter(),该函数的原型(以glTexParameterf形式为例)为:void glTexParameterf(GLenum target,GLeHum pname,GIAloat param),其中target参数为目标纹理,pname参数的取值有以下几个:GL_EXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T,而param参数的取值要根据pname而定。
2.3纹理贴图模式
OpenGL用于纹理贴图方式的函数为glTexEnv(),该函数的原型(以glTexEnvf形式为例)为:void glTexEnvf(GLenum target,GLenum pname,GLtloat param),其中target参数必须为GL_TEXTURE_ENV,pname参数必须为GL._TEXTURE ENv—MODE,而参数param为GL._MODULATE、GLDECAL或GL_BLEND。
2.4纹理坐标
纹理坐标
您可能关注的文档
- 基于gsm模块的防火防盗报警系统设计毕业论文设计elvvnrai.doc
- 基于bim的施工过程管理—以北京腾讯大厦总部工程为例yuswowqx.doc
- 基于gsm的粮仓温湿度无线监控系统设计jkoch8qt.docx
- 基于fpga自动售货机sedsp7hw.doc
- 基于java web的在线考试系统的设计与实现毕业设计ixdvqolp.doc
- 基于gsm的家庭防盗报警系统的设计与实现toirh01i.doc
- 基于gsm的粮仓温湿度无线监控系统毕业设计设计de09s30l.doc
- 基于gsm的家庭防盗报警系统的设计与实现本科毕业设计论文wmfe9pbp.doc
- 基于java3d的网络三维技术的设计与实现—免费毕业设计论文kzpt9jov.doc
- 基于java的俄罗斯方块的设计和实现 毕业论文75trnqzk.doc
- 基于pest模型的中国钼业宏观环境分析opgctec9.doc
- 基于oa企业内部管理系统设计与实现 毕业设计2irtzywj.doc
- 基于jsp的网上购物系统设计 学年论文uykfx5f5.doc
- 基于mega16智能小车gps导航系统设计毕业设计z3wqug6o.doc
- 基于pic16f877单片机的变压器温度控制系统设计al5usscu.doc
- 基于pic单片机spi接口的数据采集模块设计abf8z2wf.doc
- 基于matlab的脉冲编码仿真medheupi.doc
- 基于mcgs和plc的机械手控制的设计piv59mdt.doc
- 基于plc三相异步电动机变频设计中英文翻译xpv_apsg.doc
- 基于plc原料自动分选系统控制部分的设计quuwglmg.doc
最近下载
- 恒温箱技术要求.doc VIP
- 钻井液基本知识与钻井液设计.pdf VIP
- GEM3000血气技术参数表.doc VIP
- 晋西机器工业集团有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版新版.docx VIP
- 1-9迷你小数字复制.docx VIP
- 历年成都七中自主招生考试物理试卷及解析.docx VIP
- 《教育学原理(第二版)》全套教学课件.pptx
- 2024年晋西机器工业集团有限责任公司招聘71人公开引进高层次人才笔试参考题库答案题库大全及答案【】.docx VIP
- 2025中国银行业竞争力研究报告.pdf
- Python“PyAutoGUI”的自动化办公脚本编写.docx VIP
原创力文档

文档评论(0)