1

OpenGL是否有一个从资源文件加载纹理的简单函数,所以我可以摆脱(HBITMAP)LoadImage();我使用的函数。

作为 DirectX 中的一个示例,它可以通过D3DXCreateTextureFromResourceA();函数来​​完成。

4

1 回答 1

0

使用Qt,你会发现用OpenGL写代码很容易。

您可以加载许多不同格式的图像。

QString fileName = QFileDialog::getOpenFileName(this, "open image file", ".", "Image files (*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;All files (*.*)");
QImage image;

image.load(fileName);

此外,将普通图像更改为 OpenGL 纹理也很容易。

QImage textureImage = QGLWidget::convertToGLFormat(image);
GLuint glTexture;

glGenTextures(1, &glTexture);
glBindTexture(GL_TEXTURE_2D, glTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB16, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureImage.bits());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
于 2014-02-11T11:23:42.980 回答