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> instance.
 */
typedef SE_Short_Integer SE_Image_Signature;
Enumerant Definition Value
SE_IMAGSIG_ALPHA
 This value is used to indicate that each texel in the <Image>
 instance 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>
 instance. An <Image> instance with this signature may be called
 an alpha channel or an alpha map. For further details, see
 [FOLEY] Section 17.6, "Image Compositing".

 Note that an alpha map can be composited with:
 - a compatible 123COLOUR <Image> to produce a 123COLOUR_ALPHA map
 - compatible COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, and
   COLOUR_COORDINATE_3 <Image> instances 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 Function> instances providing
    its texture mapping information, at most one of the
    K <Image Mapping Function> instances can legally provide
    an alpha map. (Multiple alpha maps produce an undefined result.)
1
SE_IMAGSIG_LUMINANCE
 This value is used to indicate that the <Image> specifies only
     luminance (also termed intensity) values that form a greyscale
     image, with no colour values. (The effect is that of a
     "black and white" television.)

 A LUMINANCE <Image> instance  can be composited with a compatible
 ALPHA image to produce a LUMINANCE_AND_ALPHA <Image> instance.


 EXAMPLE
 An example of compositing LUMINANCE <Image> instances is the case of
 large areas of terrain <Polygon> instances, 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_IMAGSIG_COLOUR_COORDINATE_1
 This value is used to indicate that each texel in the <Image>
     instance 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 <Image>
 instances of the same dimensions to produce a 123COLOUR <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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can be associated with a
    COLOUR_COORDINATE_1 <Image>. (Multiple COLOUR_COORDINATE_1 <Image>
    instances 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_IMAGSIG_COLOUR_COORDINATE_2
 This value is used to indicate that each texel in the <Image>
     instance 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> instance can be composited
 with compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3 <Image>
 instances of the same dimensions to produce a 123COLOUR <Image>
 instance. (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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can be associated with a
    COLOUR_COORDINATE_2 <Image>. (Multiple COLOUR_COORDINATE_2 <Image>
    instances 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_IMAGSIG_COLOUR_COORDINATE_3
 This value is used to indicate that each texel in the <Image>
     instance 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> instance can be composited
 with compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3 <Image>
 instances of the same dimensions to produce a 123COLOUR <Image>
 instance. (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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can be associated with a
    COLOUR_COORDINATE_3 <Image>. (Multiple COLOUR_COORDINATE_3 <Image>
    instances 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_IMAGSIG_BUMP_MAP_HEIGHT
 This value is used to indicate that the <Image> instance 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 (for example, 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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can legally provide a bump map.
    (Multiple bump maps produce an undefined result.)
6
SE_IMAGSIG_EDCS_CLASSIFICATION_CODE
 This value is used to indicate that each texel in the <Image>
     instance consists of 1 value, an 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_IMAGSIG_LUMINANCE_AND_ALPHA
 This value is used to indicate that the <Image> is (functionally)
     a composite of a luminance <Image> instance and an alpha
     <Image> instance (see SE_IMAGSIG_ALPHA, SE_IMAGSIG_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> instance can be down-sampled to produce
 an ALPHA <Image> instance and a LUMINANCE <Image> instance.

 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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can legally provide a luminance
    and alpha map. (Multiple alpha maps produce an undefined result.)
8
SE_IMAGSIG_123COLOUR
 This value is used to indicate that each texel in the <Image>
     instance 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_colour_coordinate_1 + bits_of_colour_coordinate_2 +
    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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances 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_IMAGSIG_123COLOUR_ALPHA
 This value is used to indicate that each texel in the <Image>
     instance 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_colour_ccordinate_1 + bits_of_colour_coordinate_2 +
    bits_of_colour_coordinate_3 +
    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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances can be associated with a
    123 colour and alpha map <Image>. (Multiple 123 colour and 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_IMAGSIG_ONE_MATERIAL
 This value is used to indicate that each texel in the <Image>
     instance consists of 1 value,
     an index into the <Property Table> instances referenced by this
     <Image> instance. These <Property Table> instances describe the
     material. Normally, a <Property Table Reference> is used to find
     the corresponding <Property Table>'s classification, which <Axis>
     is referred to, and which tick mark value along that <Axis>
     is being referenced. The bits_of_material_1 field is used in place
     of the index_on_axis fields of the <Property Table Reference>
     instances.

 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 Reference>
    instances as desired, as long as there is at least one, and
    bits_of_material_# will handle them.)

 2) All the <Property Table> instances being referred to by the
    <Property Table Reference> instances 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_IMAGSIG_TWO_MATERIALS
 This value is used to indicate that each texel in the <Image>
     instance represents a linear combination of 2 materials in the
     <Property Table> instances referenced by this <Image> instance.
     That is, each texel consists of 3 values: 2 indexes into the
     <Property Table> instances referenced by this <Image> instance,
     and the percentage (an integer, 0 - 100%) of material 2. These
     <Property Table> instances describe the materials. Normally, a
     <Property Table Reference> instance is used to find the
     corresponding <Property Table> instance's classification, which
     <Axis> instance is referred to, and which tick mark value
     along that <Axis> instance is being referenced. The
     bits_of_material_1 and bits_of_material_2 fields are used in
     place of the index_on_axis field values of the
     <Property Table Reference> instances.

 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 Reference>
    instances as desired, as long as there is at least one, and
    bits_of_material_# will handle them.)

 2) All the <Property Table> instances being referred to by the
    <Property Table Reference> instances 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_IMAGSIG_THREE_MATERIALS
 This value is used to indicate that each texel in the <Image>
     instance represents a linear combination of 3 materials in the
     <Property Table> instances referenced by this <Image> instance.
     That is, each texel consists of 4 values: 3 indexes into the
     <Property Table> instances referenced by this <Image> instance,
     and the percentages (integers, 0 - 100%) of
     materials 2 and 3 These <Property Table> instances describe the
     materials. Normally, a <Property Table Reference> is used to
     find the corresponding <Property Table>'s classification, which
     <Axis> is referred to, and which tick mark value 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 index_on_axis field values of the
     <Property Table Reference> instances.

 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 Reference>
    instances as desired, as long as there is at least one, and
    bits_of_material_# will handle them.)

 2) All the <Property Table> instances being referred to by the
    <Property Table Reference> instances 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_IMAGSIG_IMAGE_INDEX
 This value is used to indicate that the <Image> instance consists
 of references to other
 <Image> instances (that is, 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 <Image>
 instances. The index is an index into the <Image Library> instance
 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_IMAGSIG_IMAGE_INDEX <Image> instances to the index of
    this <Image> instance. (This would cause infinite recursion when
    trying to resolve the image to its component parts).

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

 4) All referenced <Image> instances shall have either the same
    image signature X, or SE_IMAGSIG_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_IMAGSIG_BUMP_MAP_UV
 This value is used to indicate that the <Image> instance represents
     a bump map in UV space,
     specifying information used to modify the surface normals of a
     smooth surface. See SE_IMAGSIG_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 Function> instances providing
    its texture mapping information, at most one of the K
    <Image Mapping Function> instances 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