[squeak-dev] Re: Would anyone care for some noise?

Bert Freudenberg bert at freudenbergs.de
Thu Feb 14 11:16:50 UTC 2013


On 2013-02-14, at 05:19, Casey Ransberger <casey.obrien.r at gmail.com> wrote:

> Hey folks,
> 
> Quick backstory about Perlin noise: it's used in computer graphics to create textures, animations, landscapes, clouds, lots of stuff. Adds a bit of predictably random "messiness" to otherwise "smooth" models, which makes things look "natural." My use of quotes here is to draw attention to the fact that these are all aesthetic statements. Somehow this function worked out really well for fooling the eye into seeing natural things. It's typically used as a basis function for multifractal terrain. Check out Texturing and Modeling: A Procedural Approach, 3rd Edition by Ebert, Musgrave, Peachey, Perlin, and Worley.

Are you aware of noise's Smalltalk connection?
http://www.noisemachine.com/talk1/4.html

> I found myself wanting to understand Perlin noise, so I hunted around looking at various implementations (didn't find one in Smalltalk, if there is one, I'd love to know)

Pretty certainly I did one back in the days of my Masters thesis ... 15 years ago. Ugh. Don't have the code handy, sorry.

> and eventually settled on an implementation that made the math clearer than the others I found, and then rewrote it from scratch in Squeak. I've got one and two dimensional noise. One dimensional noise is rarely interesting.

Very useful for controlling naturally-appearing animation.

> Two dimensional noise is good for making textures and height maps, and lots of other stuff. I haven't done three dimensional noise yet, but it shouldn't be much work to do, and that gives you some help with animating things like fire and clouds (basically the animation works by walking through adjacent 2D slices of noisy space, AFAICT.)
> 
> The bad news is, I still don't understand Perlin noise! :0

Really?! Ken's presentation above is pretty clear, IMHO ...

> The (possibly) good news is, I think it works? Looks like Perlin noise to me... it's actually kind of a hard thing to assert the correctness of, though! And it took some playing with the variables before it started to look like the pictures of pure Perlin noise that I'd found online. Attached a photo so you can see.
> 
> Ultimately I'd like to replace it with simplex noise. It's faster and doesn't have artifacts on curved meshes. I tried to do that first, but realized that I didn't understand Perlin noise well enough to understand Simplex noise. Working on understanding the former so that I can understand the latter, basically.
> 
> Anyhow I'm not sure whether or not it's something that other people would want. Could be very niche graphics-nerdery, but who knows, the Croquet crowd might find ways to have fun with it at least. If I hear from people who'd like to play with it, I can clean up the code, add an example, and put it up under the MIT license somewhere convenient. Why not, right?
> 
> 
> Let me know if you'd like to make some noise!

Seems certainly useful to me. In fact, I'd be surprised if there wasn't an implementation in Croquet or Qwaq already.

- Bert -


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130214/423cf51f/attachment.htm


More information about the Squeak-dev mailing list