Я сейчас изучаю cg, и мне нужно загрузить несколько текстур.Я попытался использовать stb_images, и он работает нормально, но когда я загружаю изображение в память, оно занимает слишком много места.
Я использую небольшой JPG (512 * 512, 154kb), но если я его загружаю 10раз он будет занимать около 12 МБ памяти.(Я использую диагностический инструмент Visual Studio для проверки памяти процесса)
Как я могу устранить этот бесполезный объем использования памяти.
struct Image {
int width, height, bpp;
unsigned char* rgba;
Image(const std::string& filePath) {
rgba = stbi_load(filePath.c_str(), &width, &height, &bpp, 4);
}
~Image() {
stbi_image_free(rgba);
}
};
std::vector<Image> images;
images.reserve(10);
for (int i = 0; i < 10; ++i)
images.emplace_back("res/textures/image.jpg");