Section 7.6.4.3.1
Attenuating The properties of the particles, such as their color and their translucency, are given by a color map. The density values calculated by the mapping processes are used to determine the appropriate color using this color map.

A ray marching process is used to volume sample the halo and to accumulate the intensities and opacity of each interval.

The following sections will describe all of the halo parameters in more detail. The complete halo syntax is given by:

halo { attenuating | emitting | glowing | dust [ constant | linear | cubic | poly ] [ planar_mapping | spherical_mapping | cylindrical_mapping | box_mapping ] [ dust_type DUST_TYPE ] [ eccentricity ECCENTRICITY ] [ max_value MAX_VALUE ] [ exponent EXPONENT ] [ samples SAMPLES ] [ aa_level AA_LEVEL ] [ aa_threshold AA_THRESHOLD ] [ jitter JITTER ] [ turbulence <TURBULENCE> ] [ octaves OCTAVES ] [ omega OMEGA ] [ lambda LAMBDA ] [ colour_map COLOUR_MAP ] [ frequency FREQUENCY ] [ phase PHASE ] [ scale <VECTOR> ] [ rotate <VECTOR> ] [ translate <VECTOR> ] }

Section 7.6.4.1
Halo Mapping

As described above the actual particle distribution and halo appearance is influenced by a lot of parameters. The steps that are performed during the halo calculation will be explained below. It will also be noted where the different halo keywords will have an effect on the calculations.

1.Depending on the current sampling position along the ray, point P (coordinates x, y, z) inside the halo container object is calculated. The actual location is influenced by the jitter keyword, the number of samples and the use of anti-aliasing (aa_level and aa_threshold).
2.Point P is transformed into point Q using the (current) halo's transformation. Here all local halo transformations come into play, i.e. all transformations specified inside the (current) halo statement.
3.Turbulence is added to point Q. The amount of turbulence is given by the urbulence keyword. The turbulence calculation is influenced by the octaves, omega and lambda keywords.
4.Radius r is calculated depending on the specified density mapping (planar_mapping, spherical_mapping, cylindrical_mapping, box_mapping). The radius is clipped to the range from 0 to 1, i.e. 0 <= r <= 1.
5.The density d is calculated from the radius r using the specified density function (constant, linear, cubic, poly) and the maximum value given by max_value. The density will be in the range from 0 to max_value.
6.The density d is first multiplied by the frequency value, added to the phase value and clipped to the range from 0 to 1 before it is used to get the color from the color_map . If an attenuating halo is used the color will be determined by the total density along the ray and not by the sum of the colors for each sample.

All steps are repeated for each sample point along the ray that is inside the halo container object. Steps 2 through 6 are repeated for all halos attached to the halo container object.

It should be noted that in order to get a finite particle distribution, i. e. a particle distribution that vanishes outside a finite area, a finite density mapping and a finite density function has to be used.

A finite density mapping gives the constant value one for all points outside a finite area. The box and spherical mappings are the only finite mapping types.

A finite density function vanishes for all parameter values above one (there are no negative parameter values). The only infinite density function is the constant function.

Finite particle distributions are especially useful because they can always be transformed to stay inside the halo container object. If particles leave the container object they become invisible and the surface of the container will be visible due to the density discontinuity at the surface.


Section 7.6.4.2
Multiple Halos

It is possible to put more than one halo inside a container object. This is simply done by putting more than one halo statement inside the container object statement like:

sphere { 0, 1 pigment { Clear } halo { here comes halo nr. 1 } halo { here comes halo nr. 2 } halo { here comes halo nr. 3 } ... }

The effects of the different halos are added. This is in fact similar to the CSG union operation.

You should note that currently multiple attenuating halos will use the color map of the last halo only. It is not possible to use different color maps for multiple attenuating halos.


Section 7.6.4.3
Halo Type

The type of the halo is defined by one of the following mutually exclusive keywords (if more than one is specified the last will be used). The default is attenuating.

halo { attenuating | emitting | glowing | dust }

