У меня странная проблема с некоторыми текстурами в opengl:
Эта сцена состоит из открытой коробки, состоящей из 4 текстурированных квадрик (пол и 3 стены) и нескольких сырых грибов, сделанных из gluSphere, которые были переведены, масштабированы и текстурированы соответственно.
Если вы посмотрите конкретно на пол, то увидите, что половина квадрики имеет массивную деформацию текстуры, я трижды проверил координаты текстуры для пола, и с ними, похоже, нет ничего плохого (как вы видно, что остальные три стены в порядке, и они следуют той же схеме, что и пол). Это происходит с любой текстурой, которую я использую (я просто использую данные RAW RGB).
Я убираю грибы со сцены, и деформация исчезает, это действительно странно. Кто-нибудь видел это раньше? Я относительно новичок в OpenGL, поэтому я не знал, что искать, когда я увидел это. Заранее спасибо.
Edit:
Код для коробки:
void drawRoom(void) {
glPushMatrix();
glScalef(10,10,10);
GLuint texture = LoadTextureRAW("cave_two.raw",1);
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
//Floor
glVertex3f(-1,-1,-1); glTexCoord2f(0,0); glNormal3f(0,1,0);
glVertex3f(1,-1,-1); glTexCoord2f(1,0); glNormal3f(0,1,0);
glVertex3f(1,-1,1); glTexCoord2f(1.0,1.0); glNormal3f(0,1,0);
glVertex3f(-1,-1,1); glTexCoord2f(0.0,1.0); glNormal3f(0,1,0);
//Back wall
glVertex3f(-1,-1,-1); glTexCoord2f(0,0); glNormal3f(0,0,1);
glVertex3f(1,-1,-1); glTexCoord2f(1,0); glNormal3f(0,0,1);
glVertex3f(1,1,-1); glTexCoord2f(1.0,1.0); glNormal3f(0,0,1);
glVertex3f(-1,1,-1); glTexCoord2f(0.0,1.0); glNormal3f(0,0,1);
//Right wall
glVertex3f(1,1,1); glTexCoord2f(0,0); glNormal3f(-1,0,0);
glVertex3f(1,-1,1); glTexCoord2f(1,0); glNormal3f(-1,0,0);
glVertex3f(1,-1,-1); glTexCoord2f(1.0,1.0); glNormal3f(-1,0,0);
glVertex3f(1,1,-1); glTexCoord2f(0.0,1.0); glNormal3f(-1,0,0);
//Left wall
glVertex3f(-1,1,1); glTexCoord2f(0,0); glNormal3f(1,0,0);
glVertex3f(-1,-1,1); glTexCoord2f(1,0); glNormal3f(1,0,0);
glVertex3f(-1,-1,-1); glTexCoord2f(1.0,1.0); glNormal3f(1,0,0);
glVertex3f(-1,1,-1); glTexCoord2f(0.0,1.0); glNormal3f(1,0,0);
glEnd();
glDisable(GL_TEXTURE_2D);
glDeleteTextures( 1, &texture );
glPopMatrix();
}