Согласно документации, я могу создать сжатую текстуру HDR, поэтому я делаю это:
funcs->glGenTextures(1, &newCompressedTexture);
funcs->glActiveTexture(GL_TEXTURE0 + g_cTileTextureUnit);
funcs->glBindTexture(GL_TEXTURE_2D, newCompressedTexture);
funcs->glTexStorage2D(GL_TEXTURE_2D, 1, oglTileInfo.m_compressedInternalFormat, g_cTileWidthWithBorder, g_cTileWidthWithBorder);
funcs->glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, g_cTileWidthWithBorder, g_cTileWidthWithBorder, GL_RED, GL_FLOAT, getUncompressedData().rData()._m_data.data());
Где oglTileInfo.m_compressedInternalFormat имеет значение GL_COMPRESSED_RED_RGTC1 или GL_COMPRESSED_RGBA_ASTC_4x4_KHR.
Никаких ошибок gl нет, шейдер работает правильно, но значение, которое я получаю с помощью texture (), зафиксировано между [0,1] и его глубиной всего 8 бит. Все работает нормально, если я использую GL_R32F в качестве внутреннего формата текстуры, но мне нужно сжатие. Спасибо.