Main Page   Modules   Alphabetical List   Data Structures   Data Fields  

G3x_OPLClone
[Clone Rendering Pipelines]


Defines

#define  rwPDS_G3x_OPLClone_CodeArraySize
#define  rwPDS_G3x_OPLClone_MatPipeRegister()
#define  rwPDS_G3x_OPLClone_AtmPipeRegister()

Functions

RpAtomic RpPDS_G3x_OPLCloneRender (RpAtomic *atomic, RwFrame **cloneFrames, RwUInt32 numClones, RwRGBAReal *cloneColors)

Variables

void *  rwPDS_G3x_OPLClone_VU1Transforms [rwPDS_G3x_OPLClone_CodeArraySize]
RpPDSSkyVU1CodeTemplate  rwPDS_G3x_OPLClone_VU1Code
RwUInt64  G3x_OPLCloneLinePER
RwUInt64  G3x_OPLClonePER
RpPDSSkyMatTemplate  rwPDS_G3x_OPLClone_MatPipe
RpPDSSkyObjTemplate  rwPDS_G3x_OPLClone_AtmPipe

Detailed Description

Documentation for the G3x_OPLClone rendering pipeline. The individual pipelines are not documented fully. However an Example Pipeline Definition is fully documented and all the pipelines have the same structure.

G3x_OPLClone definitions

 
 Projection:    Perspective correct projection

 Primitive:     Triangle strips
                Triangle list

 Lighting:      Object pre-light color
                Single color per clone
            
 Clipping:      Fast path rendering
                Triangle fast culling

 Cloning:       48 maximum clones

 Fog:           All primitives support linear fog
 
   

This pipeline supports object cloning. This allows the application to render an atomic once specifiying an array of RwFrame pointers describing the clone locations. Using a cloning pipeline greatly improves rendering and submission performance. The atomic itself is not rendered hence it's matrix is ignored and not considered one of the clones.

A set of object clones should be rendered by calling RpPDS_G3x_OPLCloneRender. This function will test the clones visibility against the current view frustum and batch the clones for rendering.

See also:
RpPDS_G3x_OPLCloneRender

Define Documentation

 
#define rwPDS_G3x_OPLClone_AtmPipeRegister
 
 

Object pipe register

See also:
rwPDS_G3_Example_AtmPipeRegister , RpPDSRegisterObjPipe
#define rwPDS_G3x_OPLClone_CodeArraySize
 

VU1 Code array size

See also:
rwPDS_G3_Example_CodeArraySize
 
#define rwPDS_G3x_OPLClone_MatPipeRegister
 
 

Material pipe register

See also:
rwPDS_G3_Example_MatPipeRegister , RpPDSRegisterMatPipe

Function Documentation

RpAtomic* RpPDS_G3x_OPLCloneRender RpAtomic   atomic,
RwFrame **    cloneFrames,
RwUInt32    numClones,
RwRGBAReal   cloneColors
 

This function should be used to render a collection of unlit clones. The array of clone frames define the positions of the individual clones. The position of the atomic itself is ignored and isn't rendered.

There is no need to initialized any custom lighting buffer before rendering the clones.

This function should be used in place of RpAtomicRender

Parameters:
atomic  Pointer to the base clone.
cloneFrames  Array of frame pointers, defining the location of each of the clones.
numClones  Number of clones to render.
cloneColors  A single object base color value.
Returns:
The RpAtomic on success : NULL otherwise.

Variable Documentation

RwUInt64 G3x_OPLCloneLinePER
 

VU1 code array node elements

See also:
G3_ExamplePER
RwUInt64 G3x_OPLClonePER
 

VU1 code array node elements

See also:
G3_ExamplePER
RpPDSSkyObjTemplate rwPDS_G3x_OPLClone_AtmPipe
 

Object pipeline template defines

See also:
rwPDS_G3_Example_AtmPipe , RpPDSSkyObjTemplate
RpPDSSkyMatTemplate rwPDS_G3x_OPLClone_MatPipe
 

Material pipeline template defines

See also:
rwPDS_G3_Example_MatPipe , RpPDSSkyMatTemplate
RpPDSSkyVU1CodeTemplate rwPDS_G3x_OPLClone_VU1Code
 

VU1 code template

See also:
rwPDS_G3_Example_VU1Code , RpPDSSkyVU1CodeTemplate
void* rwPDS_G3x_OPLClone_VU1Transforms[rwPDS_G3x_OPLClone_CodeArraySize]
 

VU1 code array

See also:
rwPDS_G3_Example_VU1Transforms

Criterion Software © 1993-2003 Criterion Software Limited. All rights reserved. Built Tue Apr 22 12:46:44 2003. Send Feedback
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)