Defines |
|
#define | rwPDS_G3x_ADLClone_CodeArraySize |
#define | rwPDS_G3x_ADLClone_MatPipeRegister() |
#define | rwPDS_G3x_ADLClone_AtmPipeRegister() |
Functions |
|
RwBool | RpPDS_G3x_ADLClone_LightingUpload (RpLight *ambient, RpLight *directional) |
RpAtomic * | RpPDS_G3x_ADLCloneRender (RpAtomic *atomic, RwFrame **cloneFrames, RwUInt32 numClones, RwV3d *directionalLTMat) |
Variables |
|
void * | rwPDS_G3x_ADLClone_VU1Transforms [rwPDS_G3x_ADLClone_CodeArraySize] |
RpPDSSkyVU1CodeTemplate | rwPDS_G3x_ADLClone_VU1Code |
RwUInt64 | G3x_ADLClonePER |
RwUInt64 | G3x_ADLCloneLinePER |
RpPDSSkyMatTemplate | rwPDS_G3x_ADLClone_MatPipe |
RpPDSSkyObjTemplate | rwPDS_G3x_ADLClone_AtmPipe |
Projection: Perspective correct projection Primitive: Triangle strips Triangle list Lighting: Custom light buffer Fixed lighting 1 Ambient light 1 Directional light Clipping: Fast path rendering Triangle fast culling Cloning: 48 maximum clones Fog: All primitives support linear fog
This pipeline supports persistent lighting and uses a custom lighting buffer. The lighting upload function RpPDS_G3x_ADLClone_LightingUpload should be used to initialize the lighting buffer prior to pipeline execution.
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_ADLCloneRender. This function will test the clones visibility against the current view frustum and batch the clones for rendering.
|
Object pipe register
|
|
VU1 Code array size
|
|
Material pipe register
|
|
This function setups the custom lighting buffers used by the custom lighting cloning pipeline, G3x_ADLClone definitions. The ambient and directional lights are uploaded into vector memory for use by the custom lighting pipeline. The lighting information will persist whilst the same combination lighting pipelines are used. However, if another set of lighting pipelines are used, either another custom lighting pipeline or a generic lighting pipeline, then the lighting buffer must be reinitialized with this function.
|
|
This function should be used to render a collection of 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. The custom lighting buffer must be initialized before rendering the clones. This is done by calling RpPDS_G3x_ADLClone_LightingUpload which persists the custom lighting information. This function should be used in place of RpAtomicRender // Extract the directional lights ltm at vector. RwFrame *frame = RpLightGetFrame(<Direct>); RwMatrix *ltm = RwFrameGetLTM(frame); RwV3d *dirLTMat = RwMatrixGetAt(ltm); // Setup the persistent lighting information. RpPDS_G3x_ADLClone_LightingUpload(<Ambient>, <Direct>); // Render the clones. RpPDS_G3x_ADLCloneRender(<Atomic>, <CloneFrames>, <NumClones>, dirLTMat);
|
|
VU1 code array node elements
|
|
VU1 code array node elements
|
|
Object pipeline template defines
|
|
Material pipeline template defines
|
|
VU1 code template
|
|
VU1 code array
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |