GithubHelp home page GithubHelp logo

Particle trails about windgl HOT 6 OPEN

astrosat avatar astrosat commented on September 23, 2024
Particle trails

from windgl.

Comments (6)

gampleman avatar gampleman commented on September 23, 2024 3

At the moment this isn't supported.

In order to do that ala mapbox/webgl-wind, you need to render the output to a framebuffer and fade it out progressively over time. This has the following negative consequences in a full featured implementation:

  1. The output is completely wrong when panning/zooming, so you have to throw it out. This leads to a somewhat disconcerting effect where every time you move the map, all the particle trails disappear only to show up a few seconds later.
  2. This limits the speed of the particle: it cannot travel more than a single pixel per frame, otherwise the particle trail develops holes, breaking the visual effect.

In the longer term we can develop some solutions to this. My thoughts went something like this:

  1. choose a number of frames that we will have a particle trail for, call it n.
  2. allocate n + 1 textures to hold particle positions.
  3. on a normal frame, compute the current position based on frame n, shift the textures around one position and store it frame n
    • on a frame where a zoom/pan has occurred, recompute the position for all n. This will be slow, so this needs to put a limit on the size of n
  4. When drawing to the screen, draw in line mode, drawing a segment of the line between pairs of frames.

from windgl.

gampleman avatar gampleman commented on September 23, 2024 1

Yes. I'm afraid that to do anything interesting inside this repo fairly decent knowledge of WebGL is required.

from windgl.

Robert-OP avatar Robert-OP commented on September 23, 2024

At the moment this isn't supported.

In order to do that ala mapbox/webgl-wind, you need to render the output to a framebuffer and fade it out progressively over time. This has the following negative consequences in a full featured implementation:

  1. The output is completely wrong when panning/zooming, so you have to throw it out. This leads to a somewhat disconcerting effect where every time you move the map, all the particle trails disappear only to show up a few seconds later.
  2. This limits the speed of the particle: it cannot travel more than a single pixel per frame, otherwise the particle trail develops holes, breaking the visual effect.

In the longer term we can develop some solutions to this. My thoughts went something like this:

  1. choose a number of frames that we will have a particle trail for, call it n.

  2. allocate n + 1 textures to hold particle positions.

  3. on a normal frame, compute the current position based on frame n, shift the textures around one position and store it frame n

    • on a frame where a zoom/pan has occurred, recompute the position for all n. This will be slow, so this needs to put a limit on the size of n
  4. When drawing to the screen, draw in line mode, drawing a segment of the line between pairs of frames.

thanks @gampleman for your work up until now on this, one question:

would this feature require to continue with webgl implementation?

from windgl.

gampleman avatar gampleman commented on September 23, 2024

would this feature require to continue with webgl implementation?

Not totally sure what you mean by that?

from windgl.

Robert-OP avatar Robert-OP commented on September 23, 2024

would this feature require to continue with webgl implementation?

Not totally sure what you mean by that?

so, in order to implement the particle trails feature is it needed for one to know more how to work with webgl?

from windgl.

Robert-OP avatar Robert-OP commented on September 23, 2024

thank you @gampleman - would you be interested to develop this feature forward if sponsored?

from windgl.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.