|
|
使用ARB_texture_env_combine 进行纹理混合可以将不同的纹理按不同的比例混合在一起,比如你可以用3个纹理(石头、草和沙子)来渲染一座山,在上体的不同部位,设定这三种纹理的不同比例,可以达到很逼真的效果.
这个效果真的很神奇哦!!!! 可是我搞不懂那 一大串的 glTexEnvi 到底在干些什么!
我从网上搜索到如下的代码
典型的代码为:
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB );//前面的纹理单元
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE );//当前的纹理
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_PRIMARY_COLOR_ARB);//基颜色
glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND2_RGB_ARB, GL_SRC_COLOR );//或GL_SRC_ALPHA
哪位能帮忙解释一下这些函数到底干了什么? [em6] [em7] |
|