Используя следующий параметр для эффекта частиц 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