Lighting remains to be done, but I'm pretty pleased with these cloud shapes. My goal was to see if I could create pseudo-volumetric clouds from just a 2D noise texture interpreted as a height map, and it seems to be working!
The density threshold is adjusted to give more coverage in the distance; normals are computed based on the gradient; and distant normals are bent towards the viewer.
In principle, this could be done with only one texture lookup: density in R, gradient in G and B channels.