The halo type determines how the light will interact with the particles inside the container object. There are two basic categories of light interaction: self-illuminated and illuminated. The first type includes the attenuating, emitting and glowing effects while the dust effect is of the second type.

The four types will be covered in detail in the next sections.


Next Section
Table Of Contents
usr/doc/povray-manual/pov30028.htm100644 0 0 52571 6501637145 15262 0ustar rootroot

Section 7.6.4.3.1
Attenuating The properties of the particles, such as their color and their translucency, are given by a color map. The density values calculated by the mapping processes are used to determine the appropriate color using this color map.

A ray marching process is used to volume sample the halo and to accumulate the intensities and opacity of each interval.

The following sections will describe all of the halo parameters in more detail. The complete halo syntax is given by:

halo { attenuating | emitting | glowing | dust [ constant | linear | cubic | poly ] [ planar_mapping | spherical_mapping | cylindrical_mapping | box_mapping ] [ dust_type DUST_TYPE ] [ eccentricity ECCENTRICITY ] [ max_value MAX_VALUE ] [ exponent EXPONENT ] [ samples SAMPLES ] [ aa_level AA_LEVEL ] [ aa_threshold AA_THRESHOLD ] [ jitter JITTER ] [ turbulence <TURBULENCE> ] [ octaves OCTAVES ] [ omega OMEGA ] [ lambda LAMBDA ] [ colour_map COLOUR_MAP ] [ frequency FREQUENCY ] [ phase PHASE ] [ scale <VECTOR> ] [ rotate <VECTOR> ] [ translate <VECTOR> ] }

Section 7.6.4.1
Halo Mapping

As described above the actual particle distribution and halo appearance is influenced by a lot of parameters. The steps that are performed during the halo calculation will be explained below. It will also be noted where the different halo keywords will have an effect on the calculations.

1.Depending on the current sampling position along the ray, point P (coordinates x, y, z) inside the halo container object is calculated. The actual location is influenced by the jitter keyword, the number of samples and the use of anti-aliasing (aa_level and aa_threshold).
2.Point P is transformed into point Q using the (current) halo's transformation. Here all local halo transformations come into play, i.e. all transformations specified inside the (current) halo statement.
3.Turbulence is added to point Q. The amount of turbulence is given by the urbulence keyword. The turbulence calculation is influenced by the octaves, omega and lambda keywords.
4.Radius r is calculated depending on the specified density mapping (planar_mapping, spherical_mapping, cylindrical_mapping, box_mapping). The radius is clipped to the range from 0 to 1, i.e. 0 <= r <= 1.
5.The density d is calculated from the radius r using the specified density function (constant, linear, cubic, poly) and the maximum value given by max_value. The density will be in the range from 0 to max_value.
6.The density d is first multiplied by the frequency value, added to the phase value and clipped to the range from 0 to 1 before it is used to get the color from the color_map . If an attenuating halo is used the color will be determined by the total density along the ray and not by the sum of the colors for each sample.

All steps are repeated for each sample point along the ray that is inside the halo container object. Steps 2 through 6 are repeated for all halos attached to the halo container object.

It should be noted that in order to get a finite particle distribution, i. e. a particle distribution that vanishes outside a finite area, a finite density mapping and a finite density function has to be used.

A finite density mapping gives the constant value one for all points outside a finite area. The box and spherical mappings are the only finite mapping types.

A finite density function vanishes for all parameter values above one (there are no negative parameter values). The only infinite density function is the constant function.

Finite particle distributions are especially useful because they can always be transformed to stay inside the halo container object. If particles leave the container object they become invisible and the surface of the container will be visible due to the density discontinuity at the surface.


Section 7.6.4.2
Multiple Halos

It is possible to put more than one halo inside a container object. This is simply done by putting more than one halo statement inside the container object statement like:

sphere { 0, 1 pigment { Clear } halo { here comes halo nr. 1 } halo { here comes halo nr. 2 } halo { here comes halo nr. 3 } ... }

The effects of the different halos are added. This is in fact similar to the CSG union operation.

