Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic attribute-based particle layout #129

Merged
merged 50 commits into from
Feb 11, 2023
Merged

Dynamic attribute-based particle layout #129

merged 50 commits into from
Feb 11, 2023

Conversation

djeedai
Copy link
Owner

@djeedai djeedai commented Feb 11, 2023

This change introduces a new dynamic particle layout based on attributes. A
particle attribute is a single scalar or vector value describing one aspect of
the particle. The value is stored per particle, and the set of attributes for
all the particles of an effect is organized into a layout describing the offset
and alignment of each attribute into the particle buffer on the GPU.

This new design allows customizing the particle storage itself based on the
modifiers used for each effect, which enables both greater customizing and a
compact memory footprint, as particles only store the attributes needed by the
effect.

To enable even greater customization, properties can be attached to effects.
A property is a dynamic quantity assignable at runtime, and uploaded to the GPU
each frame, allowing to control the quantity it's bound to. Properties can be
bound to values of modifiers, like the AccelModifer acceleration, to enable
users to vary that field at runtime without the need to recreate the effect.
Properties trade some performance for greater control and customizing. This
generalize an implicit concept previously only available for the acceleration
of AccelModifier and the force field sources, and now made available to any
property-enabled field of any modifier.

Fixes #109

@djeedai djeedai added the C - enhancement New feature or request label Feb 11, 2023
@djeedai djeedai merged commit 70de573 into main Feb 11, 2023
@djeedai djeedai deleted the u/attributes2 branch February 11, 2023 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C - enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Customizable particle attribute layout
1 participant