Використовуючи наступне налаштування для ефекту частинок OpenGL:
SRC: GL_SRC_ALPHA
DST: GL_ONE
Створюється добавка суміші, яка виглядає ефектно на чорному тлі, але жахливою для яскравих кольорів, оскільки починає відшаровуватися до білого.
Потім я використовував альфа-змішування:
SRC: GL_SRC_ALPHA
DST: GL_ONE_MINUS_SRC_ALPHA
Це дозволяє використовувати інші фони, не впливаючи на колір частинок, але самі частинки виглядають тьмяними порівняно з сумішшю добавок. Як можна досягти хорошого вогняного ефекту за допомогою альфа-змішування та частинок?
Добавка:
Альфа:
ОНОВЛЕННЯ:
Дотримуючись поради Девіда нижче, я створив окрему текстуру, а потім застосував добавку суміш для ефекту частинок перед тим, як намалювати текстуру. Проблема в тому, що малювання на текстурі альфа = 0 призвело до того, що кольорові частини частинки з'явилися перед моєю картою світу, оскільки зазвичай натомість у вас чорний фон. Хитрість полягала у використанні двох текстур. Я створив чорну текстуру, а потім намалював на ній частинки. Потім я видалив альфа-шар частинок з цієї текстури, ефективно видаляючи всі навколишні тверді чорні і вицвітаючи частково видимі частинки, залишаючи при цьому нижній чорний колір, як можна було очікувати, роблячи добавки частинок суміші на чорному тлі. Коротше кажучи, виснажливий процес, але я зрештою потрапив:
Ось тема, де я розмістив свій процес: http://www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528