Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2013, 22:22   #1
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Радость Простая система частиц

Здравствуйте. Хотелось бы представить вниманию пользователей данного форума свой небольшой проект прошлогодней давности, выступающий прошлым летом в роли моей курсовой работы. Проект - система частиц, довольно простая и не представляющая особого интереса для хорошо разбирающихся в этом людей, что, впрочем, не мешает ей быть весьма интересной для новичков, а для меня - довольно неплохим началом, положенным в процессе освоения данной темы. И так как я уже начал работать над своей второй курсовой работой, целью которой является усовершенствование данной системы, то считаю нужным выложить свою прошлогоднюю разработку сюда, на всеобщее обозрение, в надежде получить от вас советы, а также, идеи по поводу ее улучшения и доработки, с целью сделать программу более удобной и функциональной.


Что же представляет собою данная программа? Прежде всего, это - многофункциональный редактор системы частиц, с возможностью сохранения и загрузки эффектов, а также, их воспроизведения и тонкой настройки, позволяющей получить доступ ко всем функциям и свойствам реализованной системы.

В процессе разработки программы множество идей (таких, как, например, диапазоны значений) было позаимствовано из сторонних программ - 3D Max и Magic Particle, что сделало систему более функциональной и разнообразной. Система состоит из трех классов:

- Частица
- Система частиц
- Эффект


что отражает основную идею всей программы: набор частиц, меняющих свое поведение по заранее заданным параметрам, а также, под воздействием внешних эффектов, делающих систему более разнообразной. И хотя сама структура класса не позволяет создавать сложные эффекты (один эмиттер, одно изображение для частиц и т.д.), система, все же, подходит для использования ее в простеньких проектах. Окно настроек, не в полной мере удобное и понятное, все же, позволяет получить доступ ко всем возможным функциям системы:


Все значения в настройках задаются в диапазонах, из которых в процессе создания новых частиц вычисляются случайные значения, присваиваемые их соответствующим полям. Во вложенном архиве присутствуют некоторые эффекты, открыв которые можно получить полезную информацию обо всех настройках системы. Одним из достоинств программы является возможность изменения всех настроек в реальном времени, что сразу же отражается на поведении всех частиц.

Система поддерживает эффекты четырех видов:

- Лупа
- Альфа
- Лампа
- Ветер


И если первые два эффекта были уже готовы к моменту сдачи проекта, то два остальных я доделал только недавно - всего пару недель назад. Лупа позволяет увеличивать частицы, Альфа - уводить их в прозрачность, Лампа - плавно менять цвет частиц, Ветер же - раздувать частицы в разные стороны. Одной из интереснейших особенностей некоторых эффектов является возможность их обратного действия: например, при установке отрицательного значения, Лупа начинает уменьшать частицы, а Ветер - собирать их в кучу, что дает огромный простор для создания совершенно новых эффектов.

Сам эффект внешнего воздействия представляет собою круг, попадая в который частица меняет свое поведение или свой внешний вид - в процентах от расстояния, пройденного ею до центра круга. И если эффект 'Лупа' является кругом радиусом в 100 пикселей и силой увеличения, равной 50, то, плавно меняя свой размер, на 50 пикселей частица увеличится лишь в центре круга. То же самое - и с остальными эффектами.

Последний раз редактировалось SaiLight; 03.04.2013 в 00:12.
SaiLight вне форума Ответить с цитированием
Старый 02.04.2013, 22:27   #2
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
По умолчанию

Достоинством данной системы я считаю ее простоту, сочетающуюся с довольно богатыми и гибкими настройками, позволяющими создавать довольно красивые эффекты. Неплохая реализация внешних воздействий позволяет еще сильнее разнообразить создаваемые эффекты и добиться новых, недоступных ранее. В целом могу с уверенностью утверждать, что работа удалась, я достиг всего, что запланировал и могу двигаться дальше.

Разумеется, все вышеперечисленное не может скрыть и недостатков системы. Прежде всего, это - невозможность создания осмысленных эффектов, все эффекты представляют собою, по сути, лишь красивые узоры, но варианты их применения явным образом не просматриваются. Такие эффекты, как огонь, дым, туман, вода, и многие другие - не реализуемы должным образом в представленной системе.

Говоря о недостатках, хотелось бы структурировать их, указав на некоторые их них более конкретно:

1. Один эмиттер. Этот недостаток сразу бросается в глаза, делая систему слишком линейной и однообразной. Ведь все частицы, создаваемые эмиттером, подчиняются определенным правилам, хотя и выглядит их поведение, на первый взгляд, разнообразным
2. Одно изображение для всех частиц
3. Отсутствие возможности градиентно задавать цвет на всем времени жизни частицы, что является довольно полезной функцией при создании таких эффектов, как огонь и иных, подобных ему

Эти и другие недостатки были учтены при разработке самой идеи новой системы, что позволило еще на структурном уровне выявить и исправить многие из них. Так, например, новая система будет поддерживать:

1. Неограниченное количество эмиттеров
2. Неограниченное количество изображений для эмиттера
3. Возможность перемещать эмиттеры по заданным кривым
4. Возможность задать нестандартное время рождения эмиттера (например, после смерти другого эмиттера)
5. Возможность создавать анимированные частицы
6. Возможность поворачивать частицы в направлении движения
7. Возможность активировать гравитацию у частиц
8. Возможность задать градиентное изменение цвета для каждой частицы на протяжении всей ее жизни
9. Новые эффекты
10. Возможность помещать эмиттеры в список исключений для определенных эффектов
11. Возможность перемещать эффекты

Сама программа, реализующая настройку системы планируется более продуманной и удобной, снабженной множеством подсказок и позволяющая как можно быстрее и проще разобраться во всех тонкостях настройки системы, а также, сделать работу в ней более удобной и приятной для пользователя:


При создании новой системы планируется выход на новый уровень, где будут поддерживаться совершенно новые эффекты, которые мне не удалось реализовать в предыдущей версии системы. Одним из таких эффектов является, к примеру, огонь.

На систему возложено множество надежд, ее я планирую использовать в дальнейших своих проектах. В скором времени думаю создать в этом разделе тему, посвященную процессу ее разработки, где буду более детально рассматривать каждый шаг в этом нелегком продвижении к своей цели. Надеюсь, подобная тема поможет новичкам или тем, кто просто хотел бы разобраться в реализации подобного рода программ.

PSystem.rar

Последний раз редактировалось SaiLight; 02.04.2013 в 22:41.
SaiLight вне форума Ответить с цитированием
Старый 03.04.2013, 10:09   #3
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Цитата:
с целью сделать программу более удобной и функциональной
Для кого/чего? В архиве нашел только exe и ни грамма исходного кода.
Как я могу использовать ее скажем с: C / С++ / FPC ? Либы / Сорс ?
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 03.04.2013, 11:17   #4
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
По умолчанию

Intmain, удобна, прежде всего, как для людей, использующих данную программу, так и для тех, кто будет оценивать ее в качестве моей курсовой работы. Исходный код системы мною выкладываться не будет по причине использования данного класса в дальнейших проектах нашей команды. Поэтому, о ее удобстве следует думать именно с этой точки зрения. Если редактор эффектов будет неудобным, то и эффекты, созданные с его помощью, не смогут в полной мере использовать все его возможности.

Впрочем, как уже было написано выше, программа будет полезна и для остальных пользователей, если только я реализуют в ней функцию сохранения эффектов в виде набора спрайтов.
SaiLight вне форума Ответить с цитированием
Старый 03.04.2013, 11:22   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
удобна, прежде всего, как для людей, использующих данную программу, так и для тех, кто будет оценивать ее в качестве моей курсовой работы. Исходный код системы мною выкладываться не будет...
Тогда это реклама просто. Или - какой я крутой. Это же прежде всего форум программистов. ИМХО
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 12:24   #6
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
По умолчанию

Если бы вы внимательно прочитали мои сообщения, то видели бы, что это не реклама и не какие-то попытки доказать вам свою крутизну. Наоборот, я не раз в рамках данной темы утверждал, что система не может являться предметом гордости, и здесь нечего рекламировать. Единственное, на что рассчитываю здесь со стороны форума, это советы разбирающихся в данной области людей по улучшению качества системы и всей программы в целом. Поверьте, для действительно разбирающихся в этом людей здесь исходные коды не нужны.

Также, я утверждал, что, возможно, создам в этом разделе тему, в которой подробно рассмотрю каждый свой шаг в создании новой системы с точки зрения программиста. Подобная тема, также, будет считаться рекламой, если она не будет содержать ярко выраженных вырезок программного кода?
SaiLight вне форума Ответить с цитированием
Старый 03.04.2013, 18:07   #7
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от SaiLight Посмотреть сообщение
Intmain, удобна, прежде всего, как для людей, использующих данную программу, так и для тех, кто будет оценивать ее в качестве моей курсовой работы. Исходный код системы мною выкладываться не будет по причине использования данного класса в дальнейших проектах нашей команды. Поэтому, о ее удобстве следует думать именно с этой точки зрения. Если редактор эффектов будет неудобным, то и эффекты, созданные с его помощью, не смогут в полной мере использовать все его возможности.

Впрочем, как уже было написано выше, программа будет полезна и для остальных пользователей, если только я реализуют в ней функцию сохранения эффектов в виде набора спрайтов.
Вы в институте сдавали курсяк тоже без исходников?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 03.04.2013, 19:00   #8
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
По умолчанию

ROD, при сдаче курсовой работы исходный код никого не волновал. Важно было объяснить методы реализации системы частиц и показать, как это выглядит на практике. Впрочем, вероятность обращения к коду существовала, и я всегда был готов его предъявить.
SaiLight вне форума Ответить с цитированием
Старый 03.04.2013, 20:17   #9
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от SaiLight Посмотреть сообщение
ROD, при сдаче курсовой работы исходный код никого не волновал. Важно было объяснить методы реализации системы частиц и показать, как это выглядит на практике. Впрочем, вероятность обращения к коду существовала, и я всегда был готов его предъявить.
Вообще, если в ходе выполнения курсовой был создан программный продукт (программа/библиотека и т.п.), то оно должно быть в приложении к курсовой. То, что у вас "и так прокатило", это ну... скажем так... недосмотр со стороны вуза.


На будущее - будьте готовы к тому, что на дипломе вам не только придется исходники предоставить, но и зарегистрировать их в Фонде Алгоритмов и Программ (туда предоставляются исходники).
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 04.04.2013, 19:14   #10
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ну и что вы пристали к человеку? ..."покажи код, ...покажи код", ...напишите сами. Русским языком сказано, автор ждет замечаний по функционалу.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая система новостей Json PHP 2 21.11.2011 20:52
Проблема с прозрачностью частиц(DirectX). zipwind Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 21.06.2011 21:54
Исследование двумерного распределения частиц при диффузии с поверхности Gloky Помощь студентам 2 19.02.2011 14:21
простая античит система BORN79 Фриланс 1 08.08.2010 09:13
Восстановление Треков частиц(фитирование) winny Общие вопросы C/C++ 0 01.10.2008 13:55