glTexParameterf 函数

设置纹理参数。

语法

void WINAPI glTexParameterf(
   GLenum  target,
   GLenum  pname,
   GLfloat 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 的维度为 1x2l1 或 2k1x1,直到最终的 mipmap(其维度为 1x1)。 Mipmap 是使用 glTexImage1DglTexImage2D 和指示 mipmap 顺序的详细信息级别参数定义的。 级别 0 是原始纹理;level bold max (n, m) 是最终的 1x1 mipmap。
GL_TEXTURE_MAG_FILTER
当纹理化的像素映射到小于或等于一个纹理元素的区域时,将使用纹理放大函数。 它将纹理放大函数设置为 GL_NEAREST 或 GL_LINEAR。
GL_TEXTURE_WRAP_S
将纹理坐标 的 wrap 参数设置为 GL_CLAMP 或 GL_REPEAT。 GL_CLAMP会导致 将 坐标固定到 [0,1] 范围,并且有助于防止在将单个图像映射到对象时包装项目。 GL_REPEAT会导致忽略坐标的整数部分;OpenGL 仅使用小数部分,从而创建重复模式。 仅当包装设置为“GL_CLAMP”时,才访问边框纹理元素。 最初,GL_TEXTURE_WRAP_S 设置为 GL_REPEAT。
GL_TEXTURE_WRAP_T
将纹理坐标 t 的 wrap 参数设置为 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 顺序,或者定义的纹理图像少于所需的纹理图像,或者纹理图像集具有不同的纹理组件数量,则就像禁用了纹理映射一样。 线性筛选仅在二维纹理中访问四个最接近的纹理元素。 在一维纹理中,线性筛选访问两个最接近的纹理元素。 以下函数检索与 glTexParameterfglTexParameteriglTexParameterfvglTexParameteriv 相关的信息。

要求

要求
最低受支持的客户端
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