【发布时间】:2010-06-11 20:01:42
【问题描述】:
glBindTexture(GL_TEXTURE_2D, texidx);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_FLOAT, texdata);
如果texidx == 0 一切正常,但如果texidx != 0 或使用glGenTexture(&texidx,1) 生成,则最终渲染只显示纯色(最后一个glColor)而不是纹理。我已经调试了一天多(glGetError 显示没有问题)并且已经没有想法了。有什么想法吗?我可以根据需要发布更多代码。
设置代码:
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glDisable(GL_LIGHTING);
glClearColor(0.5,0.5,0.5,0);
glClearDepth(1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_COLOR_MATERIAL);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
【问题讨论】: