OpenGLES смешивает и сочетает варианты смешивания сложный вопрос

Итак, у меня есть фоновый рисунок, черно-белый. Я хочу иметь возможность рисовать поверх этого, сохраняя черные линии и рисуя только там, где они белые. Я могу сделать это с помощью

glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA);

И черный остается черным, а белый получает любой цвет, который я хочу. Однако в белых областях я хочу иметь возможность нарисовать какой-то цвет, выбрать другой цвет, а затем смешать. Однако это не работает, потому что функция смешивания испорчена.

Итак, я подумал о том, чтобы иметь фреймбуфер для рисования линий и фреймбуфер для рисования пользователем. Пользователь рисует в фреймбуфере userdrawing с другим смешиванием, а затем я переключаю параметры смешивания и рисую в фреймбуфер linedrawing. Но я недостаточно знаю OpenGL, чтобы сказать, будет ли это работать или это глупая идея.

Большое спасибо


person DevDevDev    schedule 24.03.2010    source источник


Ответы (1)


Если ваш рисунок прозрачен в белых областях, вы можете сделать это: Сначала нарисуйте цветные области, а затем нарисуйте линии поверх них, используя стандартную смесь GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA.

person codewarrior    schedule 24.03.2010
comment
Я думал об этом, но сначала он не прозрачный в белых областях, он белый, хотя я мог его редактировать. Более важно то, что я не очищаю буфер кадра, чтобы сэкономить процессоры... - person DevDevDev; 25.03.2010