繁体   English   中英

原始纹理根本不起作用! OpenGL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM