I want to render realistic images of water in an orbiting space habitat. The image does not need to be generated in real time, although I wouldn't want it to take weeks either. I'm looking for an approach that can generate realistic images in hours or days.

The habitat is cylindrical with the curved inner surface being the living space. Rotation of the cylinder about it's axis provides an approximation of gravity. I'm not looking for details of simulating the physics of this, just the rendering of an image.

The specific aspect I want to know about is polarisation. Light reflected from the surface of water is polarised, leaving the light that passed into the water polarised perpendicularly to the reflected light. Ignoring this effect and simply modelling the proportions of light that are reflected and transmitted works reasonably well when there is only one water surface, but if the cylindrical habitat has bodies of water that take up large proportions of the curved surface then a given ray will make multiple reflections at a wide range of different angles. This means the proportion of light that is reflected will depend on the polarisation angle previously applied to it.

Are there existing approaches that incorporate such effects that could give realistic images of multiple reflections from a curved water surface? They would also need to model refraction with polarisation. The water will be shallow in places so I'm expecting polarised refraction to influence the results.

If not, could I adapt an existing ray tracer or would this need an approach starting from scratch?

I'm looking for realism in order to discover unexpected effects, not just to pass as realistic to a casual observer. Obviously most observers (including me) won't know the effects to look for since they aren't familiar from everyday life, so I'm looking for "reasonably physically correct" rather than just "convincing".


1 Answer 1


The most commonly suggested method seems to be Mueller calculus, which boils down to tracking the Stokes parameters of a light ray to represent the polarization of light transmitted along that ray. A ray might be unpolarized—Stokes parameters of (1, 0, 0, 0)—or it may be circularly or linearly polarized in various directions, which is a property of light in the aggregate. At the surface light is scattered according to the polarization and the Stokes vector is propagated by multiplying it by the Mueller matrix of the surface.

Here's a writeup by Toshiya Hachisuka about ray tracing while tracking light polarization. It seems like a good introduction, and there are several references that seem promising. The article argues for direct tracking of the polarization state of the ray: instead of an aggregate representation, individually tracking the direction and frequency of the two harmonic oscillations of a given light ray. This may have the disadvantage that you need more samples to reproduce the polarization effects accurately, but it may be able to reproduce more effects (in the article, thin-film interference).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.