Партизан, для данного шейдера ты прав!

(И насчет перевернутого изображения, да, так и должно быть, мой косяк, перепутал немного координаты)
Я использую более сложный шейдер, чем в демке. Текстура умножается на цвет вертекса либо на другую текстуру (с использованием альфы), и тут, увы, уже так просто не прокатит.
НО! Можно внести в шейдер дополнение - умножение финального цвета на альфу. К сожалению, это увеличит шейдер

. Правда, качество будет наверно выше, чем в другом решении (с делением на альфу).
Добавлено через 3 минуты
Попробовал использовать ATF текстуры, а не png. Первые результаты вселяют надежду. На PC - сжатые текстуры перегоняются в GPU без всяких глупостей вроде premultiplied alpha. Но надо еще поэсперементировать со всеми форматами.
Добавлено через 51 час 14 минут
Итак, резюмирую. Было найдено три варианта решения:
1. Вариант от Волгоградца
http://volgogradetzzz.blogspot.de/20...ied-alpha.html, ссылку на который предоставил Zebestov:
Добавить в шейдер деление на альфу.
Плюс:
+ Просто и элегантно.
Минусы:
- Лишняя операция в шейдере.
- По арифметическим причинам возможны небольшие отклонения в цветопередаче.
- При рендеринге без блендинга, но с альфа-отсечением, черный ободок всетаки может иногда проявляться.
2. Вариант на основе предложения Партизана:
Вместо Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA
Использовать Context3DBlendFactor.ONE, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA. И доработать шейдер в зависимости от дополнительных нужд (если, например, нужен еще цвет вершины, то добавить операцию умножения результирующего цвета на альфу вершины)
Плюсы и минусы примерно как в предыдущем варианте.
3. Использовать ATF-текстуры.
Я проверил разные варианты сжатые/несжатые, PC/Android. Все текстуры загружаются в GPU в исходном, неизмененном виде.
Плюс:
+ Всю наконец работает так, как и должно.
+ Можно не менять шейдеры
+ Автоматом доступна возможность использовать сжатые (на уровне GPU) текстуры (dxt1/5).
Минусы:
- Инструментарий для работы с ATF весьма скуден и не особо функционален.
- Если есть необходимость сочетать в рамках одного движка сжатые/несжатые, с альфой/без альфы текстуры, надо пердусматривать отдельные шейдеры для разных видов текстур.
Лично для себя выбрал 3-й вариант. Правда, из-за желания зарезервировать возможность сочетать в одном рендеренге сжатые и несжатые текстуры и текстуры с альфой/без альфы, количество шейдеров возросло с 4-х до 30-ти. Но это вроде не страшно.