Смешивание текстуры для мягкого стирания альфа-значений с помощью OpenGL
У меня есть небольшое приложение для рисования, основанное на примере кода GLPaint. Работает нормально. Моя проблема в том, что мне нужно реализовать «кисть», которая стирает текстуры, которые уже были нарисованы.
Моя цель - иметь ластик с мягкими краями. Прямо сейчас я просто взял ту же текстуру, которую использовал для рисования, но переключил функции смешивания с
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
в
glBlendFunc(GL_ZERO, GL_ZERO);
Результатом является квадратный прямоугольный ластик. Это нормально, но это не то, чего я на самом деле хочу. Мне нужны мягкие края. Я хочу сделать круглый ластик, а не квадратный прямоугольник.
Есть ли у вас догадки, как этого добиться? Или вы знаете, есть ли способ создать собственную функцию смешивания?