Войти
ПрограммированиеФорумГрафика

Универсальные системы частиц или строго определённые по параметрам системы частиц? (2 стр)

Страницы: 1 2
#15
0:12, 5 апр 2018

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

В чем собственно проблема?
К примеру тот же Mesh буфер может иметь цвет вершин или текстурные координаты, а может и не иметь их. Сколько при этом одна вершина может иметь слоев текстурных координат? на одну частицу со всеми ее параметрами хватит?

#16
9:41, 5 апр 2018

Хочется если изобретать, то новый, или супер удобный иои супер быстрый велосипед.

Мне не понятно как организуется модульность системы частиц. Как здась - Создание гибкой системы частиц на основе стратегий ?

#17
10:32, 5 апр 2018

FordPerfect
> Suslik
> Как ты себе представляешь частицу, у которой одновременно есть скорость и
> позиция?
а в чем проблема? о_О

#18
10:44, 5 апр 2018

bool
> а в чем проблема? о_О
Только лишь в этом:
Изображение

#19
10:57, 5 апр 2018

задача настолько отвлечена от практики, что формулирвать вопрос "какой способ лучше?" нет никакого смысла.

например, в наивной реализации можно сделать SoA отдельный буфер для каждого параметра частиц — отдельный массив цветов, отдельный массив скоростей и так далее. с одной стороны, легче управлять, какие параметры у частицы есть, каких нет, с другой — чтобы модифицировать N таких зависимых массивов, можно ожидать в N раз больше кешмиссов, чем если бы они хранились AoS. с третьей стороны, если частицы считаются на GPU, то можно для каждой системы частиц генерить на лету весь memory layout вместе с шейдером с помощью дефайнов, но нет никаких данных о том, сколько таких систем частиц, будут ли они считаться на GPU, позволительно ли для них шейдеры в рантайме создавать. если у тебя, например, 100 разных эммиттеров по 10 частиц на каждый, то на GPU их считать может быть медленнее, чем на CPU.

спроектировать систему частиц, которая была бы лучше остальных по всем параметрам, очевидно, невозможно. чтобы спроектировать максимально эффективную систему частиц, надо сперва максимально конкретно указать сценарий её использования: сколько эммиттеров, сколько частиц на эммиттер, какие для них считаются коллижены, на GPU или на CPU считаются и так далее.

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.