Alternative to Perlin Noise

Started by
1 comment, last by Novalis 23 years, 11 months ago
Hey all, I''m working on a realtime application that relies heavily on the Perlin Noise function to generate data that is being rendered on the screen (specifically procedural textures). I am making about 20000 calls to Noise3() per frame, and this accounts for about a third of the entire program execution time! I''m looking for one of two solutions... 1) Does anyone have a heavily optimized noise library that I could use as a replacement for the version Perlin wrote? 2) Are there any good "approximations" of the Perlin Noise function that are less computationally expensive?
If a man is talking in the forest, and there is no woman there to hear him, is he still wrong?
Advertisement
Well, first I would try to pre-compute the texture, and stop re-computing it every time! Have several levels of detail or resolution, and switch as the player gets closer/further from the object.

As for alternatives, there is a sub-division algorithm that some programs use, but I don''t know if it''s faster of not. Take a look around.



"The world isn't run by weapons anymore; or energy, or money; it's run by little ones and zeroes, little bits of data -- it's all just electrons."
"If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music he hears, however measured or far away"--Henry David Thoreau
cobra, he''s probably doing animated textures, so he''d have to precompute large 3d volumes which is probably inacceptable.
novalis, noise3() leaves a fair bit of room for optimization, especially if you''re using, say, an older version of MSVC++ (4.0 or 5.0), which had severe issues with floating point optimizations. you may want to look at the assembly code, until i started using intel c++4.5 my assembly version of noise3() was probably 10 times faster than the C one.


--
Float like a butterfly, bite like a crocodile.

--Float like a butterfly, bite like a crocodile.

This topic is closed to new replies.

Advertisement