3D сжатие текстур с OpenGL? - PullRequest
0 голосов
/ 10 апреля 2020

Я могу успешно генерировать 3D текстуры без сжатия. Итак, какие изменения здесь необходимы?

GLint i;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &i);
this->width  = glm::min(width , i);
this->height = glm::min(height, i);
this->depth  = glm::min(depth , i);

GLubyte clearColor = 255;

glGenTextures(1, &texture_ID);
glBindTexture(GL_TEXTURE_3D, texture_ID);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
glTexImage3D(GL_TEXTURE_3D, 0, GL_R8, width, height, depth, 0, GL_RED, GL_UNSIGNED_BYTE, NULL);
glCompressedTexImage3D(GL_TEXTURE_3D, 0, GL_R8, width, height, depth, 0, width * height * depth * 
2, NULL);

glClearTexImage(texture_ID, 0, GL_RED, GL_UNSIGNED_BYTE, &clearColor);
glBindTexture(GL_TEXTURE_3D, 0);

Меня не беспокоит фрагментный шейдер, а использование vram в диспетчере задач. Когда я использую только glCompressedTexImage3D, текстура не создается, но если я использую приведенный выше код, размер кажется точно таким же, как и без сжатия. (около 4 гигабайт).

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