이미지를 단일 다각형으로 텍스처 매핑하려고합니다. 내 이미지를 올바르게 읽었지만 이미지의 빨간색 평면 만 텍스처링됩니다.OpenGL 텍스처링은 텍스처의 빨간색 구성 요소 만 표시합니다.
나는 그것을 읽은 후 나는 이미지를 확인하셨습니까 QGLWidget
내에서이 일을하고, 그것은 구성 요소가 제대로 읽을되고있다이다 - 즉, 나는 녹색 및 청색면에 대한 유효한 값을 얻을. 여기
는
QImageReader *theReader = new QImageReader();
theReader->setFileName(imageFileName);
QImage theImageRead = theReader->read();
if(theImageRead.isNull())
{
validTile = NOT_VALID_IMAGE_FILE;
return;
}
else
{
int newW = 1;
int newH = 1;
while(newW < theImageRead.width())
{
newW *= 2;
}
while(newH < theImageRead.height())
{
newH *= 2;
}
theImageRead = theImageRead.scaled(newW, newH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
// values checked in theImageRead are OK here
glGenTextures(1,&textureObject);
theTextureImage = QGLWidget::convertToGLFormat(theImageRead);
// values checked in theTextureImage are OK here
glBindTexture(GL_TEXTURE_2D, textureObject);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,newW, newH, 0, GL_RGBA, GL_UNSIGNED_BYTE,theTextureImage.bits());
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glFlush();
validTile = VALID_TEXTURE;
return;
}
then I draw like this:
{ glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,textureTiles[tN]->getTextureObject()); glBegin(GL_QUADS); glTexCoord2f(0.0,0.0); glVertex2f(textureTiles[tN]->lowerLeft.x(), textureTiles[tN]->lowerLeft.y()); glTexCoord2f(1.0,0.0); glVertex2f(textureTiles[tN]->lowerRight.x(), textureTiles[tN]->lowerRight.y()); glTexCoord2f(1.0,1.0); glVertex2f(textureTiles[tN]->upperRight.x(), textureTiles[tN]->upperRight.y()); glTexCoord2f(0.0,1.0); glVertex2f(textureTiles[tN]->upperLeft.x(), textureTiles[tN]->upperLeft.y()); glEnd(); glDisable(GL_TEXTURE_2D); }
아무도 그것의 값을 것처럼 내 텍스처 interpreded하는 원인이 아무것도 볼 수행하는 코드를입니다 (R, 0,0,1)? (r, g, b, a)?
는 QT 4.7.1, 우분투 10.04는 OpenGL을 2.something 또는 도움
잊어 버린 곳에서 'glColor()'콜을 사용하고 있습니까? – genpfault
내부적으로 OpenGL은 internalFormat 매개 변수를 사용하고 필요한 모든 계산을 데이터에 적용하여 요청 된 형식으로 가져옵니다. 이 결과 (내가 올바르게 문서를 이해하는 경우) GL은 항상 RGBA 이미지입니다. 테스트 목적으로 함수 호출에서 GL_RGB 대신 GL_RGBA로 명시 적으로 internalFormat을 설정하면 어떻게됩니까? – badgerr
아무 것도 - 전혀 차이 없음 – jhowland