#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 — Смешивание