The SEDRIS Data Representation Model
APPENDIX C - Types
SE_Image_Signature
/*
 * REGISTERABLE ENUM: SE_Image_Signature
 *
 *   This data type is used in an <Image> instance to indicate
 *   how texels are represented within the <Image>.
 */
typedef SE_Short_Integer SE_Image_Signature;
Enumerant Definition Value
SE_IMG_SIG_ALPHA
 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] Section 17.6, "Image Compositing".

 Note that an alpha map can be composited with:
 - a compatible 123_COLOUR <Image> to produce a 123COLOUR_ALPHA map
 - compatible COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, and
   COLOUR_COORDINATE_3 <Images> to produce a 123COLOUR_ALPHA map.
 - a compatible LUMINANCE <Image> to produce a LUMINANCE_AND_ALPHA map.

 FURTHER CONSTRAINTS:
 1) bits_of_alpha shall 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 shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can legally provide an alpha map. (Multiple alpha maps produce an
    undefined result.)
1
SE_IMG_SIG_LUMINANCE
 Used to indicate that the <Image> is a luminance <Image>, a.k.a.
     intensity <Image>, greyscale <Image>, with no colour 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 shall 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) shall be zero.
2
SE_IMG_SIG_COLOUR_COORDINATE_1
 Used to indicate that each texel in the <Image> consists of 1 colour
     component, namely the first for its colour model (G for RGB, M
     for CMY, or S for HSV). The first colour component of the colour
     model shall be the only value in the texel.

 Note that a COLOUR_COORDINATE_1 <Image> can be composited with
 compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3
 <Images> of the same dimensions to produce a 123_COLOUR <Image>.
 (These can also be composited with a compatible alpha map to produce
 a 123COLOUR_ALPHA map.)

 FURTHER CONSTRAINTS:
 1) bits_of_colour_coordinate_1 shall equal the size per texel
    (in bits); all other bits_of_xxx fields (and their corresponding
    min_value_of_xxx, max_value_of_xxx) shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can be associated with a COLOUR_COORDINATE_1 <Image>. (Multiple
    COLOUR_COORDINATE_1 <Images> produce an undefined result.)

 EXAMPLES:
 1) An RGB texel shall have red as the texel value.

 2) An CMY texel shall have cyan as the texel value.

 3) An HSV texel shall have hue as the texel value.
3
SE_IMG_SIG_COLOUR_COORDINATE_2
 Used to indicate that each texel in the <Image> consists of 1 colour
     component, namely the second for its colour model (G for RGB, M
     for CMY, or S for HSV). The second colour component of the colour
     model shall be the only value in the texel.

 Note that a COLOUR_COORDINATE_1 <Image> can be composited with
 compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3
 <Images> of the same dimensions to produce a 123_COLOUR <Image>.
 (These can also be composited with a compatible alpha map to produce
 a 123COLOUR_ALPHA map.)

 FURTHER CONSTRAINTS:
 1) bits_of_colour_coordinate_2 shall equal the size per texel
    (in bits); all other bits_of_xxx fields (and their corresponding
    min_value_of_xxx, max_value_of_xxx) shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can be associated with a COLOUR_COORDINATE_2 <Image>. (Multiple
    COLOUR_COORDINATE_2 <Images> produce an undefined result.)

 EXAMPLES:
 1) An RGB texel shall have green as the texel value.

 2) An CMY texel shall have magenta as the texel value.

 3) An HSV texel shall have saturation as the texel value.
