Terrain System


My apologies for this: this is a known bug in the web plugin itself. We’ll have a fix in the next update.



nice stuff.
but what’s that FG Planet thingie?



FG Planet is a closed source tech demo for the under development MMORTS client: http://f-g.wikidot.com/

The annoyances of dealing with spherical terrain drove me to make a non spherical terrain system, which is my open-source one here.


Hey Craig, great work here. I was wondering if it was possible to use your terrain system with ordinary heightmaps? Default panda3d terrain managers die in agony when they encountery >>VERY BIG<< heightmaps. Yours obviously could handle that, but how to use your terrain manager with heightmaps?

P.S. i just checked your planet rendering demo - consider writing a paper on it, i would love to learn about this stuff :slight_smile:


There are several ways. In the end, you need to provide a tile bakery (something that makes tiles of terrain) that you can pass to one of the renderers.

One way is to provide your height maps as a bunch of separate images for each tile, and have the tile bakery load in the correct one (this would mean the bakery would only support one tile size, with no offset options).

Another more limited approach is one I have done before, and thats basically make it the same as my infinite-ralph sample (procedural generate the height maps), except provide your very large height map as a map (texture) for it. This means that when generating the height map tiles, it can simple sample from the large height map. This means it can add small scale noise and such, but draw the overall terrain shape from a single very large texture (say 2048*2048). This approach lets you make tiles of any size.

With either approach, you can cache the tiles to disc, and load them from there at runtime (use this: github.com/Craig-Macomber/Panda … mCacher.py ) or generate the tiles as needed. At some point I’ll be using a variant of this that downloads the tiles from a server.

Basically, as long as you can contrive a tile source, you can hook it up to one of my renderers.

The geo-clip-mapping based renderer should technically do a great job with very large height maps (I handles LOD nicely, so you have have a far view distance), but my implementation is unfinished, and kinda crummy.

I think what I have here craigm.info/portfolio:fg is pretty complete. If you have some further questions, I’ll add some details to the page covering them.


Thanks for your work.
I noticed you have no setup.py in your project.
I’m relatively new to Python, how can I get this set up so I can use it (import, etc.) ?


Is there a plugin to paint instance objects like grass and trees planned ? and a multi texture painting plugin ?
Or must all work be done in Blender ?