Finally got to a good stopping point so here are some pictures of the latest progress.

A textured and shaded planet.

A view from further away with updates frozen.

Wireframe view of planet with updates frozen.

What I’ve implemented was vertex position and normal sharing between different faces and levels of the quadtree because calculations would be slightly different and you would get seams at the edges of a cube face.

Next I spent some time investigating Ysaneya’s subtiling textures using a single texture pack and a slope/altitude look up table

While getting making the Ogre material and glsl shader I happened upon ml278 the 3d Planetary Surveyor which is something very similar to what I’m trying to accomplish! The developer had implemented a version of Ysaneya’s subtiling in a glsl and Ogre, so I started with the open source shader he had and tweaked it to make it work in this program.

I still have a small 1 pixel seam around the edges of each texture when they repeat so I have to determine where that’s coming from. I also need to add some noise between levels so that the transition isn’t so obvious. Then, maybe I’ll work on the water and atmosphere, or on the annoying popping effects when the lod levels change.

And, of course, the texture tiling is obvious from far away so I’ll need to implement some kind of blurring or dirt map to make it less so.