MASI-CiX Documentation

SDK Home | Updates | FAQ | Forums | Index
Start Page | FAQ | Index | Engine Overview | MASI Primitives | Extensibility | Pipeline | Licensing
Class Reference | Global Functions | Global Objects
Index | General | Graphics | Input | Sound | Other
Appendices
subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link
subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link
subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

Primitives

small logo

Layer Based Drawing:

Scenes created in MASI are based on "Layers". A layer is a hook defining when to draw a primitive in MASI. Layers have an associated Z-ordering, and as such, all primitives attached to a layer with Z of, say, 10, will be drawn below any on layers with Z coordinates higher than 10. Internal to a layer, there is a fixed order that objects are drawn in, which is defined in the documentation on the rendering pipeline. Layers with the same Z-coordinate can be drawn in either order. Layer Z coordinates can range from 0 to 232-1.

Layer objects are completely transparent to the client program, and are managed exclusively by MASI. See the documentation on Layer Functions for more information.

Sprites:

The most commonly used primitive in MASI is a Sprite, rectangularly shaped parallelograms. These can be textured or untextured, and comprise most 2D "objects". A single sprite can animate, rotate, be recoloured, scaled and moved easily. In addition to the base class Sprite, a multi-textured version is also available, as well as one designed to use a pixel shader.

Text:

MASI has two text primitives, Labels and TextBlocks. A TextBlock is actually an ordered list of Labels, managed by MASI. Labels and TextBlocks both use TextShaders to draw the actual glyphs to the screen. If you want multi-line text within a contrained rectangle, use TextBlocks. Otherwise, use Labels, which have much less overhead.

Tesselated Sprites:

If you require more complex geometry than is offered by the four-vertex sprite, MASI also includes a tesselated, deformable primitive, DeformationMesh. It shares much of the functionality of the basic Sprite class, and allows modification of individual vertex positions.

Particle Systems:

MASI supports two classes of particle system, the BasicArray family, and the AdvArray family. BasicArrays use simple mathematical rules to update particles, and require less code to produce. The generating functions for BasicArrays are historically unstable, and a slight amount of mystic voodoo is required to use them effectively, but we provide a particle effect editor to avoid this problem.

AdvArrays use splines to define particle properties, which can be either linearly or cubically interpolated. The AdvArray system is very scalable, and has higher performance than the BasicArray system. However, it requires a lot of code to setup an AdvArray.

Both families of effects can do things the other cannot, see Particle Effects for more details.

Animated Textures:

There are many ways to animate the texture on a Sprite (or derived class). The most primitive technique is simply to load all the frames as textures and change them at will. Alternatively, you can use an atlas-type texture, consisting of many frames of animation in one texture, then use the inbuilt texture animation functions.

The preferred method is to use the ProgressiveTexture class to define a texture that updates automatically. MASI provides the ability to write and read DGR files, which is its native animation format.

About Us | Main Site | Contact Us | ©2006 Acheron Design