Удалить текстуру формы черного фона OpenGL

#c #opengl

#c #opengl

Вопрос:

Я работаю над небольшим проектом, это 2D-игра. Проблема, с которой я сталкиваюсь, заключается в том, что когда я визуализирую текстуру, у нее черный фон. Я загрузил данные текстуры с помощью stbi и установил формат GL_RGBA в glTexImage2D. Технически изображение не имеет фона, оно в формате PNG. Как я могу удалить фон?

Есть код, с помощью которого я загружаю текстуру.

 int width, height;
int comp;
unsigned char* imageData = stbi_load(filePath.c_str(), amp;width, amp;height, amp;comp, 4);

if ( !imageData ) {
    fmt::print("Fail load image: {}", filePath);
    return false;
}

glGenTextures(1, amp;textureID);
glBindTexture(GL_TEXTURE_2D, textureID);

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);
glGenerateMipmap(GL_TEXTURE_2D);

glBindTexture(GL_TEXTURE_2D, 0);

stbi_image_free(imageData);
  

PS: Извините за плохой английский.

Комментарии:

1. ваш код для загрузки текстуры выглядит нормально, проблема может быть в чем-то другом.

2. Вы ищете смешивание . Смотрите далее LearnOpenGL — Смешивание