4
SE_IMG_SIG_COLOUR_COORDINATE_3
 Used to indicate that each texel in the <Image> consists of 1 colour
     component, namely the third for its colour model (B for RGB, Y
     for CMY, or V for HSV). The third colour component of the colour
     model shall be the only value in the texel.

 Note that a COLOUR_COORDINATE_1 <Image> can be composited with
 compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3
 <Images> of the same dimensions to produce a 123_COLOUR <Image>.
 (These can also be composited with a compatible alpha map to produce
 a 123COLOUR_ALPHA map.)

 FURTHER CONSTRAINTS:
 1) bits_of_colour_coordinate_3 shall equal the size per texel
    (in bits); all other bits_of_xxx fields (and their corresponding
    min_value_of_xxx, max_value_of_xxx) shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can be associated with a COLOUR_COORDINATE_3 <Image>. (Multiple
    COLOUR_COORDINATE_3 <Images> produce an undefined result.)

 EXAMPLES:
 1) An RGB texel shall have blue as the texel value.

 2) An CMY texel shall have yellow as the texel value.

 3) An HSV texel shall have brightness value as the texel value.
5
SE_IMG_SIG_BUMP_MAP_HEIGHT
 Used to indicate that the <Image> represents a 2-D height bump map
     (or just height 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).

     A UV type of bump map can be derived from a height bump map by
     computing the texel gradients in both the X and Y directions.

 Rather than manipulating the colour 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_map_height shall 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 shall be zero.

 2) When an object has K <Image Mapping Functions> providing its
    texture mapping information, at most one of the K
    <Image Mapping Functions> can legally provide a bump map.
    (Multiple bump maps produce an undefined result.)
6
SE_IMG_SIG_EDCS_CLASSIFICATION_CODE
 Used to indicate that each texel in the <Image> consists of 1 value,
     an EDCS Classification Code (ECC).

 CONSTRAINTS:
 1) The size per texel shall be the size of EDCS_Classification_Code.

 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) shall be zero.
7
SE_IMG_SIG_LUMINANCE_AND_ALPHA
 Used to indicate that the <Image> is (functionally) a composite of a
     luminance <Image> and an alpha <Image> (see SE_IMG_SIG_ALPHA,
     SE_IMG_SIG_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 shall equal the size per texel (in
    bits); all other bits_of_xxx fields shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can legally provide a luminance & alpha map. (Multiple alpha maps
    produce an undefined result.)
8
SE_IMG_SIG_123COLOUR
 Used to indicate that each texel in the <Image> consists of 3 colour
     components (RGB, CMY, or HSV). The first colour component of the
     colour model shall be the first value in the texel, the second colour
     component of the colour model shall be the second value in the texel,
     and the third colour component of the colour model shall be the third
     value in the texel. No other ordering is possible with this
     signature.

 Note that a 123COLOUR <Image> can be down-sampled to produce a
 COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, or COLOUR_COORDINATE_3
 <Image>.

 FURTHER CONSTRAINTS:
 1) bits_of_first_colour+bits_of_second_colour+bits_of_third_colour shall
    equal the size per texel (in bits); all other bits_of_xxx fields
    (and their corresponding min_value_of_xxx, max_value_of_xxx) shall
    be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can be associated with a 123 colour map <Image>. (Multiple 123 colour
    maps produce an undefined result.)

 EXAMPLES:
 1) An RGB texel shall have red as the first value in the texel, green
    next and finally blue.

 2) A CMY texel shall have cyan as the first value in the texel, magenta
    next, and finally yellow.

 3) An HSV texel shall have hue as the first value in the texel, saturation
    next and finally brightness value.
9
SE_IMG_SIG_123COLOUR_ALPHA
 Used to indicate that each texel in the <Image> consists of 3 colour
     components (RGB, CMY, or HSV) and an alpha value. The first colour
     component of the colour model shall be the first value in the texel,
     the second colour component of the colour model shall be the second
     value in the texel, the third colour component of the colour model
     shall be the third value in the texel, and the alpha value shall be
     the last value in the texel. No other ordering is possible with
     this signature.

 Note that a 123COLOUR_ALPHA <Image> can be down-sampled to produce a
 COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, COLOUR_COORDINATE_3, and/or
 ALPHA <Image>.

 FURTHER CONSTRAINTS:
 1) bits_of_first_colour+bits_of_second_colour+bits_of_third_colour+
    bits_of_alpha shall equal the size per texel (in bits); all other
    bits_of_xxx fields (and their corresponding min_value_of_xxx,
    max_value_of_xxx) shall be zero.

 2) When an object has K <Image Mapping Functions> providing its texture
    mapping information, at most one of the K <Image Mapping Functions>
    can be associated with a 123 colour & alpha map <Image>. (Multiple
    123 colour & alpha maps produce an undefined result.)

 EXAMPLES:
 1) An RGBA texel shall have red as the first value in the texel, green
    next, then blue, and finally alpha.

 2) A CMYA texel shall have cyan as the first value in the texel, magenta
    next, then yellow, and finally alpha.

 3) An HSVA texel shall have hue as the first value in the texel,
    saturation next, then brightness value, and finally alpha.
