В чем разница между "Альфа включен" и "Смешивание включено"?
Вопрос предполагает, что эти термины имеют уникальное соглашение об именах.Я, например, никогда не слышал о термине «включена альфа», и я работаю с графикой и OpenGL уже более 10 лет.Где вы нашли этот термин?
OpenGL действительно определяет термин "смешивание".
Смешивание - это этап конвейера рендеринга , гдевыходные данные от операций для фрагмента (иначе: фрагментный шейдер. Или, если вы в такой вещи, конвейер среды текстур с фиксированной функцией), объединяются со значением в настоящее время в изображениях назначения для вычисленияпоследний цвет, который записывается в место назначения.
Ссылки выше должны служить вашим потребностям для объяснения того, как эти вещи работают.Смешивание часто используется для придания объектам прозрачности, но это не только его использование .
Теперь, возможно, «альфа-включение» означает альфа-тестирование.Это более ранняя функциональность ( устарела в GL 3.0 и удалена в GL 3.1 . Вы можете использовать контекст совместимости , чтобы получить его, хотя), где цвет записывается фрагментным шейдеромили конвейер с фиксированной функцией имел альфа-тестирование с заданным значением.Если проверка не удалась, то фрагмент был отбракован: не записан в кадровый буфер.Общий тест был «фрагмент альфа> 0,5»;поэтому для цветов с низким значением альфа фрагменты вообще не будут записываться.
Альфа-тест был удален из GL 3.1 и выше, потому что вы можете получить тот же эффект с помощью логики шейдера:
if(myOutputColor.a < 0.5) discard;
Тот же эффект;Вы даже можете сделать «0,5» унифицированным значением, передаваемым пользователем шейдера.И у вас есть реальный способ определить, как альфа-тест взаимодействует с несколькими выходами фрагментного шейдера.