[英]Raw textures don't work at all! OpenGL
这是我的加载代码:
GLuint Utils::loadTextureRAW(const char *filename, int width, int height) {
GLuint texture;
char *data;
fstream file(filename, ios::binary | ios::in);
if (!file.good())
return 0;
// allocate buffer
data = static_cast<char*>(malloc(width * height * 4));
// read texture data
file.read(data, width * height * 4);
file.close();
int i;
for (i = 0; i < width * height * 4; ++i) {
cout << static_cast<int>(data[i]) << "|";
}
// allocate a texture name
glGenTextures(1, &texture);
// select our current texture
glBindTexture(GL_TEXTURE_2D, texture);
// select modulate to mix texture with color for shading
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_DECAL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_DECAL);
// when texture area is small, bilinear filter the closest mipmap
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
// when texture area is large, bilinear filter the first mipmap
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// texture should tile
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
// build our texture mipmaps
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
// free buffer
delete data;
return texture; }
这是我的使用代码:
int Object::redraw() {
const float sizex = 0.5f;
const float sizey = 0.5f;
const float sizez = 0.5f;
glTranslatef(-px, -py, -pz);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
glPushMatrix();
//поворачиваем будущий объект объект
//rotating next object
glRotatef(rx, 1.0, 0.0, 0.0);
glRotatef(ry, 0.0, 1.0, 0.0);
glRotatef(rz, 0.0, 0.0, 1.0);
//рисуем
//drawing
glBegin(GL_QUADS);
// FRONT
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-sizex, -sizey, sizez);
glTexCoord2f(sizex , 0.0f);
glVertex3f(sizex, -sizey, sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(sizex, sizey, sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(-sizex, sizey, sizez);
// BACK
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-sizex, -sizey, -sizez);
glTexCoord2f(sizex, 0.0f);
glVertex3f(-sizex, sizey, -sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(sizex, sizey, -sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(sizex, -sizey, -sizez);
// LEFT
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-sizex, -sizey, sizez);
glTexCoord2f(sizex, 0.0f);
glVertex3f(-sizex, sizey, sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(-sizex, sizey, -sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(-sizex, -sizey, -sizez);
// RIGHT
glTexCoord2f(0.0f, 0.0f);
glVertex3f(sizex, -sizey, -sizez);
glTexCoord2f(sizex, 0.0f);
glVertex3f(sizex, sizey, -sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(sizex, sizey, sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(sizex, -sizey, sizez);
// TOP
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-sizex, sizey, sizez);
glTexCoord2f(sizex, 0.0f);
glVertex3f(sizex, sizey, sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(sizex, sizey, -sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(-sizex, sizey, -sizez);
// BOTTOM
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-sizex, -sizey, sizez);
glTexCoord2f(sizex, 0.0f);
glVertex3f(-sizex, -sizey, -sizez);
glTexCoord2f(sizex, sizey);
glVertex3f(sizex, -sizey, -sizez);
glTexCoord2f(0.0f, sizey);
glVertex3f(sizex, -sizey, sizez);
glEnd();
glPopMatrix();
glDisable(GL_TEXTURE_2D); }
这是纹理:
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
编辑:检测到另一个问题 - for (i = 0; i < width * height * 4; ++i) 输出:
1|0|0|0|0|0|0|0|5|0|0|0|0|0|0|0|-128|63|59|20|1|0|0|0|64|9|-108|2|1|0|0|0|1|0|0|0|1|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|-64|27|-78|0|2|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|-128|63|0|0|-128|63|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|-98|70|41|-127|-1|127|0|0|99|-51|56|0|2|0|0|0|0|0|0|0|2|0|0|0|0|-16|117|0|1|0|0|0|0|0|0|0|0|0|0|0|-104|123|115|0|1|0|0|0|0|-16|117|0|1|0|0|0|0|0|0|0|0|0|0|0|64|0|-97|65|0|0|0|0|64|7|-86|34|0|0|0|0|-80|-15|-65|95|-1|127|0|0|-128|117|9|0|2|0|0|0|0|0|0|0|0|0|0|0|-80|52|-108|2|1|0|0|0|0|0|0|0|0|0|0|0|-128|-14|-65|95|-1|127|0|0|-32|-15|-65|95|-1|127|0|0|0|0|0|0|0|0|0|0|32|0|0|0|0|0|0|0|32|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|64|7|0|0|0|0|0|0|-96|110|118|0|1|0|0|0|64|7|0|0|0|0|0|0|-96|110|118|0|1|0|0|0|32|0|0|0|0|0|0|0|80|-13|-65|95|-1|127|0|0|-128|47|8|0|2|0|0|0|-32|-15|-65|95|-1|127|0|0|32|0|0|0|0|0|0|0|-128|-14|-65|95|-1|127|0|0|32|-12|-65|95|-1|127|0|0|64|7|-86|34|0|0|0|0|0|0|0|0|0|0|0|0|-16|28|-108|2|1|0|0|0|2|2|-17|-66|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|3|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|96|0|-97|65|0|0|0|0|0|0|0|0|42|0|0|0|-80|52|-108|2|1|0|0|0|-80|-10|-65|95|0|1|0|0|64|0|0|0|1|0|0|0|-64|45|-63|95|-1|127|0|0|-48|-13|-65|95|-1|127|0|0|3|0|0|0|-1|127|0|0|112|-12|-65|95|-1|127|0|0|73|86|-55|2|1|0|0|0|0|116|17|0|1|0|0|0|105|86|-55|2|1|0|0|0|-72|91|-55|2|1|0|0|0|48|-12|-65|95|-1|127|0|0|6|0|0|0|0|0|0|0|73|86|-55|2|1|0|0|0|-96|-12|-65|95|-1|127|0|0|16|0|0|0|-1|127|0|0|73|86|-55|2|1|0|0|0|5|0|0|0|0|0|0|0|-96|-10|-65|95|-1|127|0|0|64|-13|119|0|1|0|0|0|0|-120|-127|1|1|0|0|0|19|-74|36|92|32|-66|35|74|-96|110|118|0|1|0|0|0|45|0|0|0|0|0|0|0|-112|-11|-65|95|-1|127|0|0|112|-9|-65|95|-1|127|0|0|-64|-43|29|112|-1|127|0|0|-80|-10|-65|95|-1|127|0|0|-128|-11|-65|95|-1|127|0|0|-41|10|45|-127|-1|127|0|0|-78|-10|-65|95|-1|127|0|0|-112|-15|119|0|42|0|0|0|8|2|-1|-1|1|0|0|0|-80|-10|-65|95|-1|127|0|0|44|0|0|0|1|0|0|0|-128|-15|119|0|1|0|0|0|-16|-11|-65|95|-1|127|0|0|0|48|111|0|1|0|0|0|0|-16|117|0|1|0|0|0|0|-16|117|0|1|0|0|0|-16|-11|-65|95|-1|127|0|0|96|120|-108|2|1|0|0|0|16|-12|-65|95|-1|127|0|0|48|-12|-65|95|-1|127|0|0|0|0|0|0|0|0|0|0|16|-128|-108|2|1|0|0|0|0|48|111|0|1|0|0|0|16|-114|114|0|1|0|0|0|64|-10|-65|95|-1|127|0|0|-19|111|8|0|2|0|0|0|0|0|0|0|0|0|0|0|4|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|-89|-85|-86|50|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
但是,如果我正确理解它的一半必须是零,一半必须是 255。WTF 还是我做错了什么?
编辑:试图这样做:
data[0] = 0;
data[1] = 0;
data[2] = 0;
data[3] = 255;
data[4] = 0;
data[5] = 0;
data[6] = 0;
data[7] = 255;
data[8] = 0;
data[9] = 0;
data[10] = 0;
data[11] = 255;
data[12] = 0;
data[13] = 0;
data[14] = 0;
data[15] = 255;
并且纹理全是黑色(http://cl.ly/7KJd),将零更改为 255,纹理为白色。 所以问题在于文件加载!
在 OpenGL 中,当纹理不完整或错误时会出现白色纹理。
大多数情况下,它与缺少 mipmaps 有关,但当您使用gluBuild2DMipmaps
时,它可能没有直接关系。
您应该尝试调用glGetError
来缩小问题范围:正如评论中提到的,您在发布的代码中进行了很多不正确的 GL 调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.