Я использую nuklear с SDL2 и OpenGL для рендеринга GUI поверх игры.Я пытаюсь заставить nuklear считывать игровые ресурсы из текстурного атласа, состоящего из текстуры 2D-массива, так как остальная часть игры будет читать ресурсы через другой шейдер.
Я получаюпроблема, при которой установка depth
параметра glTexImage3D
на 2 во время выделения памяти текстур не приводит к визуализации ничего, но установка любого из [1, 3, 4, 5] отображает вывод правильно.width
и height
оба установлены на GL_MAX_TEXTURE_SIZE
(16384 в моем случае), и gl не выводит никаких ошибок.
glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, dev->atlas_width, dev->atlas_height,
dev->atlas_depth, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, dev->atlas_offset_x, dev->atlas_offset_y,
dev->atlas_offset_z, width, height, 1, GL_RGBA, GL_UNSIGNED_BYTE, image);
Я сделал минимальныйменяется на простое ядерное демо здесь , которое мне не подходит.Должно быть легко клонировать и запускать / тестировать.
- GL версия 3.3
- macOS Mojave 10.14.3
- Intel Iris Graphics 550 1536 МБ
Снимки экрана:
Правильный вывод (глубина glTexImage3D! = 2)
Неверный вывод (глубина glTexImage3D == 2)