Я пытаюсь загрузить несколько текстур (из 8x8 * .bmp изображений) в несколько FBO, используя следующий фрагмент:
glTexImage3D(GL_TEXTURE_2D_ARRAY_EXT, 0, GL_RGB8I_EXT, TEXTURE_WIDTH, TEXTURE_HEIGHT, TEXTURE_NUM, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
for( int i = 0; i < TEXTURE_NUM; i++ )
{
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, RBO_ID[i]);
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, TEXTURE_WIDTH, TEXTURE_HEIGHT);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBO_ID[i]);
glFramebufferTextureLayerEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, TexArray_ID, 0, i);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, RBO_ID[i]);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
}
checkGLErrors("begin check");
for ( int i = 0; i < TEXTURE_NUM; i++ )
{
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBO_ID[i]);
char fileName[32];
sprintf(fileName, "./img/%02d.bmp", i);
unsigned char* imgData;
imgData = loadBMP(fileName);
if (imgData)
printf("imgData %s is successfully loaded\n",fileName);
glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, i, 8, 8, 1, GL_RGB, GL_UNSIGNED_BYTE, imgData);
checkGLErrors("end check");
free(imgData);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, NULL);
}
Однако я не могу прикрепить эти текстуры с помощью функции glTexSubImage3D.CheckGLErrors () указывает на то, что ошибка находится в следующей строке с сообщением об ошибке «Неверное значение».
glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, i, 8, 8, 1, GL_RGB, GL_UNSIGNED_BYTE, imgData);
После прочтения руководства , я думаю, что ошибка связана со следующейоператор:
GL_INVALID_VALUE генерируется, если xoffset <- b, xoffset + width> w - b, yoffset <- b, или yoffset + height> h - b, или zoffset <- b, или zoffset+ глубина> d - b, где w - GL_TEXTURE_WIDTH, h - GL_TEXTURE_HEIGHT, d - GL_TEXTURE_DEPTH, а b - ширина границы изменяемого изображения текстуры.Обратите внимание, что w, h и d включают вдвое большую ширину границы.
Что не дало мне понять, как заставить работать эти текстуры.Есть идеи?Заранее спасибо.