User Tools

Site Tools


Planetary Rings

I've been adding support for planetary rings to Worldgen over the last couple of weeks, and I now have added the display of them to the 3D view. Initially I played with the idea of rendering them as discrete points, much like I do for asteroid belts. This gives the advantage that they can be rendered correctly under gravity, with inner points orbiting faster than outer points. However, the result doesn't look much like the rings of Saturn.

So now rings have a texture generated at creation time, which is stored in the database. This is then 'just' applied to the ring object as a texture. I say just, because it required some hacking of the threejs library code to apply a texture to a ring in a circular pattern. Fortunately, I'm not the first person who wanted to do that.

The texture currently uses just a very simple algorithm for drawing lines of random colours. The only 'intelligence' is a chance of a gap forming in the rings, where the opacity is reduced. Other than that, there are no patterns or attempts to change the colour between random variations of the same hue.

Currently though, the placement and size of the rings isn't ideal, and I need to put more work into making them look a bit more 'realistic' (where realistic is 'like Saturn', since that's what everyone expects). I do allow for thinner rings, and multiple rings (the ones shown are single rings which have gaps in the texture), but more variations could probably be added.

Note that since all planets lack an axial tilt, their rings are similarly flat. Also, since the ring textures are just lines at the moment, they don't rotate.

blog/20181103_rings.txt · Last modified: 2018/11/03 12:32 by sam