GithubHelp home page GithubHelp logo

Comments (5)

stegu avatar stegu commented on June 26, 2024

from cnpf.

CaffeineViking avatar CaffeineViking commented on June 26, 2024

Thanks for giving your insight in the issue!

I don't think we have checked the gradients against the finite differences. However, it was @hedin94 and @alfredRundqvist that worked on most of the curl-noise module, so perhaps they already checked that. Anyway, we'll find out the problem out eventually (by bisecting it).

To keep you to date, we'll post if any breakthroughs have happened regarding this. After fixing this issue, the idea is that we proceed with the two remaining parts: interactivity/knobs and visualization/shaders in parallel (as before). The preliminary plan is that the interaction will be in the form of camera movement (some sort of rotation around the field and zooming in/out) plus some way to affect/modify the system (e.g. amount of particles, velocity multiplier, noise frequency etc...) using e.g. http://anttweakbar.sourceforge.net/doc/ as a GUI. The visualization isn't completely decided yet, but we think that adding support for billboards to the particles with an alpha channel would provide for some nice effects (e.g. fire and smoke), and maybe some sort of "trails" by blending previous framebuffers. All of this is still preliminary, we will have a couple of meetings to decide for sure after we have fixed this bug.

Again, thanks for the help!

from cnpf.

sci10n avatar sci10n commented on June 26, 2024

I can't see anything wrong with the noise algorithm (verified by testing a different noise library and by switching to Perlin), and the curl operation also produces expected results. It seems the problem lies in our interpretation of the creation of the potential field which we extract our velocities from.

My current theory is that the "Black Holes" are created as a combination of accumulated rounding errors , linear interpolations in the texture lookup, and velocity field implementation. The last point should we be able to fix by examining the code for the original article. The other two would probably have to be fixed by either reducing the time we simulate or by introducing some randomness to the particles.

from cnpf.

stegu avatar stegu commented on June 26, 2024

from cnpf.

sci10n avatar sci10n commented on June 26, 2024

The issue seems to have been resolved now that I have moved the entire "curl noise" function to be evaluated continuously without interpolation on the GPU. The problem seems to have been caused, as @stegu pointed out, by linear interpolation of the vector field which over timed accumulated rounding and interpolation errors.

This solution also helps with codebase management since we don't need a large C++ system for different scenarios. We can simply specify the OpenCL kernel to use at runtime.

from cnpf.

Related Issues (5)

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.