Коллеги! :) Поделитесь опытом по поводу использования всяких патикл-редакторов. Интересующие вопросы такие:
1. Как в игре генерировать "хвосты" (за объектом тянется хвост патиклов для траектории). Ни один из существующих патикловых движков не включает такую возможность. Приходится дописывать "ручками" генерируя каждый раз новый эмиттер в центре движущегося объекта. Но возможно есть автоматические средства?
2. Какие есть хорошие патикл-редакторы? (пока лучший по-моему Magic Particle)
3. Есть ли хороший патикл-редактор для XNA?
4. Патиклы и производительность. Есть ли скрытые пути оптимизации? Сколько патиклов тянет обычный компьютер?
Ragnar
> 1. Как в игре генерировать "хвосты" (за объектом тянется хвост патиклов для
> траектории). Ни один из существующих патикловых движков не включает такую
> возможность. Приходится дописывать "ручками" генерируя каждый раз новый эмиттер
> в центре движущегося объекта. Но возможно есть автоматические средства?
Что это за партикловые движки, которые не позволяют двигать эмиттер? О_О
Напиши свой... :)
Есть вот такое:
http://www.astralax.ru/projects/particles
Можешь поглядеть, правда там 2Д партиклы (пока)...
Ragnar
> Патиклы и производительность. Есть ли скрытые пути оптимизации? Сколько
> патиклов тянет обычный компьютер?
Конечно есть, но преждевременная оптимизация - зло!
Ragnar
> 2. Какие есть хорошие патикл-редакторы? (пока лучший по-моему Magic Particle)
Если бы ты писал игру на HGE, там в комплекте идёт вполне приличный редактор партиклов. Потом напробовавшись, твои художники и дизайнеры захотят более сложные эффекты, вот тогда и задумаетесь о покупке чего нибудь вроде Астралакса или какой-нибудь иностранной поделки.
> 4. Патиклы и производительность. Есть ли скрытые пути оптимизации? Сколько
> патиклов тянет обычный компьютер?
Тысячи их. Без видимого удара по производительности. Но лучше не переборщить, игроки тоже не любят когда много искрит.
1) У меня частицы вылетают из точки 0. Для рисования перемещаю мировой матрицей в нужное место.
4) 10-100к.
По поводу 1). Тут вопрос не в движении эмиттера, а в том чтобы выпущенные частицы не ехали вместе с эмиттером. Пример - есть эффект дыма. Мы прикрепляем эффект дыма к трубе ускоряющегося поезда. И что получаем? Эффект едет вместе с поездом. А это глюк. Дым должен оставаться позади. Как делать?
Astralax клевый редактор. Есть что-нибудь схожее по уровню? Есть что-нибудь приличное для XNA?
> Дым должен оставаться позади. Как делать?
во всех частицах реализации которых видел была такая возможность, это же основы
> во всех частицах реализации которых видел была такая возможность, это же основы
Использую Astralax (Magic Particles). Метод Move и Offset перемещает весь эмиттер с частицами. Что-то не так делаю?
Так. Похоже выяснилось. В Astralax это решается глобальной константой. К сожалению локально эту настройку для эмиттера задать нельзя вроде.
Считаю концепцию эмиттеров неудобной для программирования.
В своих частицах есть просто функция generate(ID,x,y). В нутри уже определяется сколько и как частиц генерировать в зависимости от типа частиц заданного по ID и FPS. Шлейфы делаются легко и понятно, вызовом generate на каждый кадр за ракетой.
Ненужно никаких создания/удаления эмиттеров.
Ragnar
>Использую Astralax (Magic Particles). Метод Move и Offset перемещает весь эмиттер с частицами. Что-то не так делаю?
В API есть функция Magic_SetEmitterPositionMode, должно помочь.
>Какие есть хорошие патикл-редакторы? (пока лучший по-моему Magic Particle)
А какие есть качественные конкуренты?
> Патиклы и производительность. Сколько патиклов тянет обычный компьютер?
Немного. Например, на моей 8600GT и может 100K частиц нарисоваться с мизерной текстурой, но о применении в игре говорить не приходится. В современных играх предел - несколько К частиц, в среднем используют не более тысячи.
Megabyte-Ceercop
<Считаю концепцию эмиттеров неудобной для программирования.
Middlware для частиц разрабатываются для использования художником, а не программистом, и призваны сделать как можно более визуальным редактирование. Поэтому мне кажется, что подобный принцип допустим только для разработчика-одиночки "всё в одном".
trinitron
Портирование на XNA планируется?
Ragnar
>Использую Astralax (Magic Particles). Метод Move и Offset перемещает весь эмиттер с частицами. Что-то не так делаю?
Во враппере есть функция Initialization, где нужно подать MAGIC_CHANGE_EMITTER_ONLY вместо MAGIC_CHANGE_EMITTER_AND_PARTICLES. Эта настройка действительно повлияет сразу на все загружаемые эмиттеры. Но... можно потом настраивать каждый эмиттер отдельно через Magic_SetEmitterPositionMode.
>В Astralax это решается глобальной константой. К сожалению локально эту настройку для эмиттера задать нельзя вроде.
Поверьте, автор не настолько глуп, чтобы сделать только глобальную настройку :-). А вообще там есть справка API.chm, где описана куча всяких возможностей, которые во враппере не задействованы. Враппер - это лишь пример и демка, который позволяет сразу начать использовать частицы.
>Портирование на XNA планируется?
Если честно, то я плохо представляю, что такое XNA - в жизни сталкиваться не доводилось. Если туда можно загрузить стандартную dll от Windows, то не знаю, что еще там можно портировать. Если нельзя, то это как-то странно, потому что MS таким образом уничтожила кучу готовых решений.
>Патиклы и производительность. Есть ли скрытые пути оптимизации? Сколько патиклов тянет обычный компьютер?
Если оптимизировать Magic Particles, то могу предложить статью:
http://www.astralax.ru/articles/effects_optimization
Odin_KG
>Если честно, то я плохо представляю, что такое XNA
Чтобы портировать на XNA, нужно переписать враппер на С#.
Ragnar
>Портирование на XNA планируется?
Никак не раньше 3D, а там видно будет...
Тема в архиве.