2014-11-26 3 views
0

Я пытаюсь создать систему простых частиц, содержащую 2 излучателя (контроллеров): 1 для огня и 1 для дыма. я делаю это проблематично и не использую редактор. Я начал с огня и создал текстуру BilboardParticleBatch, и результат был не очень хорош. Причина в том, что внутри партии функция смешивания неверна. Поэтому я переопределяю его в своей собственной партии и меняю его на GL_SRC_ALPHA, GL_ONE - это дает лучшие результаты. Итак, теперь, используя мою партию, огонь выглядит хорошо. Затем я хочу добавить дым, поэтому здесь я хочу использовать «Не предварительно умноженное смешение», так что я снова создал новую партию, расширяющую BillboardparticleBath, и сделаю ее использующей SRC_ALPHA, ONE_MINUS_SRC_ALPHA и присвою ей текстуру дыма. Так дым совершенен.Libgdx - проблема смешивания частиц 3d

Основная проблема заключается в том, как объединить оба контроллера. Если я поместил их оба в ParticleEffect и поместил этот эффект в ParticleSystem, тогда я смогу отобразить их вместе, но проблема в том, что когда частица из обоих излучателей перекрывается, иногда они ошибочно смешиваются. Это потому, что, вероятно, они не сортируются вместе, поскольку они используют 2 партии. Сорт применяется не по уровню эффекта, а по пакетному уровню. Так что это не вопрос :(

Я могу попробовать использовать только одну партию и использовать TextureRegion influencer, чтобы использовать разные текстуры для дыма и огня внутри 1 партии, но как решить проблему с различным смешиванием, поскольку она будет одной и то же самое для партии.

ли способ как-то объединить обе партии в одном и сказать ему, чтобы сделать огонь с помощью добавки и дым, используя только альфа.

заранее спасибо!

ответ

0

Проблема Теперь он работает нормально с двумя партиями. Я просто добавляю функцию проверки глубины материала, когда переопределить партию частиц.

Смежные вопросы