OpenGL用不同参数调用glTexEnvf的效果实验

glTexEnvf 函数的声明如下:

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

对于贴了纹理的模型,可以使用 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,XX)来指定纹理贴图和材质混合的方式,从而产生特定的绘制效果。(XX为混合方式参数,OpenGL默认为GL_REPLACE,即只使用纹理)

加载一圆柱体模型(带纹理贴图,材质为全红):
OpenGL用不同参数调用glTexEnvf的效果实验_第1张图片  OpenGL用不同参数调用glTexEnvf的效果实验_第2张图片
 
----------------------------------------------------------------------
(1)XX为GL_REPLACE模式
OpenGL用不同参数调用glTexEnvf的效果实验_第3张图片

(2)XX为GL_BLEND模式
OpenGL用不同参数调用glTexEnvf的效果实验_第4张图片

(3)XX为GL_DECAL模式
OpenGL用不同参数调用glTexEnvf的效果实验_第5张图片

(4)XX为GL_MODULATE模式
OpenGL用不同参数调用glTexEnvf的效果实验_第6张图片

(5)XX为GL_ADD模式
OpenGL用不同参数调用glTexEnvf的效果实验_第7张图片

你可能感兴趣的:(OpenGL用不同参数调用glTexEnvf的效果实验)