Skip to content

Conversation

ggcrunchy
Copy link
Contributor

The current behavior of emitters, given their particleSize, is to literally emit particles of that size, even if they or their parents have non-1 scale factors.

The problem: the particle center is transformed, but the edges of the particle geometry are found by doing raw displacements by the size from the new position.

By also transforming the positions one unit to the right and one unit below the center, respectively, we can find displacements that honor the scale (and rotation, for that matter).


This PR adds several "remap" options, depending on whether you want uniform particles:

  • "rescale": the default; use the raw transformed results
  • "rescaleX": find the displacement to the right; the vertical displacement is a 90-degree rotation
  • "rescaleY": the other way around
  • "rescaleMin": use the shorter displacement; rotate it 90 degrees to find its partner
  • "rescaleMax": similar, but use the longer one
  • "rescaleMean": displacements are the same length, using the average

The current policy is on by default. You can use display.setDefault("emitterMapping", option) (with one of the above, or "legacy" to restore the original) and it will use it when you call display.newEmitter(). You can also pass one of those to display.newEmitter() via the emitterMapping param, and it will use that instead.

ggcrunchy and others added 26 commits February 7, 2019 17:09
…nd buffer and assignment logic

Next up, prepare details from graphics.defineEffect()
…from Program

Slight redesign of TimeTransform with caching (to synchronize multiple invocations with a frame) and slightly less heavyweight call site
Err, was calling Modulo for sine method, heh

That said, time transform seems to work in basic test
Fixed error detection for positive number time transform inputs

Relaxed amplitude positivity requirement
Maintenance Revert Test
My mistake adding back changes made
@ggcrunchy ggcrunchy requested a review from Shchvova as a code owner May 2, 2023 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants