《高效学习OpenGL》 之 纹理函数(设置绘图模式) glTexEnv()

设置当前的纹理函数:

   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()指定纹理图像时,这个函数的第三个参数就是为每个纹理图元选择的内部格式(见图):

《高效学习OpenGL》 之 纹理函数(设置绘图模式) glTexEnv()_第1张图片

通过glTexEnv设置的param参数将与glTexImage*D()的第三个参数混合的计算图:

《高效学习OpenGL》 之 纹理函数(设置绘图模式) glTexEnv()_第2张图片

《高效学习OpenGL》 之 纹理函数(设置绘图模式) glTexEnv()_第3张图片

你可能感兴趣的:(OpenGL,高效学习OpenGL)