secondlife / jira-archive

2 stars 0 forks source link

[BUG-216282] General Particle System Param Additions #3690

Open sl-service-account opened 6 years ago

sl-service-account commented 6 years ago

How would you like the feature to work?

After working with and trying to push the visual fidelity of the particles as much as I can, I think adding some extra behaviors and parameters could go a long way towards improving the ways particle systems can be pushed and tweaked to achieve more impressive, but still ideally lightweight, visual effects.

I've read the other issues that have already been accepted (both texture animation, and another one referencing a general set of extra parameters including burst radius tweaks), so to that list I'd like to add the following:

HORIZONTAL BILLBOARDS

Horizontal billboards would enable particles globally aligned with the world XY plane instead of facing the camera, useful for a lot of things such as easy and efficient viewer-side rendering of water ripples instead of current workarounds which use scripted prims.

I propose a simple PSYS_PART_HORIZONTAL_BILLBOARD_MASK flag to be added to the PSYS_PART_FLAGS option to enable this feature. It would be mutually exclusive with the ribbon trails mask. It could also be possible to allow the particle to be aligned with the emitting prim instead of the world via some flag, perhaps allowing the PSYS_PART_FOLLOW_SRC_MASK to also affect this behavior, but this could be a lower priority.

PARTICLE ROTATION

For particles that do not follow their velocity, a way to define a particle's rotation behavior along its facing axis (either the axis facing the camera, or the global Z axis in the case of the horizontal billboards feature proposed above) would allow for adding more visual variety and interest to a particle system without much added CPU cost (consider swirling smoke, which could be done simply by rotating smoke particles along the axis facing the camera). This could involve both allowing a random start rotation to be defined, as well as allowing a random rotation speed to be defined. I propose a new set of optional rules to be added to the rules list:

PSYS_PART_START_ROT_MIN, 0.0 PSYS_PART_START_ROT_MAX, PI PSYS_PART_ROT_SPEED_MIN, 0.0 PSYS_PART_ROT_SPEED_MAX, PI

Why is this feature important to you? How would it benefit the community?

These behaviors would allow for greater customization of particle system behaviors and allow people to push the visual fidelity of the particle system for more unique and visually striking effects. Additionally, horizontal billboards in particular would allow more processing to be offloaded onto the viewer - for instance, instead of spawning individual animated prims for water ripples, a single particle system could be made to emit world-aligned ripple particles above a water surface.

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-216282 | | Summary | General Particle System Param Additions | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | KillaMaaki (killamaaki) | | Created at | 2018-05-14T18:53:52Z | | Updated at | 2018-05-23T19:13:14Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2018-05-23T13:42:50.538-0500', 'How would you like the feature to work?': "After working with and trying to push the visual fidelity of the particles as much as I can, I think adding some extra behaviors and parameters could go a long way towards improving the ways particle systems can be pushed and tweaked to achieve more impressive, but still ideally lightweight, visual effects.\r\n\r\nI've read the other issues that have already been accepted (both texture animation, and another one referencing a general set of extra parameters including burst radius tweaks), so to that list I'd like to add the following:\r\n\r\nHORIZONTAL BILLBOARDS\r\n\r\nHorizontal billboards would enable particles globally aligned with the world XY plane instead of facing the camera, useful for a lot of things such as easy and efficient viewer-side rendering of water ripples instead of current workarounds which use scripted prims.\r\n\r\nI propose a simple PSYS_PART_HORIZONTAL_BILLBOARD_MASK flag to be added to the PSYS_PART_FLAGS option to enable this feature. It would be mutually exclusive with the ribbon trails mask.\r\nIt could also be possible to allow the particle to be aligned with the emitting prim instead of the world via some flag, perhaps allowing the PSYS_PART_FOLLOW_SRC_MASK to also affect this behavior, but this could be a lower priority.\r\n\r\nPARTICLE ROTATION\r\n\r\nFor particles that do not follow their velocity, a way to define a particle's rotation behavior along its facing axis (either the axis facing the camera, or the global Z axis in the case of the horizontal billboards feature proposed above) would allow for adding more visual variety and interest to a particle system without much added CPU cost (consider swirling smoke, which could be done simply by rotating smoke particles along the axis facing the camera).\r\nThis could involve both allowing a random start rotation to be defined, as well as allowing a random rotation speed to be defined. I propose a new set of optional rules to be added to the rules list:\r\n\r\nPSYS_PART_START_ROT_MIN, 0.0\r\nPSYS_PART_START_ROT_MAX, PI\r\nPSYS_PART_ROT_SPEED_MIN, 0.0\r\nPSYS_PART_ROT_SPEED_MAX, PI", 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': 'These behaviors would allow for greater customization of particle system behaviors and allow people to push the visual fidelity of the particle system for more unique and visually striking effects.\r\nAdditionally, horizontal billboards in particular would allow more processing to be offloaded onto the viewer - for instance, instead of spawning individual animated prims for water ripples, a single particle system could be made to emit world-aligned ripple particles above a water surface.', } ```
sl-service-account commented 6 years ago

Dan Linden commented at 2018-05-23T18:42:51Z

This has some interesting ideas. Importing for consideration.