Смешивание текстуры для мягкого стирания альфа-значений с помощью OpenGL

У меня есть небольшое приложение для рисования, основанное на примере кода GLPaint. Работает нормально. Моя проблема в том, что мне нужно реализовать «кисть», стирающую текстуры, которые уже были нарисованы.

Моя цель - иметь ластик с мягкими краями. Прямо сейчас я просто взял ту же текстуру, которую использовал для рисования, но переключил функции наложения с

glBlendFunc(GL_SRC_ALPHA, GL_ONE);

на

glBlendFunc(GL_ZERO, GL_ZERO);

. В результате получился квадратный прямоугольный ластик. Это нормально, но на самом деле я этого не хочу. Мне нужны мягкие края. Я хочу сделать круглый ластик, а не квадратный прямоугольник.

Вы знаете, как этого добиться? Или вы знаете, есть ли способ создать свою собственную функцию смешивания?

9
задан genpfault 9 April 2011 в 00:21
поделиться