OpenGL纹理贴图没有颜色

baidu_39470047 2017-08-22 11:18:43
使用纹理贴图时没有颜色,显示黑白图,把纹理用bitmap图像输出时颜色显示正常
下面是贴图代码:
GLuint tex;
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D,tex);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
//glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,size,size,0,GL_RGB,GL_FLOAT,_result);

unsigned char *bmp = new unsigned char[size*size*3];
for(int i = 0;i<size*size*3; i++)
{
bmp[i] = (unsigned char)(_result[i]*255);
}
wxImage img(size, size, bmp, true);
img.SaveFile("d:\\abc.bmp", wxBITMAP_TYPE_BMP);

glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,size,size,0,GL_BGR_EXT,GL_UNSIGNED_BYTE,bmp);

delete bmp;



void icfdRender::display_texture()
{
if(_dataset.points.empty() || _dataset.texture == 0) return;

glBindTexture(GL_TEXTURE_2D, _dataset.texture);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);

icfdLICTech::Instance()->Enable(true);
icfdLICTech::Instance()->SetAlpha(0.5);

glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0);
glVertex3fv(_dataset.points[0].coord);
glTexCoord2f(1.0,0.0);
glVertex3fv(_dataset.points[1].coord);
glTexCoord2f(1.0,1.0);
glVertex3fv(_dataset.points[2].coord);
glTexCoord2f(0.0,1.0);
glVertex3fv(_dataset.points[3].coord);
glEnd();

icfdLICTech::Instance()->Enable(false);

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,0);
}
...全文
507 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_39470047 2017-08-22
  • 打赏
  • 举报
回复
问题已解决,着色器的问题

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