1
OpenGL에는 리소스 파일에서 텍스처를로드하는 간단한 함수가 있으므로 대신 사용하는 (HBITMAP)LoadImage();
함수를 제거 할 수 있습니다.OpenGL은 리소스에서 텍스처를로드하는 기능을 가지고 있습니까?
DirectX의 예로서 D3DXCreateTextureFromResourceA();
기능으로 수행 할 수 있습니다.
OpenGL에는 리소스 파일에서 텍스처를로드하는 간단한 함수가 있으므로 대신 사용하는 (HBITMAP)LoadImage();
함수를 제거 할 수 있습니다.OpenGL은 리소스에서 텍스처를로드하는 기능을 가지고 있습니까?
DirectX의 예로서 D3DXCreateTextureFromResourceA();
기능으로 수행 할 수 있습니다.
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);
OpenGL은 자산 로딩과 관련이 없습니다. 픽셀 만 그릴 수 있습니다. 그게 전부 야. 자산을 메모리에로드하려면 외부 라이브러리를 사용해야한다. –
@MichaelIV : 리소스 로딩에서 자산을 구현하는 것이 완벽하게 가능하다고 말하고 있습니다. 실제로 제 초기 OpenGL 프로그램에서 저는 이것을 실제로했습니다 (코드는 끔찍합니다). – datenwolf
물론 @datenwolf!하지만 OpenGL을 처음 접하는 많은 사람들은 API가 자산로드 기능을 제공한다고 잘못 가정합니다. –