Making perlin noise maps connect

Hello, I’m using the panda3d perlin noise function to make a heightfield map for my game and I was wondering how I would make it so that all the maps fit in with each other. My code looks like:

 def perlin(self):
     perlin2 = StackedPerlinNoise2(0.4,0.5)
     image = PNMImage(1025,1025)
     image.perlinNoiseFill(perlin2)
     image.write("NEW.png")

This makes an image which works fine for my heightfield but I’m stuck on where to go from there to make another which carries it on :confused: I saw some topics that explained stuff about offsets or something but I have no idea what to do.

Thanks for any help or tips :slight_smile:

I don’t think Panda’s Perlin Noise classes support tiling like this. I guess one option is to generate your entire world in a single really big PerlinNoise object, and subdivide it for each heightfield as you create it. This of course puts a specific upper limit on the size of the world.

If you want to have infinite connectivity, you will need to find a different noise generator. You can implement something like this in Python, but you’ll have to Google for a suitable algorithm.

David

Thanks for the response. I think subdividing it would be the best way to go about it. Sorry if this is a dumb question but how do I know the size of the PerlinNoise object? At the moment I just use the .perlinNoiseFill() method for a PNMImage and I run into problems if I make it too big. :frowning:

Is there a better way of making a heightfield that can be divided into parts? I don’t have a problem with it not being infinite, having one built in is really useful. :slight_smile:

The PerlinNoise object doesn’t have a size; it’s continuous. The PNMImage you create has a size, though, and the PerlinNoise object automatically scales to fit that size. If you want more pixels, create a larger PNMImage. You can easily subdivide from a really big PNMImage into a smaller piece for your heightfield with PNMImage.copySubImage().

I couldn’t say whether this is a particularly good way to create a large heightfield. It seems like it should work, though.

David

Awesome thanks :smiley: I’ll try that.

By the way, do you know what the largest size a PMNImage can be? :confused:

There’s no fixed limit. I imagine it depends on how much memory you have.

David

Ok that’s good. Thanks for the help, I have it working great now :smiley: