각 파일의 크기는 250KB에서 500KB 정도 여야합니다. 이 파일들 각각에는 다중 QImage가 있습니다. 각 파일은 128x64의 약 400 이미지입니다. 로딩은 메모리에 약 60MB/s입니다 (OpenGL이 PNG를 자체 포맷으로 압축을 풀어야 함을 참조하십시오).느린 텍스처 로딩
이 프로세스를 빠르게 진행할 수 있습니까? 채울 기력이있는만큼 힘들게 느립니다. 하지만 아직도 많은,
glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits());
은 비 압축으로 압축 변환 가능한 시간을 저장합니다
QFile file("file.ucv");
if (file.open(QIODevice::ReadOnly)) {
qDebug() << "Read from hdd";
QDataStream r(&file);
r.setVersion(QDataStream::Qt_4_3);
QImage t;
int i = maxPics * place;
glGenTextures(maxPics, &texture[i]);
for (int y = 0; y < yNrPics; y++)
for (int x = 0; x < xNrPics; x++, i++) {
// Write to precomputed object
r >> t;
glBindTexture(GL_TEXTURE_2D, texture[i]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
}
프로파일 러는 가장 consumptious로이 줄을 찾습니다.
로드 된 QImage는 GL 형식입니다. 당신이 병목 코드의 부분에 있는지 경우
좋은 시작은 병목 현상을 파악하기 위해 코드를 프로파일 링하는 것입니다. –
GPU에 업로드하는 동안 CPU가 대기 중일 가능성이 큽니다. – RobotRock
이미지가 작아서 업로드 및 설정 오버 헤드가 병목 현상이 될 수 있습니다. –