Platform-independet - Currently Win32, Linux and AmigaOS 4 are supported.
16/32bit color-output - Uses DirectDraw on Win32 and the X11-library on Linux.
Wireframe and solid fill rendering
Vertex- and pixel shaders - Vertex shaders transform vertices to projection-space and set up registers for the pixel shader. Pixel shaders calculate a pixel's color and (optionally) its depth.
Depth-correct interpolation of shader registers
Support for triangle-lists, strips and fans
Rendering of primitives through indexing into a vertex buffer
16-bit and 32-bit index buffer formats
Multiple vertex data streams
Three triangle-subdivision modes - Simply, smooth (simplified implementation of ATI's TruForm) and adaptive (base for displacement-mapping).
Floating point textures depth- and framebuffers - Muli3D supports floating point textures, which can serve as input for shaders or output as depth- or framebuffer.
Standard 2d textures, cubemaps and volume textures
Point-sampling, bilinear and trilinear filtering supported
Wrap and clamp texture addressing modes
Texture sampling in vertex- and pixelshaders
No internal limits on texture dimensions - supported formats are single float up to four floats.
Rendering to cubemap faces - they can be treated as standard 2d textures and therefore may be used as frame- or depthbuffers.
Rendertargets are directly presented - no rendering to a backbuffer is necessary!
Comprehensive math-library - with support for vectors, planes, quaternions and matrices.