The making of a planet

May 8th, 2010| Posted by Andy Korth
Categories: Uncategorized | Tags:

Here I’ll do a visual walkthrough of how I make planetoids for Solaro.

Here I’m basically just painting with a 10% opacity brush in photoshop. I’m a pretty poor artist, so note that this step requires no actual skill.

There’s actually a few steps here regarding setting up materials and such to have blender use it as a heightmap. But basically it’s just a grid with the each point moved by the image data.

There sometimes seem to be strange artifacts as a result of the flip, but mostly it’s pretty good.

Blender has a very powerful set of modifiers that I only know a little bit about. First I ran a smooth modifier, which takes a bit of the edge off the seam where I flipped the mesh. Then I subsurf the area to give us more triangles to work with. Then I use blender’s displacement modifier with some procedural textures to create some craters and some bumps. After that, I run a very light smoothing to avoid sharp edges.

The bumps are really just about the same as photoshop’s render clouds. The noise basis function is “Blender Original” but it looks pretty close to the perlin noise options. The craters are a voronoi function that makes some circles. (or maybe spheres, I guess it’s probably a 3D texture)

Now you take the beautiful 2.2 million vertex planetoid, duplicate it, run an automatic poly reducer algorithm and go make lunch. Time spent so far, 10-15 minutes, since everything but the heightmap is recycled.

The next step is to auto-unwrap the new low-poly planetoid. After that, you use a very interesting and useful blender feature called “bake selected to active”. By selecting both the high and low poly versions of the mesh, it will create a normal map for the unwrapped low poly mesh based on the normals of the high poly mesh, which is exactly what we want. ┬áHere’s a small sample:

At this point, you basically just save everything and dump it into Unity! I also baked an ambient occlusion map, since there’s a button right there. it might be useful on the asteroid too. You can do some nice texturing from within blender and bake that long with whatever you want for your diffuse map.

So this process is a bit more manual than other entirely procedural techniques we’ve played with in the past. But pragmatically speaking, 10 minutes per object times maybe 20-30 objects is not so bad compared to the amount of time you’d spend figuring out how to get everything just right, procedurally. I think we’ve got a workable mix of procedural and handmade stuff for this workflow.

In the past, I think we’ve spent more energy on avoiding problems like level design than it would have taken to sit down and do the tedious work. This is a good balance.

Comments are closed.