Giter Site home page Giter Site logo

Find good hash functions about vl.fuse HOT 5 CLOSED

thefuselab avatar thefuselab commented on May 30, 2024
Find good hash functions

from vl.fuse.

Comments (5)

everyoneishappy avatar everyoneishappy commented on May 30, 2024

That's a super cool paper! I'd like to implement more, but probably not until this is solved: #4

from vl.fuse.

everyoneishappy avatar everyoneishappy commented on May 30, 2024

In the meantime, what we use now is basically a very fast, but as you found low quality (in terms of no patterns) hash function. This is 100% fine for most noises built on top, but for the time being for simple random number generation should use the random function provided in FuseCommonNoise. It just iterates the hash function several times and should still be quite performant. I'll make a node for it again since we deleted the basis nodes in favor of the swiss army knife 'noise' node. Can still use that for random too, but in a lot of cases probably don't need things like bias etc so will put a simple one back in

from vl.fuse.

everyoneishappy avatar everyoneishappy commented on May 30, 2024

Ok if you pull could you try swapping out the Random[Math] for Random[Noise] and see if it's random enough for you? If not we could look at using a better hash for that. Would be good if possible to keep using a cheap one for the procedural noises since you don't get much benefit there from a more expensive function, and it can be called many times in some cases

from vl.fuse.

texone avatar texone commented on May 30, 2024

For compute I switched to pcg hash function that was suggested in the paper got quality and decent performance, I also like the explanations regarding combination of noise values for better quality so I am wandering if we should provide different hash implementations like noise and people can select?

from vl.fuse.

everyoneishappy avatar everyoneishappy commented on May 30, 2024

Yeah the pcg ones looks like the best for random number generation hey? My impression is if you're just running it once or a couple times per thread there's not really a significant difference performance wise at all. I guess it's more a difference for example if you're calling it repeatedly in a procedural noise function and then repeating that to raymarch then a cheaper hash might be better used. In the case of noise (simplex, perlin etc) you don't really need the extra quality in the hash.

from vl.fuse.

Related Issues (20)

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.