Я хочу нарисовать текстурной кистью любого цвета на белом фоне, используя OpenGLES.
У меня есть растровое изображение, которое я использую CG для загрузки и превращения в текстуру. Это растровое изображение в основном черное, но в центре есть белый круг, который я хочу использовать в качестве «кисти». Другими словами, я хочу, чтобы черная часть исчезла в финальной композиции, но белая часть должна взять цвет, который я установил, используя glColor.
Лучшее, что я могу получить, - это параметры смешивания (GL_SRC_ALPHA, GL_ONE) после установки какого-либо непрозрачного яркого цвета - блеклой цветной линии на сером (не чисто белом фоне). Но когда я устанавливаю фон в чисто белый цвет, линия не видна.
По крайней мере, в текущей ситуации черные края исходной текстуры не отображаются. Большинство других смешанных комбинаций, которые я пробую, заставляют либо ничего не отображаться даже на сером, либо видеть всю кисть, включая черные края, что не годится.
Кто-нибудь желает объяснить мне, как я должен настроить свою текстуру и / или состояния GL, чтобы сделать яркий цвет на чистом белом, не показывая черных краев текстуры вообще? Это может быть вопрос новичка, но я попытался проработать смешанную математику, и я до сих пор просто не понимаю, как все цвета объединяются вместе.
Вот изображение, которое я использую в качестве кисти:
альтернативный текст http://www.coldcoffeeandjuice.com/OpaqueBrush.png
Вот некоторые результирующие выходные данные, когда фон серый, а glColor4f установлен на (1, 0, 0, 1), например, чисто красный, и кисть используется для нескольких последовательных GL_POINT. Обратите внимание, что хорошо в этом то, что только белая часть изображения кисти показывает красный цвет - это правильно. Плохие моменты в том, что красный, который я хочу быть чистым и ярким, бледен из-за того, что он смешивается с фоном (?) И / или белым цветом кисти (?), Так что он полностью размыт, если фон чисто белый , При этом используются параметры смешивания, как указано выше (src_alpha, one).
(источник: coldcoffeeandjuice.com )
Вот что я хочу увидеть, учитывая чистый красный цвет (спасибо Paintbrush):
(источник: coldcoffeeandjuice.com )
Может кто-нибудь помочь мне понять, что я делаю не так?
Спасибо!