Main Page   Modules   Alphabetical List   Data Structures   Data Fields  

RtWorldImportPartitionSelectors
[RtWorldImport]


Functions

RwReal  RtWorldImportCullMiddleSpacePartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportCullEndSpacePartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportCullSpacePartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportMaterialCountPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportMaterialSeparatePartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportPartitionHintPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportHintBBoxPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportBalancedCullPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportMaximumOccluderPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportDisjointOccluderPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportGeneralOccluderPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportLeastCutAndBalancedPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportMaximumExtentPartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
RwReal  RtWorldImportBalancedTreePartitionSelector (RtWorldImportBuildSector *buildSector, RtWorldImportBuildStatus *buildStatus, RtWorldImportPartition *partition, void *userData)
void  RtWorldImportSetStandardBuildPartitionSelector (RtWorldImportBuildPartitionSelector partitionSelector, void *userData)

Detailed Description

The set of provided RtWorldImportPartitionSelectors: Selects a good partition by calling one of the RtWorldImportPartitionIterators and then one of the RtWorldImportPartitionEvaluators to see which is best.

Function Documentation

RwReal RtWorldImportBalancedCullPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportBalancedCullPartitionSelector is a composite partition selector that attempts to cull most space, and balance the BSP whilst minimizing the polygonal and material splits in the scene.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportBalancedTreePartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportBalancedTreePartitionSelector selects the partition that divides the world roughly in half (with respect to the geometry) and minimizes the aspect difference. I.e. producing a balanced scene and tree.

Note:
This partition selector does NOT honor hints, but is guaranteed to always find a partition.
Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportCullEndSpacePartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportCullEndSpacePartitionSelector selects the partition that removes the largest amount of empty space in a sector - this space is at either end only.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  A pointer to an RwReal that is the minimum percentage of space that may be removed. (Typically set between 0.05 and 0.25.)
Returns:
The cost value of the partitioner.
RwReal RtWorldImportCullMiddleSpacePartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportCullMiddleSpacePartitionSelector selects the partition that removes the largest amount of empty space in a sector - this space is from the middle of the sector only.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  A pointer to an RwReal that is the minimum percentage of space that may be removed. (Typically set between 0.05 and 0.25.)
Returns:
The cost value of the partitioner.
RwReal RtWorldImportCullSpacePartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportCullSpacePartitionSelector selects the partition that removes the largest amount of empty space in a sector - this space can be at either end, or the middle of the sector.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  A pointer to an RwReal array of size two that is the minimum percentage of space that may be removed for end and middle space culling, respectively. (Typically set between 0.05 and 0.25.)
Returns:
The cost value of the partitioner.
RwReal RtWorldImportDisjointOccluderPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportDisjointOccluderPartitionSelector selects the partition that is a good occluder, or is likely to put a cap or boundary along transitions of high visibility change - such as the roof of a building. This is good for (orthogonal) medium-occlusion outdoor scenes and city-scapes.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
See also:
RtWorldImportGeneralOccluderPartitionSelector , RtWorldImportMaximumOccluderPartitionSelector
RwReal RtWorldImportGeneralOccluderPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportGeneralOccluderPartitionSelector selects either an indoor-type or outdoor-type partition as appropriate from RtWorldImportMaximumOccluderPartitionSelector and RtWorldImportDisjointOccluderPartitionSelector respectively.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  A pointer to an RwReal that is the 'outdoor size' - the preferred minumum outdoor sector size - that dividing the outdoor sector below this value returns rtWORLDIMPORTINVALIDPARTITION, and thus attempts a termination subsequently.
Returns:
The cost value of the partitioner.
See also:
RtWorldImportMaximumOccluderPartitionSelector , RtWorldImportDisjointOccluderPartitionSelector
RwReal RtWorldImportHintBBoxPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportHintBBoxPartitionSelector partitions the scene using the faces of the bounding boxes in the hints. It attempts to minimise cuts to other bounding boxes.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportLeastCutAndBalancedPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportLeastCutAndBalancedPartitionSelector selects the partition that is cut a relatively small number of times whilst being balanced in terms of polygons on either side - ultimately, this is all to keep splits to a minimum.

NB: This scheme does NOT honor "Partition hints"

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportMaterialCountPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportMaterialCountPartitionSelector partitions along good occluders whilst principally trying to minimise material cuts. It partitions until the number of materials per sector is below a given number.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  A pointer to an RwInt32 that is the maximum number of materials per sector
Returns:
The cost value of the partitioner.
RwReal RtWorldImportMaterialSeparatePartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportMaterialSeparatePartitionSelector Tries to separate the scene into regions of similar materials whilst minimizing the cuts to other materials.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportMaximumExtentPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportMaximumExtentPartitionSelector selects the partition that divides the sector in half as to minimize the aspect difference.

NB: This scheme does NOT honor "Partition hints"

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  TRUE if it should honor hints, FALSE otherwise.
Returns:
The cost value of the partitioner.
RwReal RtWorldImportMaximumOccluderPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportMaximumOccluderPartitionSelector selects the partition that covers most polygons in the scene, thus likely to be maximum occluder. This is good for (orthogonal) high-occlusion indoor scenes.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
See also:
RtWorldImportGeneralOccluderPartitionSelector , RtWorldImportDisjointOccluderPartitionSelector
RwReal RtWorldImportPartitionHintPartitionSelector RtWorldImportBuildSector   buildSector,
RtWorldImportBuildStatus   buildStatus,
RtWorldImportPartition   partition,
void *    userData
 

RtWorldImportPartitionHintPartitionSelector is new for RenderWare 3.4. It uses partition hints and turns them into partitions. It also honors shield hints.

Parameters:
buildSector  A pointer to the Build Sector.
buildStatus  A pointer to the Build Status.
partition  A pointer to the partition that is found.
userData  NULL.
Returns:
The cost value of the partitioner.
void RtWorldImportSetStandardBuildPartitionSelector RtWorldImportBuildPartitionSelector    partitionSelector,
void *    userData
 

RtWorldImportSetStandardBuildPartitionSelector is called to determine whether partitioning will be achieved automatically, using the default partition selected, or manually.

Parameters:
partitionSelector 
See also:
RtWorldImportBuildPartitionSelector
Parameters:
userData  For a manual build, a pointer to a RtWorldImportGuideKDTree; otherwise a pointer to an RwInt32 that is the number candidate partitions that are tested
See also:
RtWorldImportSetBuildCallBacks , RtWorldImportSetBuildCallBacksUserData

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