glTexEnviv 函数

glTexEnviv 函数设置纹理环境参数。

语法

void WINAPI glTexEnviv(
         GLenum target,
         GLenum pname,
   const GLint  *params
);

参数

目标

纹理环境。 必须GL_TEXTURE_ENV。

pname

单值纹理环境参数的符号名称。 接受的值是GL_TEXTURE_ENV_MODE和GL_TEXTURE_ENV_COLOR。

params

指向参数数组的指针:单个符号常量或 RGBA 颜色。

返回值

此函数不返回值。

错误代码

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

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

备注

纹理环境指定在对片段进行纹理化时如何解释纹理值。 目标参数必须GL_TEXTURE_ENV。 pname 参数可以是GL_TEXTURE_ENV_MODE或GL_TEXTURE_ENV_COLOR。

如果 pname 为GL_TEXTURE_ENV_MODE,则 参数 (或指向) 纹理函数的符号名称。 定义了三个纹理函数:GL_MODULATE、GL_DECAL和GL_BLEND。

纹理函数使用应用于片段的纹理图像值作用于要纹理化的片段, (见 glTexParameter) 并为该片段生成 RGBA 颜色。 下表显示了如何为可以选择的三个纹理函数中的每一个生成 RGBA 颜色。 C 是 RGB) (颜色值的三倍, A 是关联的 alpha 值。 从纹理图像中提取的 RGBA 值在 [0, 1] 范围内。 下标 f 表示传入片段,下标 t 表示纹理图像,下标 c 表示纹理环境颜色,下标 v 指示纹理函数生成的值。

纹理图像每个纹理元素最多可以有四个组件, (查看 glTexImage1DglTexImage2D) 。 在单组件映像中,Lt 指示单个组件。 双组件映像使用 L?A? 。 三分量图像只有颜色值 C? 。 四分量图像同时具有颜色值 C? 和 alpha 值 A?

组件数 GL_MODULATE GL_DECAL GL_BLEND
1${REMOVE}$
Cv = 我?Cf undefined${REMOVE}$
Cv = (1 - 我?) Cf + 我?Cc
Av = Af Av = Af
2${REMOVE}$
Cv = 我?Cf undefined${REMOVE}$
Cv = (1 - 我?) Cf + 我?Cc
Av = Af Av = Af
3${REMOVE}$
Cv = C?Cf Cv = C? undefined${REMOVE}$
Av = Af Av = Af
4${REMOVE}$
Cv = C?Cf Cv = (1 - A?) Cf + A?C? undefined${REMOVE}$
Av = A?Af Av = Af

如果 pname 为GL_TEXTURE_ENV_COLOR, 则 params 是指向包含由四个值组成的 RGBA 颜色的数组的指针。 整数颜色分量以线性方式解释,使最正整数映射到 1.0,而最负整数映射到 -1.0。 指定值时,这些值将固定到 [0, 1] 范围。 Cc 采用这四个值。

GL_TEXTURE_ENV_MODE默认为 GL_MODULATE,GL_TEXTURE_ENV_COLOR默认为 (0、0、0、0) 。

以下函数检索与 glTexEnviv 相关的信息:

glTexGetEnviv

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glEnd

glTexImage1D

glTexImage2D

glTexParameter