10
SE_IMG_SIG_ONE_MATERIAL
 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_material_1 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> shall 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> shall be of the same size, since the material reference
    corresponds to all of them.

 3) bits_of_material_1 shall equal the size per texel (in bits); all
    other bits_of_xxx fields (and their corresponding min_value_of_xxx,
    max_value_of_xxx) shall be zero.
16
SE_IMG_SIG_TWO_MATERIALS
 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_material_1 and bits_of_material_2 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> shall 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> shall be of the same size, since the material reference
    corresponds to all of them.

 3) bits_of_material_1+bits_of_material_2+bits_of_material_2_percentage
    shall equal the size per texel (in bits); all other bits_of_xxx
    fields (and their corresponding min_value_of_xxx, max_value_of_xxx)
    shall be zero.
17
SE_IMG_SIG_THREE_MATERIALS
 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_material_1, bits_of_material_2, and bits_of_material_3
     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> shall 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> shall be of the same size, since the material reference
    corresponds to all of them.

 3) bits_of_material_1+bits_of_material_2+bits_of_material_2_percentage
    +bits_of_material_3+bits_of_material_3_percentage shall equal the
    size per texel (in bits); all other bits_of_xxx fields (and their
    corresponding min_value_of_xxx, max_value_of_xxx) shall be zero.
18
SE_IMG_SIG_IMAGE_INDEX
 Used to indicate that the <Image> consists of references to other
 <Images> (i.e., each texel within the <Image> is the index 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> the index of which is specified by that texel. This allows data
 providers to create a gigantic <Image> formed by many smaller <Images>.
 The index is an index into the <Image Library> containing this <Image>.

 FURTHER CONSTRAINTS:
 1) bits_of_image_index shall 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) shall be zero.

 2) Each texel within the <Image> shall resolve to a valid index within
    the <Image Library> containing this image, but neither directly nor
    via other SE_IMG_SIG_IMAGE_INDEX <Images> to the index of this
    <Image>. (This would cause infinite recursion when trying to resolve
    the image to its component parts).

 3) All referenced <Images> shall have the same values as the main <Image>
    for colour_model, data_is_little_endian, data_is_3D,
    component_data_type, scan_direction, and scan_direction_z.

 4) All referenced <Images> shall have either the same image signature X,
    or SE_IMG_SIG_IMAGE_INDEX which resolves to referenced images
    with signature X, so that the main <Image> can be resolved to a
    single image signature.
19
SE_IMG_SIG_BUMP_MAP_UV
 Used to indicate that the <Image> represents a bump map in UV space,
     specifying information used to modify the surface normals of a
     smooth surface. See SE_IMG_SIG_BUMP_MAP_HEIGHT for further
     information on bump maps.

 FURTHER CONSTRAINTS:
 1) (bits_of_bump_map_u + bits_of_bump_map_v) shall 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 shall be
    zero.

 2) When an object has K <Image Mapping Functions> providing its
    texture mapping information, at most one of the K
    <Image Mapping Functions> can legally provide a bump map.
    (Multiple bump maps produce an undefined result.)
20



Prev: SE_Image_Scan_Direction_Z. Next: SE_Image_Wrap.


Return to: Top of this Page, Type Index

Last updated: May 15, 2003 Copyright © 2003 SEDRIS™