#define S_DOCUMENTATION #define S_DOCUMENTATION_DEVELOPER #define PAGE Documentation #define SUBPAGE Developer #define TITLE Pixel Compounds #include "header.shtml"
Author: eilemann@gmail.com
State: Implemented in 0.5
This features adds support for a new type of decomposition and recomposition, whereby each contributing channel renders each n'th pixel of the destination channel.
The frustum for the source channels gets distorted so that the channel only renders 1/nth of the pixels in one dimension. Afterwards the frustum is moved slightly to select the 'starting' point of the channel.
Pixel compounds are ideal for purely fill-limited applications such as volume rendering and raytracing. The load is equally distributed, thus allowing to scale the fill-rate linearly.
Pixel compounds do not reduce the amount of data per frame, since the view frustum on the source channels is almost the same as the destination's channel frustum.
class Pixel
{
public:
[...]
uint32_t index;
uint32_t size;
};
const Pixel& Channel::getPixel() const;
compound
{
pixel [ int int ] // pixel decomposition (index size)
}
OpenGL functionality which is influenced by the raster position will not work correctly with pixel compounds, or needs at least special attention. Among them are: lines, points, sprites, glDrawPixels, glBitmap, glPolygonStipple.
Multi-level database/pixel compounds do not work correctly.
#include "footer.shtml"