#c #opengl
#c #opengl
Вопрос:
Существует ли уравнение смешивания, которое можно создать с использованием OpenGL glBlendFunc, которое позволило бы отображать прозрачный цвет (RGBA) за аддитивным наложением.
Рендеринг поверх:
Этот эффект может быть достигнут с помощью glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Рендеринг под:
Есть ли уравнение для этого эффекта наложения?
Комментарии:
1. Обычным подходом было бы изменить порядок рисования (т. Е. Сначала отсортировать объекты по глубине). По какой-либо причине вы не можете этого сделать?
Ответ №1:
Нет параметров glBlendFunc для непосредственного рисования наложения. Информацию можно найти здесь:
http://benmcdowell.com/implementing-photoshop-blend-modes-in-opengl/
Однако ваш эффект, похоже, не является наложением, похоже, либо на экран
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
или аддитивный
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
Я бы посоветовал вам попробовать все комбинации, их не так много. Однако, если вам нужны более сумасшедшие эффекты, вам нужно будет закодировать шейдеры.
Постскриптум я солгал. Вам не нужно кодировать шейдеры для создания сумасшедших эффектов, таких как наложение, но вам приходится рисовать так много раз, что это становится непригодным для использования в реальном времени. Я должен был сказать, что лучше использовать шейдеры.