设置当前的纹理函数:
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
void glTexEnvf (GLenum target, GLenum pname, GLfloat param);
//target必须是GL_TEXTURE_FILTER_CONTROL或GL_TEXTURE_ENV
//如果target是GL_TEXTURE_FILTER_CONTROL,那么pname必须是GL_TEXTURE_LOD_BIAS,param必须是一个浮点值,作为mipmap细节层参数的偏移值使用;
//如果target是GL_TEXTURE_ENV,并且pname是GL_TEXTURE_ENV_MODE,param必须是GL_DECAL,,GL_MODULATE,GL_BLEND,GL_ADD或GL_COMBINE之一,它们表示纹理值应该如何与被处理的片段颜色值进行组合,如果pname是GL_TEXTURE_ENV_COLOR,那么param就是包含了4个浮点值(RGBA)的数组
//如果target是GL_POINT_SPRITE,并且pname是GL_COORD_REPLACE,那么param设置为GL_TRUE可以启用围绕一个点块纹理的坐标进行迭代
glTexImage*D()指定纹理图像时,这个函数的第三个参数就是为每个纹理图元选择的内部格式(见图):
通过glTexEnv设置的param参数将与glTexImage*D()的第三个参数混合的计算图: