Я работаю над простым приложением для рисования, используя LibGDX, и у меня возникают проблемы с тем, чтобы заставить его правильно «рисовать» с настройкой, которую я использую. Я пытаюсь сделать это, рисуя спрайтами и добавляя эти отдельные спрайты в фоновую текстуру, используя команды FBO LibGDX, когда это уместно.
Проблема, с которой я столкнулся, связана со смешиванием: когда спрайты добавляются к этой текстуре, которую я создаю, любые прозрачные пиксели спрайта, которые находятся поверх пикселей, которые были нарисованы на предыдущих, будут существенно ярче, что явно выглядит не очень. Ниже показано, как выглядит результат при использовании круга с зеленым > красным градиентом в качестве «кисти». Верхний ряд теперь является частью фоновой текстуры, в то время как нижний по-прежнему представляет собой чисто отрисованную форму спрайта.
http://i238.photobucket.com/albums/ff307/Muriako/hmm.png
По сути, прозрачные области каждого спрайта освещают все, что находится под ними, и мне нужно сделать их полностью прозрачными. Я возился со многими различными комбинациями режимов наложения и не смог найти лучшего. GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, например, не имели этой проблемы, но вместо этого прозрачные пиксели каждого спрайта кажутся пониженными в альфа-канале и даже берут часть цвета из слоя ниже, что казалось еще более раздражающим.
Я буду рад опубликовать любые фрагменты кода по запросу, но мой код стал немного беспорядочным с тех пор, как я начал пытаться исправить эти проблемы, поэтому я бы предпочел размещать только необходимые биты по мере необходимости.