On Wed, Jul 30, 2008 at 5:12 PM, Casey Duncan <[EMAIL PROTECTED]> wrote:
> On Jul 30, 2008, at 4:35 AM, Knapp wrote: > > >> >> On Wed, Jul 30, 2008 at 10:48 AM, DR0ID <[EMAIL PROTECTED]> wrote: >> Hi >> >> I think Perlin noise exist already for python, unless you really want to >> do it by yourself. >> >> Here is one I know of: http://code.google.com/p/caseman/downloads/list >> >> There are porbably more implementations out there. >> >> ~DR0ID >> >> That looks like a really neat lib! Glad to know about it. >> >> Hugo arts also had some thought about this >> >I'm not sure Perlin Noise would belong in the base pygame package. Though >> useful in some cases, it's not a critical/elementary function for game >> development. It might be a better idea to offer the functionality as an >> auxiliary library, >or perhaps bundle it together with other procedural >> generation tools. >> . >> >> I agree that this is not a basic function but I don't see it as being less >> basic than pygame.transform.laplacian - find edges in a surface. Perlin >> noise has a LOT of uses with game writing: surfaces, shapes, and movement >> can all be made better using it. >> >> I have not checked out that Caseman lib in full but from what I see it >> only has 3d perlin and not other dimensions and I don't know how fast it is. >> > > It has 1D, 2D and 3D noise functions all of which support fBm. I plan to > add 4D simplex noise (and perhaps improved as well, though that's where the > original algorithm starts to get slow) at some point. > One of the links I posted talked about the 3d+ Speed problems and how to fix them. Have you see that yet? > > The noise functions are all written in C, and are certainly fast enough to > be useful. They are fairly close to the "textbook" implementations, but with > more inlining. I'd like to look into vectorizing the code to make it faster > still, but so far it's fast enough for me. If someone needs more > performance, I can be pretty easily encouraged to do some more optimizing. > > There is also a python implementation of the same algorithms in there for > comparison. It's fair to say that performance-wise it doesn't compare. > > fwiw, there is also a GLSL implementation of "fast fake noise", so you can > push the execution off onto the GPU. As implemented, it requires pyglet, but > the meat of the code is generic GLSL and some Python to build a source > texture that it uses. This implementation is fast enough for real-time > shading and bump-mapping duties. > > Anyhow, give it a go and let me know what you think. If you think it's > missing something, let me know. I'd also be interested in opinions on its > current performance. > > -Casey When time permits I will look into it. It sounds like a fun lib. -- Douglas E Knapp http://sf-journey-creations.wikispot.org/Front_Page
