Turbulent Planet Textures

One of the images above is from the amazing photos of Jupiter that have been captured by the Juno mission. The other is from a presentation by Stephen M. Cameron, about procedurally generating textures for gas giants that look appropriately swirly.

This effect is tough to replicate with some of the common texturing approaches. And it’s not just for Jovian planets: Earth’s clouds look wrong without it, and there’s a whole host of smaller-scale texturing (like water or flames) that looks better with it.

Perlin noise is a common basis for a lot of texturing, but despite looking a bit like puffy clouds it isn’t all that great for representing textures that are swirling or turbulent. Especially on a large scale, the swirls and flows form complex patterns that are beautiful and appear information-dense. Having a way to replicate that opens up another class of texturing options.

Stephen’s presentation (which he developed as part of his open-source game Space Nerds in Space) and this Junkship dev blog post about texturing planets looks like a good starting point for using a flow map created with curl noise via procedural fluid flow to create the swirling textures.

No doubt there are other methods out there, but I’m mentioning this one to point out a couple of things:

First, the common procedural generation tools (Perlin noise, in this case) aren’t always the best choice. There’s still lots and lots of new techniques that can be discovered.

Second, try combining processes and information (in the technical sense) from other sources: use flow fields and slime mold growth and plate tectonics and earthquake data and traffic noise into your generators.

Third, one reason why I think this looks better is that turbulent textures have an implied history, and that history is extra information. And the appearance of having denser information makes for better-looking, more convincing generation. It gives it another layer of meaning.