I've been working a few weeks on implementing comet tails. They are based on axis-aligned sprites, animated in the vertex shader. This mean that the sprite is rendered as a long oval, while viewing it from the side, and is round while viewing from the top (the same principle is used for the stars motion blur). In SE I can't use an iterative simulation for moving particles, so particles in the comet tails are moved using formulas, that allows computing the position of the particle at any moment in time. Rendering of thousands of transparent sprites is an extremely big load for the graphics card, so to increase performance, comets are rendered to impostors or a low-res framebuffer - the same system is used for galaxies and nebulae.
Here's a bunch of screenshots. I'll upload a short video showing an animation of the particles later.
View on comet Halley from Earth at dawn:
View from space.
View of the comet's core. When I implement volcanos (the particle system needed for the planetary surface), I'll add a few geysers to the comet's core.
A set of images showing a change in the comet's shape during its orbital motion. Note the blue ion tail and a few grey dust tails. Ions in the ion tail interact with the solar wind - it blows them away, so the tail is always directed away from the sun. Blue color is due to luminescence. Dust tail particles are accelerated by solar light pressure and [url=http://en.wikipedia.org/wiki/Poynting–Robertson_effect]Poynting–Robertson effect[/url]. Both forces make them lag behind the comet's core, so they tend to follow the comet's orbit. The dust tail color is a sun color, scattered on the dust particles.
A comet-rich procedural system. Note comet tails are always directed outwards from sun.
Orbits of the comets in the same system. SE can't handle too many bodies for now, so I've limited the number of comets to a few hundred (the number of asteroids is limited too).
View from the surface of some procedural planet with a thin Mars-like atmosphere. On planets with thick atmospheres, comets are invisible at daytime, just like the stars and Milky Way are.
The comet tail system can be used to simulate evaporating planets. Here is a procedural system with two very hot desert planets (with average temperatures of 2000K and 1500K). With this temperature they should lose their atmospheres, making a giant comet-like tail. Note the powerful dust tails. Hot desert planets have a melted surface, and their atmospheres are saturated with silicate vapor that may condensate into a thin dust in space. Also, a powerful wind should blow dust from the surface high into the atmosphere, where it may be blown-out with an escaping gas flow. The first planet of this system is a scorched selena that has already lost its atmosphere (however, at 2000K its surface should melt, and form a silicate vapor atmosphere, that will run out into space again).
Lens flares and Real planet brightness are disabled on these images.
Views from one evaporating planet to another (on the second screenshot, the sun is lurking behind the disk of the planet). There is some trouble with the comet tails for now - they are rendered in the background, so you can't see a haze effect around a planet. More work on the planetary rendering system and overall engine should be done to achieve the correct hazing effect.
And this is the famous HD 209458 b, an evaporating hot gas giant, also knows as Osiris. Note there almost no dust tail is visible, because it is a gas giant, and its atmosphere is made of hydrogen and helium. The color of the ion tail should be adjusted to simulate the actual gas luminescence spectrum.