glTexEnvf 函数

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

语法

void WINAPI glTexEnvf(
   GLenum  target,
   GLenum  pname,
   GLfloat param
);

parameters

目标

纹理环境。 必须GL_TEXTURE_ENV。

pname

单值纹理环境参数的符号名称。 必须GL_TEXTURE_ENV_MODE。

param

单个符号常量,GL_MODULATE、GL_DECAL、GL_BLEND或GL_REPLACE之一。

返回值

此函数不返回值。

错误代码

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

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

备注

纹理环境指定在对片段进行纹理化时如何解释纹理值。 必须GL_TEXTURE_ENV 目标 参数。 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 - L?) 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

GL_TEXTURE_ENV_MODE默认为 GL_MODULATE。

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

glTexGetEnvfv

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glEnd

glTexImage1D

glTexImage2D

glTexParameter