glGenTextures说明
glGenTextures(GLsizei n, GLuint *textures)函数说明
n: 用来生成纹理名字的数量
textures:存储纹理名称数组的第一个元素指针
备注说明:
glGenTextures函数根据纹理参数返回n个纹理名称。纹理名称集合不必是一个连续的整数集合。因此,可能在先前调用的 glGenTextures的时候没有名称集合被返回。产生纹理函数假定目标纹理的面积是由glBindTexture函数限制的。先前调用 glGentTextures产生的纹理名称集不会由后面调用的glGenTextures得到,除非他们首先被glDeleteTextures删除。
你不可以在显示列表中包含glGenTextures。
=====================================================================
什么是纹理映射:
在三维图形中,纹理映射(Texture Mapping)的方法运用得最广,尤其描述具有真实感的物体。比如绘制一面砖墙,就可以使用一幅具有真实感的图像或者照片作为纹理贴到一个矩形上,这样,一面逼真的砖墙就画好了。如果不用纹理映射的方法,这墙上的每一块砖都要作为一个独立的多边形来绘制。另外,纹理映射能够保证在变换多边形时,多边形上的纹理也会随之变化。例如,用透视投影模式观察墙面时,离视点远的墙壁的砖块的尺寸就会缩小,而离视点近的就会大些,这些是符合视觉规律的。此外,纹理映射也被用在其他一些领域。如飞行仿真中常把一大片植被的图像映射到一些大多边形上用以表示地面,或者用大理石、木材等自然物质的图像作为纹理映射到多半形上表示相应的物体。纹理对象通过一个单独的数字来标识。这允许OpenGL硬件能够在内存中保存多个纹理,而不是每次使用的时候再加载它们,从而减少了运算量,提高了速度。
纹理映射是真实感图像制作的一个重要部分,运用它可以方便的制作出极具真实感的图形而不必花过多时间来考虑物体的表面细节。然而纹理加载的过程可能会影响程序运行速度,当纹理图像非常大时,这种情况尤为明显。如何妥善的管理纹理,减少不
必要的开销,是系统优化时必须考虑的一个问题。还好,OpenGL提供了纹理对象对象管理技术来解决上述问题。与显示列表一样,纹理对象通过一个单独的数字来标识。这允许OpenGL硬件能够在内存中保存多个纹理,而不是每次使用的时候再加载它们,从而减少了运算量,提高了速度。以本文为例,使用纹理对象的步骤如下:
第一步:定义纹理对象
coast int TexNumber4;
GLuint mes Texture[TexNumber]; //定义纹理对象数组
第二步:生成纹理对象数组
glGenTextures(TexNumber,m Texture);
第三步:通过使用glBindTexture选择纹理对象,来完成该纹理对象的定义。
glBindTexture(GL TEXTURE 2D,m_Texture[0]);
g1TexImage2D(GL TEXTURE_2D,0,3,mes Texmapl.GetWidthU,mee Texmapl.GetHeight()
,0,GL BGR EXT,GL UNSIGNED BYTE,mse Texmapl.GetDibBitsl'trQ);
第四步:在绘制景物之前通过glBindTexture,为该景物加载相应的纹理。
glBindTexture(GLes TEXTURE_2D,mse Texture[0]);
第五步:在程序结束之前调用glDeleteTextures删除纹理对象。
glDeleteTextures(TexNumber, mee Texture);
这样就完成了全部纹理对象的管理和使用。
分享到:
相关推荐
### OpenGL常用函数详解 #### 一、色彩与透明度设置 **函数名:** `glClearColor` **功能:** 设置清除颜色缓冲时的颜色值。这四个参数分别对应红、绿、蓝、透明度分量。 **语法:** ```c void glClearColor...
### OpenGL常用库函数详解 #### 一、初始化 在OpenGL应用程序开发中,初始化阶段是非常重要的第一步,这一步决定了后续操作的基础环境。 ##### **1.1 glutInit** ```cpp void glutInit(int* argc, char** argv);...
其次,`OpenGL函数查询.doc`是一个Word文档,可能是一个中文版的OpenGL常用函数整理,特别适合初学者或对中国语言更熟悉的开发者。文档中可能对一些最常用和最重要的函数进行了注解,如glBegin和glEnd用于定义图元的...
OpenGL库是用C语言设计的,因此最常用的编程环境是C或C++。通过链接到OpenGL库,开发者可以使用这些函数来创建高性能的图形应用。C++的面向对象特性可以用于封装OpenGL功能,创建更易于管理和复用的类结构。 4. ...
OpenGL是计算机图形学中的一种编程...以上只是OpenGL API函数的一部分,实际的OpenGL库包含更多用于构建复杂图形场景的函数。这些函数共同构成了强大的图形编程工具,允许开发者创建出各种各样的视觉效果和交互式应用。
本资源是一个专门展示OpenGL重要函数功能的演示程序,它通过一个可执行的小工程,帮助用户直观地理解图形变换和其他关键操作的过程。 在OpenGL编程中,图形的创建和修改主要依赖于一系列函数调用。以下是一些重要的...
### OpenGL作图函数详解 OpenGL,作为一套强大的图形库,为开发者提供了绘制复杂三维图形的能力。本文将深入探讨OpenGL在Windows环境下的一些关键函数及其应用场景,尤其是与像素格式相关的功能。 #### 1. 像素...
OpenGL 函数库是计算机图形学中一种常用的图形处理 API,包括核心库、实用库、辅助库、实用工具库、窗口库和扩展函数库等。下面将对这些库进行详细介绍。 一、OpenGL 核心库 核心库包含有 115 个函数,函数名的...
#### 四、其他常用函数 **glNormal**: 设置当前法向量。 - **功能描述**:用于指定当前顶点的法向量,对光照计算至关重要。 **glNormalPointer**: 指定法向量数组的格式。 - **功能描述**:类似glColorPointer,...
opengl常用资料汇总,主要包括opengl函数库资料已经常用函数使用教程!
该文档是对OpenGL的一些常用函数的介绍,其中还包括基于GLUT库的一些函数,窗口,按键
本书主要介绍的是OpenGL的最新版本——OpenGL 1.2版的命令函数。OpenGL主要有三个函数库:GL库...同时,为了说明某些常用函数的使用方法,书中还给出了完整的程序示例,以便读者能够快速掌握这些函数的使用方法。
- **`gllndex`**: 设置当前颜色索引,这是一个早期版本OpenGL中的概念,在现代OpenGL中已经不常用了。 - **`gllndexPointer`**: 定义颜色索引数组,同样是为了提高性能和减少重复代码。 - **`glCOforTableEXT`**: 为...
标题提到的“OpenGL常用的扩展函数库.h及.lib及.dll”正是这样的资源包,包含了一些常用库的头文件、静态库和动态库文件。 1. **glut库**:GLUT,全称“OpenGL Utility Toolkit”,是OpenGL的一个辅助库,提供了一...
它是OpenGL编程的一个常用辅助库,特别适合初学者使用,因为它简化了创建OpenGL上下文和管理窗口过程。 `CopyGlutFiles.exe`可能是一个小程序,用于帮助开发者将必要的GLUT库文件复制到正确的位置,比如系统目录或...
“OpenGL库函数列表.doc”文件则提供了OpenGL函数的详细清单,这是学习和查阅OpenGL函数的重要参考。通常会包括函数名、参数、返回值和简短的描述。例如,`glBegin()` 和 `glEnd()` 用于定义顶点序列,`glColor3f()`...
本手册包含了OpenGL的常用函数,方便用户快速查找并理解各个函数的功能、参数和用法。 OpenGL函数是实现图形绘制、变换、光照、纹理映射等操作的基础。例如,`glBegin()` 和 `glEnd()` 是一对常用的函数,用于定义...