/*
* ENUM: SE_IMAGE_SIGNATURE_ENUM
*
* Used in an <Image> object to indicate how texels are represented
* within the <Image>.
*/
| typedef | enum |
| { |
| SE_IMAGE_SIGNATURE_ALPHA, | (notes) |
| SE_IMAGE_SIGNATURE_LUMINANCE, | (notes) |
| SE_IMAGE_SIGNATURE_FIRST_COLOR_COORD, | (notes) |
| SE_IMAGE_SIGNATURE_SECOND_COLOR_COORD, | (notes) |
| SE_IMAGE_SIGNATURE_THIRD_COLOR_COORD, | (notes) |
| SE_IMAGE_SIGNATURE_BUMP, | (notes) |
| SE_IMAGE_SIGNATURE_EDCS_CLASSIFICATION_CODE = 7, | (notes) |
| SE_IMAGE_SIGNATURE_LUMINANCE_AND_ALPHA = 11, | (notes) |
| SE_IMAGE_SIGNATURE_123COLOR, | (notes) |
| SE_IMAGE_SIGNATURE_123COLOR_ALPHA, | (notes) |
| SE_IMAGE_SIGNATURE_1MATERIAL = 16, | (notes) |
| SE_IMAGE_SIGNATURE_2MATERIALS, | (notes) |
| SE_IMAGE_SIGNATURE_3MATERIALS, | (notes) |
| SE_IMAGE_SIGNATURE_IMAGE_ID | (notes) |
} SE_IMAGE_SIGNATURE_ENUM;
Enumerator Notes
Used to indicate that each texel in the <Image> consists of an alpha
value, representing the coverage of the texel. An alpha of 0
indicates that the texel is transparent, while an alpha of 1
indicates that the texel constitutes part of the important
content of the <Image>. An <Image> with this signature may be
called an alpha channel or an alpha map. For further details, see
Foley, van Dam, et. al, Section 17.6, "Image Compositing", in
Computer Graphics: Principles and Practice, 2nd edition.
Addison-Wesley, 1992.
Note that an alpha map can be composited with:
- a compatible 123_COLOR <Image> to produce a 123COLOR_ALPHA map
- compatible FIRST, SECOND, and THIRD_COLOR_COORD <Images> to
produce a 123COLOR_ALPHA map.
- a compatible LUMINANCE <Image> to produce a LUMINANCE_AND_ALPHA map.
FURTHER CONSTRAINTS:
1) bits_of_alpha must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) fields must be zero.
2) When an object K has <Image Mapping Functions> providing its texture
mapping information, at most one of K's <Image Mapping Functions> can
legally provide an alpha map. (Multiple alpha maps produce an
undefined result.)
Used to indicate that the <Image> is a luminance <Image>, a.k.a.
intensity <Image>, greyscale <Image>, with no color values.
(The effect is that of a "black and white" television.)
A LUMINANCE <Image> can be composited with a compatible ALPHA image to
produce a LUMINANCE_AND_ALPHA <Image>.
An example of compositing LUMINANCE <Images> is the case of
large areas of terrain <Polygons>, where the same textures for dirt
are repeated over and over. To avoid creating a "quilt" effect on
the terrain, a LUMINANCE <Image> can be composited with the terrain
(using different offsets at different locations to make the effect
appear random) to "dirty" the textures and give the terrain a more
realistic appearance.
FURTHER CONSTRAINTS:
1) bits_of_luminance must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx fields) must be zero.
Used to indicate that each texel in the <Image> consists of 1 color
component, namely the first for its color model (G for RGB, M
for CMY, or S for HSV). The first color component of the color
model must be the only value in the texel.
Note that a FIRST_COLOR_COORD <Image> can be composited with compatible
SECOND_COLOR_COORD and THIRD_COLOR_COORD <Images> of the same
dimensions to produce a 123_COLOR <Image>. (These can also be composited
with a compatible alpha map to produce a 123COLOR_ALPHA map.)
FURTHER CONSTRAINTS:
1) bits_of_first_color must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) must be zero.
2) When an object K has <Image Mapping Functions> providing K's texture
mapping information, at most one of K's <Image Mapping Functions> can
be associated with a FIRST_COLOR_COORD <Image>. (Multiple
FIRST_COLOR_COORD <Images> produce an undefined result.)
EXAMPLES:
1) An RGB texel must have red as the texel value.
2) An CMY texel must have cyan as the texel value.
3) An HSV texel must have hue as the texel value.
Used to indicate that each texel in the <Image> consists of 1 color
component, namely the second for its color model (G for RGB, M
for CMY, or S for HSV). The second color component of the color
model must be the only value in the texel.
Note that a SECOND_COLOR_COORD <Image> can be composited with compatible
FIRST_COLOR_COORD and THIRD_COLOR_COORD <Images> of the same
dimensions to produce a 123_COLOR <Image>. (These can also be composited
with a compatible alpha map to produce a 123COLOR_ALPHA map.)
FURTHER CONSTRAINTS:
1) bits_of_second_color must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) must be zero.
2) When an object K has <Image Mapping Functions> providing K's texture
mapping information, at most one of K's <Image Mapping Functions> can
be associated with a SECOND_COLOR_COORD <Image>. (Multiple
SECOND_COLOR_COORD <Images> produce an undefined result.)
EXAMPLES:
1) An RGB texel must have green as the texel value.
2) An CMY texel must have magenta as the texel value.
3) An HSV texel must have saturation as the texel value.
Used to indicate that each texel in the <Image> consists of 1 color
component, namely the third for its color model (B for RGB, Y
for CMY, or V for HSV). The third color component of the color
model must be the only value in the texel.
Note that a THIRD_COLOR_COORD <Image> can be composited with compatible
FIRST_COLOR_COORD and SECOND_COLOR_COORD <Images> of the same
dimensions to produce a 123_COLOR <Image>. (These can also be composited
with a compatible alpha map to produce a 123COLOR_ALPHA map.)
FURTHER CONSTRAINTS:
1) bits_of_third_color must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) must be zero.
2) When an object K has <Image Mapping Functions> providing K's texture
mapping information, at most one of K's <Image Mapping Functions> can
be associated with a THIRD_COLOR_COORD <Image>. (Multiple
THIRD_COLOR_COORD <Images> produce an undefined result.)
EXAMPLES:
1) An RGB texel must have blue as the texel value.
2) An CMY texel must have yellow as the texel value.
3) An HSV texel must have brightness value as the texel value.
Used to indicate that the <Image> represents a 2-D bump map, specifying
information used to modify the surface normals of a smooth surface.
When used with a ray-tracing technique, bump mapping introduces
variations in intensity across the surface, so that it simulates a
rough, wrinkled, or dimpled surface (e.g., the surface of the ocean).
Rather than manipulating the color of a flat surface, bump mapping
modifies the physical texture of the surface. For a description of
bump mapping, see Watt, Alan. Section 7.8 "Bump Mapping". From Ch
7, "Shadows and Textures", 3D Computer Graphics, 2nd edition.
Addison-Wesley, 1993. Pages 250-253.
FURTHER CONSTRAINTS:
1) bits_of_bump must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) fields must be zero.
2) When an object K has <Image Mapping Functions> providing its texture
mapping information, at most one of K's <Image Mapping Functions> can
legally provide a bump map. (Multiple bump maps produce an
undefined result.)
Used to indicate that each texel in the <Image> consists of 1 value,
an EDCS Classification Code (ECC).
CONSTRAINTS:
1) The size per texel must be the size of EDCS_CC_ID.
2) Since no bits_of, min_value, or max_value fields are needed for this
signature, all bits_of_xxx fields (and their corresponding
min_value_of_xxx, max_value_of_xxx fields) must be zero.
Used to indicate that the <Image> is (functionally) a composite of a
luminance <Image> and an alpha <Image> (see SE_IMAGE_SIGNATURE_ALPHA,
SE_IMAGE_SIGNATURE_LUMINANCE). Each texel consists of an intensity
value followed by an alpha value. No other ordering is possible with
this signature.
A LUMINANCE_AND_ALPHA <Image> can be down-sampled to produce an ALPHA
<Image> and a LUMINANCE <Image>.
FURTHER CONSTRAINTS:
1) bits_of_luminance + bits_of_alpha must equal the size per texel (in
bits); all other bits_of_xxx fields must be zero.
2) When an object K has <Image Mapping Functions> providing its texture
mapping information, at most one of K's <Image Mapping Functions> can
legally provide a luminance & alpha map. (Multiple alpha maps produce
an undefined result.)
Used to indicate that each texel in the <Image> consists of 3 color
components (RGB, CMY, or HSV). The first color component of the
color model must be the first value in the texel, the second color
component of the color model must be the second value in the texel,
and the third color component of the color model must be the third
value in the texel. No other ordering is possible with this
signature.
Note that a 123COLOR <Image> can be down-sampled to produce a FIRST,
SECOND, or THIRD_COLOR_COORD <Image>.
FURTHER CONSTRAINTS:
1) bits_of_first_color+bits_of_second_color+bits_of_third_color must
equal the size per texel (in bits); all other bits_of_xxx fields
(and their corresponding min_value_of_xxx, max_value_of_xxx) must
be zero.
2) When an object K has <Image Mapping Functions> providing K's texture
mapping information, at most one of K's <Image Mapping Functions> can
be associated with a 123 color map <Image>. (Multiple 123 color maps
produce an undefined result.)
EXAMPLES:
1) An RGB texel must have red as the first value in the texel, green
next and finally blue.
2) A CMY texel must have cyan as the first value in the texel, magenta
next, and finally yellow.
3) An HSV texel must have hue as the first value in the texel, saturation
next and finally brightness value.
Used to indicate that each texel in the <Image> consists of 3 color
components (RGB, CMY, or HSV) and an alpha value. The first color
component of the color model must be the first value in the texel,
the second color component of the color model must be the second
value in the texel, the third color component of the color model
must be the third value in the texel, and the alpha value must be
the last value in the texel. No other ordering is possible with
this signature.
Note that a 123COLOR_ALPHA <Image> can be down-sampled to produce a
FIRST_COLOR_COORD, SECOND_COLOR_COORD, THIRD_COLOR_COORD, and/or
ALPHA <Image>.
FURTHER CONSTRAINTS:
1) bits_of_first_color+bits_of_second_color+bits_of_third_color+
bits_of_alpha must equal the size per texel (in bits); all other
bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) must be zero.
2) When an object K has <Image Mapping Functions> providing K's texture
mapping information, at most one of K's <Image Mapping Functions> can
be associated with a 123 color & alpha map <Image>. (Multiple 123
color & alpha maps produce an undefined result.)
EXAMPLES:
1) An RGBA texel must have red as the first value in the texel, green
next, then blue, and finally alpha.
2) A CMYA texel must have cyan as the first value in the texel, magenta
next, then yellow, and finally alpha.
3) An HSVA texel must have hue as the first value in the texel,
saturation next, then brightness value, and finally alpha.
Used to indicate that each texel in the <Image> consists of 1 value,
an index into the <Property Tables> referenced by this <Image>.
These <Property Tables> describe the material. Normally, a
<Property Table Reference> is used to find the corresponding
<Property Table>'s data_table_type, which <Axis> is referred to, and
which hash value measurement along that <Axis> is being referenced.
The bits_of_material1 field is used in place of the <Property Table
References>' index_on_axis fields.
See the examples for the <Image> class.
CONSTRAINTS:
1) The <Image> must have at least one <Property Table Reference>.
(The data producer may have as many <Property Table References>
as desired, as long as there is at least one, and bits_of_material#
will handle them.)
2) All the <Property Tables> being referred to by the <Property Table
References> must be of the same size, since the material reference
corresponds to all of them.
3) bits_of_material1 must equal the size per texel (in bits); all
other bits_of_xxx fields (and their corresponding min_value_of_xxx,
max_value_of_xxx) must be zero.
Used to indicate that each texel in the <Image> represents a linear
combination of 2 materials in the <Property Tables> referenced
by this <Image>. That is, each texel consists of 3 values:
2 indexes into the <Property Tables> referenced by this <Image>,
and the percentage (an integer, 0 - 100%) of material 2.
These <Property Tables> describe the materials. Normally, a
<Property Table Reference> is used to find the corresponding
<Property Table>'s data_table_type, which <Axis> is referred to, and
which hash value measurement along that <Axis> is being referenced.
The bits_of_material1 and bits_of_material2 fields are used in
place of the <Property Table References>' index_on_axis fields.
See the examples for the <Image> class.
CONSTRAINTS:
1) The <Image> must have at least one <Property Table Reference>.
(The data producer may have as many <Property Table References>
as desired, as long as there is at least one, and bits_of_material#
will handle them.)
2) All the <Property Tables> being referred to by the <Property Table
References> must be of the same size, since the material reference
corresponds to all of them.
3) bits_of_material1+bits_of_material2+bits_of_material2_percentage
must equal the size per texel (in bits); all other bits_of_xxx
fields (and their corresponding min_value_of_xxx, max_value_of_xxx)
must be zero.
Used to indicate that each texel in the <Image> represents a linear
combination of 3 materials in the <Property Tables> referenced
by this <Image>. That is, each texel consists of 4 values:
3 indexes into the <Property Tables> referenced by this <Image>,
and the percentages (integers, 0 - 100%) of materials 2 and 3
These <Property Tables> describe the materials. Normally, a
<Property Table Reference> is used to find the corresponding
<Property Table>'s data_table_type, which <Axis> is referred to, and
which hash value measurement along that <Axis> is being referenced.
The bits_of_material1, bits_of_material2, and bits_of_material3
fields are used in place of the <Property Table References>'
index_on_axis fields.
See the examples for the <Image> class.
CONSTRAINTS:
1) The <Image> must have at least one <Property Table Reference>.
(The data producer may have as many <Property Table References>
as desired, as long as there is at least one, and bits_of_material#
will handle them.)
2) All the <Property Tables> being referred to by the <Property Table
References> must be of the same size, since the material reference
corresponds to all of them.
3) bits_of_material1+bits_of_material2+bits_of_material2_percentage
+bits_of_material3+bits_of_material3_percentage must equal the
size per texel (in bits); all other bits_of_xxx fields (and their
corresponding min_value_of_xxx, max_value_of_xxx) must be zero.
Used to indicate that the <Image> consists of references to other
<Images> (i.e., each texel within the <Image> is the ID of another
<Image>). This mechanism allows an <Image> to define high-resolution
insets.
Each *texel* is to be replaced by the *entire <Image>* identified by the
<Image> whose ID is specified by that texel. This allows data providers
to put together a gigantic <Image> formed by many smaller <Images>.
FURTHER CONSTRAINTS:
1) bits_of_image_id must equal the size per texel (a positive value),
while all other bits_of_xxx fields (and their corresponding
min_value_of_xxx, max_value_of_xxx fields) must be zero.
2) Each texel within the <Image> must resolve to a valid ID within the
transmittal's <Image Library>, but neither directly or indirectly
(via other IMAGE_ID <Images>) to the ID of this <Image>. (This
would cause infinite recursion when trying to resolve the image to
its component parts).
3) All referenced <Images> must have the same values as the main <Image>
for color_model, data_is_little_endian, data_is_3D,
component_data_type, scan_direction, and scan_direction_z.
4) All referenced <Images> must have either the same image signature X,
or SE_IMAGE_SIGNATURE_IMAGE_ID which resolves to referenced images
with signature X, so that the main <Image> can be resolved to a
single image signature.
Prev: SE_IMAGE_SCAN_DIRECTION_Z_ENUM.
Next: SE_IMAGE_WRAP_ENUM.
Up:Index