On Jul 30, 2008, at 12:08 PM, Knapp wrote:
On Wed, Jul 30, 2008 at 8:00 PM, Casey Duncan <[EMAIL PROTECTED]>
wrote:
On Jul 30, 2008, at 11:08 AM, Knapp wrote:
[..]
One of the links I posted talked about the 3d+ Speed problems and
how to fix them. Have you see that yet?
I had seen that before. The gradient optimization mentioned is
really only applicable to classic Perlin noise. The Perlin Improved
noise algorithm optimizes the gradients in a different way. The
gradients themselves in "improved noise" are no longer random,
though they are selected in a pseudo-random fashion, by hashing the
incoming coordinates. Basically. the moral equivalent of the
optimization is already present in "improved" noise.
The scaling problem for higher dimensions is solved nicely by
simplex noise, which grows linearly in cost as you add dimensions,
rather than geometrically. However, simplex noise looks considerably
different, and so even a higher cost 4D Perlin noise function is
probably still desirable for applications not sensitive to that
cost. 4D noise is highly useful for real-time applications where you
desire to animate a 3D texture, and there, cost is typically
important.
-Casey
You can always take the easy way out. Four years from now your
computer will be so fast you will not care so much about this. :-)
Yeah, but by then I'll want fast 6D noise ;^) That said, I'm all for
waiting for the problem to fix itself.
Also when doing real-time 3d with movement, I use Blender, and they
let you map video to the surface. Thus you can precalculate the
image and just play it back. I guess there are some times when this
is not good enough, like when you want interaction.
In OpenGL, you can use a 3D texture for this. The shader noise code
lets you generate these in real-time, which can come in handy when
either they need to change in a non-deterministic way (e.g., in
response to interaction) or you need to generate many different
textures and animations but lack the talent or money of a dedicated
art dept. (and you don't mind math migraines ;^).
-Casey