4 ms·
I think part of the reason Simplex noise isn't used more is a chilling effect created by this patent https://patents.google.com/patent/US6867776 https://patents
by anewhnaccount2 5y ago
I think part of the reason Simplex noise isn't used more is a chilling effect created by this patent https://patents.google.com/patent/US6867776 https://patents.google.com/patent/US6867776
- andreareina 5y agoDue to expire next year! I wonder if we're going to see existing projects swap out existing noise generators for simplex, or if it's mostly going to be for new projects. Guessing it's probably going to be the latter.
- spijdar 5y agoMakes me wonder how much revenue Perlin ended up getting from that patent, and if he'd consider it worth it in hindsight.
- speedgoose 5y agoA lot of projects are created in parts of the world without software patents. So I think nothing will change.
- ginko 5y agoThe problem is that simplex noise has a different look than perlin noise so it's not a drop in replacement. The article mentioned the higher frequency, but IMO it also has a bit more noticeable "spikes". One thing the article only brushed, but is the main advantage of simplex noise is its performance. Perlin noise scales O(2^n) with the number of dimensions, but simplex noise scales O(n). That's because Perlin noise interpolates the nearest 2^n gradient values in its hypercube neighborhood, but simplex noise only has to check n+1 values in its simplex. For 3D and especially 4D noise that's a huge performance advantage. edit: Turns out simplex noise is O(n^2), still faster than Perlin noise.
- MillenialMan 5y ago> simplex noise scales O(n) Typo? Simplex noise scales at O(n^2), not O(n).
- ginko 5y agoHm, not a typo, I thought it was O(n) since that's how simplices scale with dimensions. Where does the extra *n come from? I guess identifying the right simplex isn't free.. Right, the gradients will still have more dimensions to evaluate.
- MillenialMan 5y agoO(n) measures the number of vector operations, but each one operates over a vector, so there are n^2 arithmetic operations. This is also true for perlin noise - there are 2^n vector operations, but the arithmetic complexity is O(n.2^n). Obviously this ignores the parallelizability of the algorithms, which is probably the more important factor at this point, and the ability to be hardware accelerated. (Edit: the complexity is outlined on page 20 of the original simplex noise paper[1]. Just ctrl+f "complexity") [1] https://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf https://www.csee.umbc.edu/~olano/s2002c36/ch02.pdf
- jan_Inkepa 5y agoI decided once on a whim/as as adventure to try get a license to use that patent - it's currently owned by Nokia, but they never replied to my inquiry. Also, Simplex noise is good in some ways but for texture -generation, when I tried it by swapping it in, it had a bunch of artefacts that weren't present with Perlin noise - it's not a simple improvement on Perlin.
- esens 5y agoThe owner also goes around suing people regularly: https://insight.rpxcorp.com/entity/1308032-wsou-investments-llc https://insight.rpxcorp.com/entity/1308032-wsou-investments-.... Thus you definitely do not want to touch that technology in a commercial product. Although it does seem like it expires next year. Sweet!
- DonHopkins 5y agoSounds like a good theme for a Patent Expiration Hackathon! A great project would be to upgrade the Blender Noise Texture Node, by adding a Perlin/Simplex switch: https://docs.blender.org/manual/en/latest/render/shader_nodes/textures/noise.html https://docs.blender.org/manual/en/latest/render/shader_node...
- 1-6 5y agoIn the meantime, you can probably use Open Simplex Noise instead: https://en.wikipedia.org/wiki/OpenSimplex_noise https://en.wikipedia.org/wiki/OpenSimplex_noise
- dralley 5y agohttps://github.com/KdotJPG/OpenSimplex2 https://github.com/KdotJPG/OpenSimplex2