1.3.6.5 Media and transformations
The density of a media can be modified with any pattern modifier, such as turbulence, scale, etc. This is a very
powerful tool for making diverse effects.
As an example, let's make an absorbing media which looks like smoke. For this we take the absorbing media example
and modify the sphere like this:
sphere
{ 0,1.5 pigment { rgbt 1 } hollow
interior
{ media
{ absorption 7
density
{ spherical density_map
{ [0 rgb 0]
[0.5 rgb 0]
[0.7 rgb .5]
[1 rgb 1]
}
scale 1/2
warp { turbulence 0.5 }
scale 2
}
}
}
scale <1.5,6,1.5> translate y
}
A couple of notes:
The radius of the sphere is now a bit bigger than 1 because the turbulented pattern tends to take more space.
The absorption color can be larger than 1, making the absorption stronger and the smoke darker.
Note: When you scale an object containing media the media density is not scaled
accordingly. This means that if you for example scale a container object larger the rays will pass through more media
than before, giving a stronger result. If you want to keep the same media effect with the larger object, you will need
to divide the color of the media by the scaling amount.
The question of whether the program should scale the density of the media with the object is a question of
interpretation: For example, if you have a glass of colored water, a larger glass of colored water will be more
colored because the light travels a larger distance. This is how POV-Ray behaves. Sometimes, however, the object needs
to be scaled so that the media does not change; in this case the media color needs to be scaled inversely.
|