### Section 4.10.3.2Setting a Minimum Translucency

If you want to make sure that the background does not completely vanish in the fog you can set the transmittance channel of the fog's color to the amount of background you always want to be visible.

Using as transmittance value of 0.2 as in

fog { distance 150 colour rgbt<0.3, 0.5, 0.2, 0.2> }

the fog's translucency never drops below 20% as you can see in the resulting image (fog2.pov).

Adding a translucency threshold you make sure that the background does not vanish.

### Section 4.10.3.3Creating a Filtering Fog

The greenish fog we have used so far doesn't filter the light passing through it. All it does is to diminish the light's intensity. We can change this by using a non-zero filter channel in the fog's color (fog3.pov).

fog { distance 150 colour rgbf<0.3, 0.5, 0.2, 1.0> }

The filter value determines the amount of light that is filtered by the fog. In our example 100% of the light passing through the fog will be filtered by the fog. If we had used a value of 0.7 only 70% of the light would have been filtered. The remaining 30% would have passed unfiltered.

A filtering fog.

You'll notice that the intensity of the objects in the fog is not only diminished due to the fog's color but that the colors are actually influenced by the fog. The red and especially the blue sphere got a green hue.

### Section 4.10.3.4Adding Some Turbulence to the Fog

In order to make our somewhat boring fog a little bit more interesting we can add some turbulence, making it look like it had a non-constant density (fog4.pov).

fog { distance 150 colour rgbf<0.3, 0.5, 0.2, 1.0> turbulence 0.2 turb_depth 0.3 }

Adding some turbulence makes the fog more interesting.

You should keep in mind that the actual density of the fog does not change. Only the distance-based attenuation value of the fog is modified by the turbulence value at a point along the viewing ray.

### Section 4.10.3.5Using Ground Fog

The much more interesting and flexible fog type is the ground fog, which is selected with the fog_type statement. It's appearance is described with the fog_offset and fog_alt keywords. The fog_offset specifies the height, i. e. y value, below which the fog has a constant density of one. The fog_alt keyword determines how fast the density of the fog will approach zero as one moves along the y axis. At a height of fog_offset+fog_alt the fog will have a density of 25%.

The following example (fog5.pov) uses a ground fog which has a constant density below y=25 (the center of the red sphere) and quickly falls off for increasing altitudes.

fog { distance 150 colour rgbf<0.3, 0.5, 0.2, 1.0> fog_type 2 fog_offset 25 fog_alt 1 }

The ground fog only covers the lower parts of the world.

### Section 4.10.3.6Using Multiple Layers of Fog

It is possible to use several layers of fog by using more than one fog statement in your scene file. This is quite useful if you want to get nice effects using turbulent ground fogs. You could add up several, differently colored fogs to create an eerie scene for example.

Just try the following example (fog6.pov).

fog { distance 150 colour rgb<0.3, 0.5, 0.2> fog_type 2 fog_offset 25 fog_alt 1 turbulence 0.1 turb_depth 0.2 } fog { distance 150 colour rgb<0.5, 0.1, 0.1> fog_type 2 fog_offset 15 fog_alt 4 turbulence 0.2 turb_depth 0.2 } fog { distance 150 colour rgb<0.1, 0.1, 0.6> fog_type 2 fog_offset 10 fog_alt 2 }

Quite nice results can be achieved using multiple layers of fog.

You can combine constant density fogs, ground fogs, filtering fogs, non-filtering fogs, fogs with a translucency threshold, etc.

### Section 4.10.3.7Fog and Hollow Objects

Whenever you use the fog feature and the camera is inside a non-hollow object you won't get any fog effects. For a detailed explanation why this happens see "Empty and Solid Objects".

In order to avoid this problem you have to make all those objects hollow by either making sure the camera is outside these objects (using the inverse keyword) or by adding the hollow to them (which is much easier).

### Section 4.10.4The Atmosphere

Important notice: The atmosphere feature in POV-Ray 3.0 are somewhat experimental. There is a high probability that the design and implementation of these features will be changed in future versions. We cannot guarantee that scenes using these features in 3.0 will render identically in future releases or that full backwards compatibility of language syntax can be maintained.

### Section 4.10.4.1Starting With an Empty Room

We want to create a simple scene to explain how the atmosphere feature works and how you'll get good results.

Imagine a simple room with a window. Light falls through the window and is scattered by the dust particles in the air. You'll see beams of light coming from the window and shining on the floor.

We want to model this scene step by step. The following examples start with the room, the window and a spotlight somewhere outside the room. Currently there's no atmosphere to be able to verify if the lighting is correct (atmos1.pov).

camera { location <-10, 8, -19> look_at <0, 5, 0> angle 75 } background { color rgb <0.2, 0.4, 0.8> } light_source { <0, 19, 0> color rgb 0.5 atmosphere off } light_source { <40, 25, 0> color rgb <1, 1, 1> spotlight point_at <0, 5, 0> radius 20 falloff 20 atmospheric_attenuation on } union { difference { box { <-21, -1, -21>, <21, 21, 21> } box { <-20, 0, -20>, <20, 20, 20> } box { <19.9, 5, -3>, <21.1, 15, 3> } } box { <20, 5, -0.25>, <21, 15, 0.25> } box { <20, 9.775, -3>, <21, 10.25, 3> } pigment { color red 1 green 1 blue 1 } finish { ambient 0.2 diffuse 0.5 } }

The point light source is used to illuminate the room from inside without any interaction with the atmosphere. This is done by adding atmosphere off . We don't have to care about this light when we add the atmosphere later.

### Section 4.10.4.2Adding Dust to the Room

The next step is to add an atmosphere to the room. This is done by the following few lines (atmos2.pov).

atmosphere { type 1 samples 10 distance 40 scattering 0.2 }

The type keyword selects the type of atmospheric scattering we want to use. In this case we use the isotropic scattering that equally scatters light in all directions (see "Atmosphere" for more details about the different scattering types).

You can always start with an arbitrary number of samples. If the results do not fit your ideas you can increase the sampling rate to get better results. The problem of choosing a good sampling rate is the trade-off between a satisfying image and a fast rendering. A high sampling rate will almost always work but the rendering will also take a very long time. That's something to experiment with.

After adding some dust beams of light become visible.

Looking at the image created from the above scene you'll notice some very ugly anti-aliasing artifacts known as mach-bands. They are the result of a low sampling rate.

How this effect can be avoid is described in the following section.

Next Section