Я, должно быть, задаю очень простой вопрос. Я только что узнал, как применять текстуры.
По сути, у меня есть сцена (самолет) и куб. Я накладываю текстуру на одну из граней куба. Лицо куба, к которому я пытаюсь применить текстуру, имеет красный цвет, но я хочу, чтобы цвет текстуры переопределял его, но они как-то смешиваются вместе, хотя Я не включил смешивание, как и изображение текстуры прозрачный !
Вот моя текстура (.png).
А вот рендеринг:
Вот некоторые важные части моего кода (я знаю, что я делаю много вещей неправильно, например, использую треугольные полосы вместо четырехугольников, не использую HLSL и т. Д. - я новичок:)
Начальная часть:
//glInit
glClearColor(0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glDisable(GL_BLEND); //<-- blending is disabled!
Текстурная часть:
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, tex.bits());
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // Linear Filtering
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
Чертежная часть:
glBegin(GL_TRIANGLE_STRIP);
glColor3f(1, 0, 0); //red front face
glTexCoord2d(0, 0);
glVertex3d(-a, -a, -a);
glTexCoord2d(0, 1);
glVertex3d(-a, -a, a);
glTexCoord2d(1, 0);
glVertex3d(a, -a, -a);
glTexCoord2d(1, 1);
glVertex3d(a, -a, a);
glEnd();
glBegin(GL_TRIANGLE_STRIP);
glColor3f(0, 1, 0); //green back face
glVertex3d(-a, a, -a);
glVertex3d(-a, a, a);
glVertex3d(a, a, -a);
glVertex3d(a, a, a);
glEnd();
glBegin(GL_TRIANGLE_STRIP);
glColor3f(0, 0, 1); //blue right face
glVertex3d(a, -a, -a);
glVertex3d(a, -a, a);
glVertex3d(a, a, -a);
glVertex3d(a, a, a);
glEnd();
//etc.
Итак, не могли бы вы помочь мне сохранить цвет моей текстуры, чтобы он не стал красноватым? Если какая-то другая часть моего кода необходима, чтобы понять, что я делаю неправильно, просто скажите, что я буду редактировать. Заранее большое спасибо.