菜鸟问:OPENGL RGBA模式生成的纹理
CreatTextures()
{
glGenTextures(1,&texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, FImageWidth, FImageHeight, 0, GL_RGBA, GL_FLOAT, FData);
}
在融合的时候,用drawpixels画出FData的数据是黑白的,代码如下:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA ,GL_ONE );
glDisable(GL_DEPTH_TEST);
glRasterPos3i (-FImageWidth/2, -FImageHeight/2,0);
glDrawPixels(FImageWidth, FImageHeight, GL_BGRA_EXT, GL_FLOAT, FData);
为什么以纹理贴图的方式,是彩色的?代码如下:
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texture);
glBegin(GL_QUADS);
glNormal3f( 0.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-180, -180, 0);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-180, 180, 0);
glTexCoord2f(1.0f, 1.0f); glVertex3f(180, 180, 0);
glTexCoord2f(0.0f, 1.0f); glVertex3f(180, -180, 0);
glEnd();