На данный момент основано на Sascha Willems примерах, которые я написал для samplerCube
текстуры для фрагментного шейдера. Он имеет одно и то же изображение JPG, скопированное на все 6 слоев (граней).
Я использую библиотеку изображений stbi для загрузки изображений, она работает нормально, если я использую ее для обычной 2D-текстуры, но если она отображается на кубе me sh создает искаженное изображение:
int width = 0, height = 0, channel = 0;
float* pixels = stbi_loadf("textures/test.hdr", &width, &height, &channel, STBI_rgb_alpha);
if(!pixels) throw std::runtime_error("failed to load texture image!");
this->texture_image.create_image(width, height, VK_FORMAT_R32G32B32A32_SFLOAT, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT);
this->texture_image.fill_memory(width, height, 4*sizeof(float), pixels);
this->texture_image.create_image_view(VK_FORMAT_R32G32B32A32_SFLOAT, VK_IMAGE_ASPECT_COLOR_BIT);
stbi_image_free(pixels);