Highlighter blend func OpenGL - PullRequest
       74

Highlighter blend func OpenGL

0 голосов
/ 22 февраля 2019

Какая стандартная встроенная функция смешивания используется для реализации маркера в OpenGL?Использование glBlendEquation(GL_MIN); дает желаемый эффект, но также не позволяет смешивание на основе непрозрачности.Я моделирую прозрачность, используя glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Можно ли учесть прозрачность, используя минимальное смешивание?Если нет, то лучше ли использовать пользовательский шейдер с объектом буфера кадра?

Для справки, вот пример желаемого результата (не отображается с использованием OpenGL):

enter image description here

1 Ответ

0 голосов
/ 04 марта 2019

Я закончил рендеринг выделенных элементов в текстуру с плавающей точкой и смешивание с использованием glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);Этот промежуточный буфер кадров затем может быть смешан с кадровым буфером по умолчанию 0, используя ту же функцию смешивания.Субтрактивное смешивание можно эмулировать, умножая компоненты rgb конечного значения в фрагментном шейдере на -1.Текстуры с плавающей точкой поддерживают отрицательные значения и обычно доступны для записи в виде цветовых вложений кадрового буфера.См. Смешивание отрицательного значения в кадровый буфер 0 opengl для получения дополнительной информации.

...