C++ API Reference

Access Rendering Data. More...

#include <MRenderData.h>

Public Member Functions

 MRenderData ()
 Default class Constructor.
 
void worldToScreen (const MFloatPoint &worldPoint, MFloatPoint &screenPoint) const
 Converts world space point to screen space. More...
 
void screenToWorld (const MFloatPoint &screenPoint, MFloatPoint &worldPoint) const
 Converts screen space point to world space. More...
 

Public Attributes

bool perspective
 set if the camera has a perspective projection
 
unsigned short resX
 the x resolution of the rendered image
 
unsigned short resY
 the y resolution of the rendered image
 
unsigned short left
 the left (low) render region dimension
 
unsigned short bottom
 the bottom (low) render region dimension
 
unsigned short right
 the right (high) render region dimension
 
unsigned short top
 the top (high) render region dimension
 
unsigned short bytesPerChannel
 number of bytes per channel of the rgbaArr
 
unsigned short xsize
 the actual x resolution of rgbaArr and depthArr
 
unsigned short ysize
 the actual y resolution of rgbaArr and depthArr
 
float fieldOfView
 camera horizontal field of view in radians
 
float aspectRatio
 camera pixel aspect ratio
 
MFloatVector viewDirection
 view direction of the camera (object space)
 
MFloatPoint eyePoint
 position of the camera (object space)
 
MFloatMatrix worldToEyeMatrix
 camera matrix to transform to eye space
 
unsigned char * rgbaArr
 this is a 1d array representing the output image buffer. More...
 
float * depthArr
 this is a 1d array representing the output depth buffer. More...
 

Detailed Description

Access Rendering Data.

The rendered image and depth map can be changed following the software render by instanciating a MRenderCallback and overriding renderCallback() or postProcessCallback(). When these methods are invoked, a MRenderData is passed as an argument; the rgbaArr and depthArr can then be changed by this API. Methods and data are provided to assist in transforming back and forth from world space to image space. Paint Effects and Fur are two examples which use this mechanism to change the rendered image.

Examples:
renderAccessNode/renderAccessNode.cpp.

Member Function Documentation

void worldToScreen ( const MFloatPoint inPoint,
MFloatPoint outPoint 
) const

Converts world space point to screen space.

Screen depth is stored in outPoint.z.

Parameters
[in]inPointThe original point in world space
[out]outPointThe converted point in screen space
Examples:
renderAccessNode/renderAccessNode.cpp.
void screenToWorld ( const MFloatPoint inPoint,
MFloatPoint outPoint 
) const

Converts screen space point to world space.

Screen depth is stored in inPoint.z.

Parameters
[in]inPointThe original point in screen space
[out]outPointThe converted point in world space
Examples:
renderAccessNode/renderAccessNode.cpp.

Member Data Documentation

unsigned char* rgbaArr

this is a 1d array representing the output image buffer.

It is of size: resX * resY * 4 * bytesPerChannel. The array is indexed as [(resX * x + y) * 4 * bytesPerChannel], where (x,y) is the current pixel coordinates. The "4" multiplier is used for storing RGBA information, in the order of a,b,g,r (on OSX) or b,g,r,a (on Windows and Linux).

Examples:
renderAccessNode/renderAccessNode.cpp.
float* depthArr

this is a 1d array representing the output depth buffer.

It is of size: resX * resY, where each depth value is a single precision floating point vlue. It is indexed as [resX * x + y], where (x,y) is the current pixel coordinates.

Examples:
renderAccessNode/renderAccessNode.cpp.

The documentation for this class was generated from the following files: