Расширение класса частиц

Программирование на Юнити.

Расширение класса частиц

Сообщение glap 16 апр 2011, 11:19

Мне нужно расширить класс Particle. Унаследоваться от Particle нельзя.

Я готов сам обслуживать список частиц и интегрировать их в пространстве, но я не знаю, как рисовать частицы вручную без компонентов из "системы частиц".

Помогите советом. Спасибо.
glap
UNец
 
Сообщения: 8
Зарегистрирован: 16 апр 2011, 11:16

Re: Расширение класса частиц

Сообщение Neyl 16 апр 2011, 12:01

GL или Graphics.DrawMesh
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Расширение класса частиц

Сообщение Zaicheg 16 апр 2011, 12:28

Я готов сам обслуживать список частиц и интегрировать их в пространстве, но я не знаю, как рисовать частицы вручную без компонентов из "системы частиц".

Частицы — это совсем не моя тема, но мне почему-то кажется, что вам нужно будет не рисовать что-либо, а инстансировать модели-плоскости и управлять ими.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 12:36

А я чёта начал медитировать на Graphics.DrawMesh...
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Расширение класса частиц

Сообщение Zaicheg 16 апр 2011, 12:52

Paul Siberdt писал(а):А я чёта начал медитировать на Graphics.DrawMesh...

Я плохо представляю, как при таком раскладе коллизии частиц обрабатывать (если мы говорим о повторении и последующем расширении функционала родных систем частиц unity). То есть, можно навесить сверху объекты-коллайдеры на эти позиции, но тогда проще сразу с моделек и начинать.
Опять же, будет ли батчинг работать (с плашками наверное заработает динамический).
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 13:01

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

Update: Фтопку! меши не бэтчатся и рисуются медленнее (видимо, и-за того же роста дравколов). :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Расширение класса частиц

Сообщение glap 16 апр 2011, 14:03

Я решил выводить свои частицы на экран через GL.Begin(GL.QUADS);
Пересечение частиц с объектами буду считать вручную видимо.
glap
UNец
 
Сообщения: 8
Зарегистрирован: 16 апр 2011, 11:16

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 14:15

А возможно как-нить сбэтчить такие меши?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Расширение класса частиц

Сообщение gnoblin 16 апр 2011, 14:32

там дк и так будет мало :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Расширение класса частиц

Сообщение alexz 16 апр 2011, 15:26

У класса ParticleEmitter есть свойство particles. С его помощью можно вручную управлять положением, размером и цветом частиц.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 15:58

там дк и так будет мало

Я нарисовал 10x10x10 Graphics.DrawMesh и получил ровно 1000 drawcalls
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Расширение класса частиц

Сообщение Neyl 16 апр 2011, 16:08

Видимо, нужно батчить такие меши самостоятельно. Использовать Mesh.CombineMeshes, а затем выводить одним DrawMesh в 1 дк. Или изначально строить процедурный меш таким образом, что бы он включал в себя всю необходимую геометрию.
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 16:09

Graphics.DrawMesh не батчится вручную... его вообще не существует вне текущего кадра. :)
А как только покадрово начнем создавать/сшивать new Mesh, так сразу теряем все радости "неоверлодящегося рендера".
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Расширение класса частиц

Сообщение gnoblin 16 апр 2011, 16:22

Нет, я про то что через GL отрисовка кучи квадов у тебя получится в 1 дк
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Расширение класса частиц

Сообщение Paul Siberdt 16 апр 2011, 18:58

Хренасе.. как тогда понять строчку в документации по GL:
Note that in almost all cases using Graphics.DrawMesh is more efficient than using immediate mode drawing.

Если GL батчит полигоны, какая может быть more efficient у Graphics?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8