glTexEnvf 函数
glTexEnvf 函数设置纹理环境参数。
void WINAPI glTexEnvf(
GLenum target,
GLenum pname,
GLfloat param
);
-
目标
-
纹理环境。 必须GL_TEXTURE_ENV。
-
pname
-
单值纹理环境参数的符号名称。 必须GL_TEXTURE_ENV_MODE。
-
param
-
单个符号常量,GL_MODULATE、GL_DECAL、GL_BLEND或GL_REPLACE之一。
此函数不返回值。
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
target 或 pname 不是已接受的已定义值之一,或者 当参数 应具有基于 pname) 的值 (定义的常量值时,则没有。 |
|
函数是在 对 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 表示纹理函数生成的值。
纹理图像每个纹理元素最多可以有四个组件, (请参阅 glTexImage1D 和 glTexImage2D) 。 在单组件映像中,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 相关的信息:
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|