Я создал текстуру и заполнил ее:
size_t size = width * height * 4;
float *pixels = new float[size];
for (size_t i = 0; i < size; ++i) {
pixels[i] = 1.0f;
}
glTextureStorage2D(texture_id, 1, GL_RGBA16F, width,
height);
glTextureSubImage2D(texture_id, 0, 0, 0, width, height, GL_RGBA,
GL_FLOAT, pixels);
Я использую линейную фильтрацию (GL_LINEAR
) и прижимаю к границе.
Но когда я рисую изображение:
color = texture(atlas, uv);
последняя строка выглядит так, как будто она имеет альфа-значения меньше 1. Если в шейдере я установил альфа на 1:
color.a = 1.0f;
это рисует это правильно. Что может быть причиной этого?