glTexParameteri 函数

设置纹理参数。

语法

void WINAPI glTexParameteri(
   GLenum target,
   GLenum pname,
   GLint  param
);

参数

目标

目标纹理,必须是GL_TEXTURE_1D或GL_TEXTURE_2D。

pname

单个值纹理参数的符号名称。 pname 中接受以下符号。

含义
GL_TEXTURE_MIN_FILTER
每当纹理绘制的像素映射到大于一个纹理元素的区域时,将使用纹理缩小函数。 有六个定义的缩小函数。 其中两个使用最近的一个或最近的四个纹理元素来计算纹理值。 其他四个使用 mipmap。
mipmap 是一组有序的数组,表示同一图像的分辨率逐渐降低。 如果纹理的维度为 2nx2m,则最大 (n,m) + 1 个 mipmap。 第一个 mipmap 是原始纹理,尺寸为 2nx2m。 每个后续 mipmap 都有维度 2k1x2l1,其中 2kx2l上一个 mipmap 的维度,直到 k = 0 或 l = 0。 此时,后续 mipmap 具有维度 1x2l12k1x1,直到具有维度 1x1 的最终 mipmap。 Mipmap 使用 glTexImage1DglTexImage2D 定义,其中包含指示 mipmap 顺序的详细级别参数。 级别 0 是原始纹理;级别粗体最大 (n,m) 是最终的 1x1 mipmap。
GL_TEXTURE_MAG_FILTER
当纹理像素映射到小于或等于一个纹理元素的区域时,将使用纹理放大函数。 它将纹理放大函数设置为GL_NEAREST或GL_LINEAR。
GL_TEXTURE_WRAP_S
将纹理坐标的包装参数设置为GL_CLAMP或GL_REPEAT。 GL_CLAMP会导致坐标固定到 [0,1] 范围,并且有助于防止将单个图像映射到对象时包装项目。 GL_REPEAT导致忽略 s 坐标的整数部分;OpenGL 仅使用小数部分,从而创建重复模式。 仅当包装设置为GL_CLAMP时,才访问边框纹理元素。 最初,GL_TEXTURE_WRAP_S设置为GL_REPEAT。
GL_TEXTURE_WRAP_T
将纹理坐标 t 的包装参数设置为GL_CLAMP或GL_REPEAT。 请参阅GL_TEXTURE_WRAP_S下的讨论。 最初,GL_TEXTURE_WRAP_T设置为GL_REPEAT

param

pname 的值。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
targetpname 不是接受的已定义值之一, 或者参数应 根据 pname) 的值具有定义的常量值 (且没有。
GL_INVALID_OPERATION
函数在 对 glBegin 的调用和 glEnd 的相应调用之间调用。

备注

纹理映射是一种将图像应用于对象表面的技术,就像图像是贴纸或大写收缩包装一样。 图像是在纹理空间中创建的,其 (st) 坐标系。 纹理是一维或二维图像,以及一组参数,用于确定样本如何派生自图像。

glTexParameter 函数将参数中的值或值分配给指定为 pname 的纹理参数。 目标参数定义目标纹理,GL_TEXTURE_1D或GL_TEXTURE_2D。

由于在缩小过程中采样的纹理元素越多,别名项目就越少。 虽然GL_NEAREST和GL_LINEAR缩小函数的速度可能比其他四个元素快,但它们只采样一个或四个纹理元素以确定要呈现的像素的纹理值,并可以生成图案或杂乱的过渡。 GL_TEXTURE_MIN_FILTER的默认值为GL_NEAREST_MIPMAP_LINEAR。

假设通过使用参数GL_TEXTURE_1D或GL_TEXTURE_2D) 调用 glEnable 并将GL_TEXTURE_MIN_FILTER设置为需要 mipmap 的函数之一, (启用文本。 如果当前定义的纹理图像的维度 (之前调用 glTexImage1DglTexImage2D) 不遵循 mipmap 的正确序列,或者定义的纹理图像少于所需的纹理图像,或者纹理图像集具有不同数量的纹理组件,则就像禁用纹理映射一样。 线性筛选仅访问 2D 纹理中的四个最接近的纹理元素。 在 1-D 纹理中,线性筛选访问两个最近的纹理元素。 以下函数检索与 glTexParameterf、glTexParameteriglTexParameterfvglTexParameteriv 相关的信息:

glGetTexParameter

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glBindTexture

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage2D

glDrawPixels

glEnd

glGetTexParameter

glPixelStore

glPixelTransfer

glPrioritizeTextures

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexSubImage2D