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 函数可以检索以下错误代码。

名称 含义
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 = (1L - ) 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 + 答?C? undefined${REMOVE}$
Av = 答?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