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 具有维度 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导致忽略坐标的整数部分;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 的正确顺序,或者定义的纹理图像少于所需的纹理图像,或者纹理图像集具有不同的纹理组件数量,则就像禁用纹理映射一样。 线性筛选仅在二维纹理中访问最接近的四个纹理元素。 在 1D 纹理中,线性筛选访问两个最接近的纹理元素。 以下函数检索与 glTexParameterf、glTexParameteriglTexParameterfvglTexParameteriv 相关的信息。

要求

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