You should note that currently multiple attenuating halos will use the color map of the last halo only. It is not possible to use different color maps for multiple attenuating halos.


Section 7.6.4.3
Halo Type

The type of the halo is defined by one of the following mutually exclusive keywords (if more than one is specified the last will be used). The default is attenuating.

halo { attenuating | emitting | glowing | dust }

The halo type determines how the light will interact with the particles inside the container object. There are two basic categories of light interaction: self-illuminated and illuminated. The first type includes the attenuating, emitting and glowing effects while the dust effect is of the second type.

The four types will be covered in detail in the next sections.


Next Section
Table Of Contents
usr/doc/povray-manual/pov30028.htm100644 0 0 52571 6501637145 15262 0ustar rootroot

Section 7.6.4.3.1
Attenuating The properties of the particles, such as their color and their translucency, are given by a color map. The density values calculated by the mapping processes are used to determine the appropriate color using this color map.

A ray marching process is used to volume sample the halo and to accumulate the intensities and opacity of each interval.

The following sections will describe all of the halo parameters in more detail. The complete halo syntax is given by:

halo { attenuating | emitting | glowing | dust [ constant | linear | cubic | poly ] [ planar_mapping | spherical_mapping | cylindrical_mapping | box_mapping ] [ dust_type DUST_TYPE ] [ eccentricity ECCENTRICITY ] [ max_value MAX_VALUE ] [ exponent EXPONENT ] [ samples SAMPLES ] [ aa_level AA_LEVEL ] [ aa_threshold AA_THRESHOLD ] [ jitter JITTER ] [ turbulence <TURBULENCE> ] [ octaves OCTAVES ] [ omega OMEGA ] [ lambda LAMBDA ] [ colour_map COLOUR_MAP ] [ frequency FREQUENCY ] [ phase PHASE ] [ scale <VECTOR> ] [ rotate <VECTOR> ] [ translate <VECTOR> ] }

Section 7.6.4.1
Halo Mapping

As described above the actual particle distribution and halo appearance is influenced by a lot of parameters. The steps that are performed during the halo calculation will be explained below. It will also be noted where the different halo keywords will have an effect on the calculations.

1.Depending on the current sampling position along the ray, point P (coordinates x, y, z) inside the halo container object is calculated. The actual location is influenced by the jitter keyword, the number of samples and the use of anti-aliasing (aa_level and aa_threshold).
2.Point P is transformed into point Q using the (current) halo's transformation. Here all local halo transformations come into play, i.e. all transformations specified inside the (current) halo statement.
3.Turbulence is added to point Q. The amount of turbulence is given by the urbulence keyword. The turbulence calculation is influenced by the octaves, omega and lambda keywords.
4.Radius r is calculated depending on the specified density mapping (planar_mapping, spherical_mapping, cylindrical_mapping, box_mapping). The radius is clipped to the range from 0 to 1, i.e. 0 <= r <= 1.
5.The density d is calculated from the radius r using the specified density function (constant, linear, cubic, poly) and the maximum value given by max_value. The density will be in the range from 0 to max_value.
6.The density d is first multiplied by the frequency value, added to the phase value and clipped to the range from 0 to 1 before it is used to get the color from the color_map . If an attenuating halo is used the color will be determined by the total density along the ray and not by the sum of the colors for each sample.

All steps are repeated for each sample point along the ray that is inside the halo container object. Steps 2 through 6 are repeated for all halos attached to the halo container object.

It should be noted that in order to get a finite particle distribution, i. e. a particle distribution that vanishes outside a finite area, a finite density mapping and a finite density function has to be used.

A finite density mapping gives the constant value one for all points outside a finite area. The box and spherical mappings are the only finite mapping types.

A finite density function vanishes for all parameter values above one (there are no negative parameter values). The only infinite density function is the constant function.

Finite particle distributions are especially useful because they can always be transformed to stay inside the halo container object. If particles leave the container object they become invisible and the surface of the container will be visible due to the density discontinuity at the surface.