Как загрузить встроенные текстуры с помощью STB_Image и AssimpC++

Программы на C++. Форум разработчиков
Anonymous
 Как загрузить встроенные текстуры с помощью STB_Image и Assimp

Сообщение Anonymous »

Я следовал руководству «Изучите OpenGL ЗДЕСЬ» и загрузил файл glb, но при загрузке текстур с помощью STB_Image он ищет путь к изображению (который раньше работал нормально), но я думаю, что текстуры этого файлы встроены в модель.
Здесь загружается текстура:

Код: Выделить всё

unsigned int TextureFromFile(const char* path, const string& directory, bool gamma = false)
{
string filename = string(path);
filename = directory + '/' + filename;

unsigned int textureID;
glGenTextures(1, &textureID);

int width, height, nrComponents;
unsigned char* data = stbi_load(filename.c_str(), &width, &height, &nrComponents, 0);
if (data)
{
GLenum format;
if (nrComponents == 1)
format = GL_RED;
else if (nrComponents == 3)
format = GL_RGB;
else if (nrComponents == 4)
format = GL_RGBA;

glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

stbi_image_free(data);
}
else
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79057856/how-to-load-embedded-textures-with-stb-image-assimp[/url]

Вернуться в «C++»