The primary interface to images in Mudbox is the Image class.
There are three differend kinds of images;
- Physically contiguous
- Striped
- Virtual - A tiled and versioned non-contiguous.
The first kind is the fastest, but least memory efficient. If the system is not able to allocate the
required memory in one piece, a striped image will be created. A striped image consists of several stripes
of 1 or more rows of pixels.
The third type of image is the most versatile -- It is stored as 128 pixel square tiles. The
tiles are copy-on-write, versioned, and have their own virtual memory system optimized for images.
Texture layers are typically stored in this third type of image so that paint operations on them
can be easily undone.
The following classes are provided in the Mudbox SDK for working with images:
-
ImageDescriptor - Describe an image, specifically how to interpret pixel data.
-
ImgLockPageIterator - Iterate over a specified region of an image in optimal order, locking it in CPU memory.
-
ImgPageIterator - Iterates over a specified region of an image in optimal order.
-
ImgTile - Represents a rectangle. Used to specify rectangular regions of an image.
-
ImgTileUnion - Creates a tile that is the union of its two inputs.
-
PixelDescriptor - Describe an image pixel; how to interpret a piece of pixel data.
-
uInt16Channel - A 16 bit image channel. 0-65535 maps to 0.0 to 1.0.
-
uInt8Channel - An 8 bit image channel. 0-255 maps to 0.0 to 1.0.
-
float16Channel - A 16 bit floating point channel.
-
float32Channel - A 32 bit floating point channel.