Images

Element type: miSCENE_IMAGE
Data type: miImg_image
Sizes: -
Defaults: all nulls
typedef struct miImg_image {
        miBoolean       filter;         /* caller wants filtered lookups */
        int             dirsize;        /* valid # of filter levels */
        int             dir[miIMG_DIRSIZE]; /* offs from this to other imgs */
        int             width, height;  /* width and height in pixels */
        int             bits;           /* requested bits per comp, 8/16/32 */
        int             comp;           /* requested components/pixel, 1..4 */
        miCBoolean      local;          /* local texture, use image/mmap/path*/
        miCBoolean      writable;       /* writable texture (eg. light map) */
        miCBoolean      cacheable;      /* cache in parts */
        miCBoolean      remap;          /* image is remapped */
        int             type;           /* requested miIMG_TYPE_* */
        miTag           real_name;      /* (local) file name to open */
        miTag           colorprofile;   /* color profile for image data */
        int             c[4];           /*      indexed by miIMG_*; 4*height */
                                        /*      component indices follow, */
                                        /*      then component scanlines */
} miImg_image;

A translator must provide: nothing.
A translator may provide: nothing.
Provided by mi_scene_create: all fields.

Images consist of three sections: the header (type miImg_image), a list of scanlines indices, and the actual uncompressed pixel data. There are height − 1 scanline indices, one set of comp (up to 4) indices for each scanline. They contain indices relative to the first pixel data byte. The pixel data is arranged in one-component scanlines of width component values each. All images are scanned bottom-up.

filter, if nonzero, enables pyramid texture mode.

dirsize and dir are used for internal purposes.

width is the number of pixels per scanline.

height is the number of scanlines.

bits is the number of bits per component pixel.

comp is the number of components per pixel.

writable, if true, specifies a writable texture. Such textures are created by shaders, usually lightmap shader, and then written to disk.

cacheable3.1, if true, is used internally to mark images that are paged into a texture cache. Do not set.

remap, if true, specifies that the image is a .map file created with imf_copy -r, which rearranges pixels so that the unit of caching is a ractangle instead of a group of scanlines. This increases cache performance for large textures.

local, if true, specifies a local image that each slave on the network must read locally, instead of fetching it across the network from the master.

type is the data type of the image.

real_name2.1 is the tag of a database item of type string (contains a null-terminated ASCII string) that is the full path of the file to open. This name is used for local images, where the file is opened when first accessed (after the usual filename rewriting). For this purpose, the path is not sufficient because it may be truncated. mental ray 3.0 accesses a symbol table to find the name specified with mi_api_texture_file_def instead of relying on real_name, because the file may be demand-loaded or memory-mapped, so that real_name may be unavailable or incorrect.

color_profile3.4 is a tag associated with the color profile describing the color space of the image color data. When the image data are created and rendering was performed in a prescribed color space, then the color data are transformed to the specified color profile before they are written. If the image data are read, then they are transformed from the given representation to the color profile associated with the rendering color space.

c is the first scanline index block. Only comp of the 4 available indices are used. It is unused if local is true.

Copyright © 1986-2010 by mental images GmbH