glTexSubImage3D не обновляет текстуру - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь обновить только часть одной текстуры в большом массиве текстур с 16 4096 * 4096 текстурами, используя glTexSubImage3D. Тем не менее, я не могу заставить его работать. При вызове не выдает никаких ошибок. (При установке ширины более 4096).

glTexSubImage3D(  GL_TEXTURE_2D_ARRAY, // target
                                    0, // level
                                    0, // x offset
                                    0, // y offset
                                    0, // z offset
                          TEXTURE_DIM, // width
                          TEXTURE_DIM, // height
                                    0, // depth
                              GL_RGBA, // format
                     GL_UNSIGNED_BYTE, // type
                          textures[1]); // zeroed memory

Это странно, потому что когда я заменяю этот вызов на glTexImage3D, текстура обновляется:

glTexImage3D(GL_TEXTURE_2D_ARRAY, // target
                               0, // level
                        GL_RGBA8, // Internal format
                     TEXTURE_DIM, // width
                     TEXTURE_DIM, // height
                               1,  // the number of layers 
                               0,  // 0 required
                         GL_RGBA,  // format
                GL_UNSIGNED_BYTE,  // type
                     textures[1]); // zeroed memory

Я не хватает некоторых дополнительных шагов, которые нужны glTexSubImage3D? В чем может быть проблема? Спасибо за любые указатели

1 Ответ

2 голосов
/ 15 января 2020

Параметр глубина должен быть равен 1 в вашем случае. Обратите внимание, что размер области, которая обновляется, составляет widht * высота * глубина . Если глубина равна 0, то вообще ничего не меняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...