Functions |
|
RpAtomic * | RtSkinSplitAtomicSplitGeometry (RpAtomic *atomic, RwUInt32 boneLimit) |
Some platforms impose a limit on the number bones permissible in a single object. This limit is due to the number of matrices that can be uploaded to platform hardware. This number can vary from platform to platform. Please refer to the platform specific section Bone limit in the RpSkin plugin documentation for more information on is subject.
An object that requires more bones that can be supported on the target platform will fail to load and must be remodeled as mulitple objects.
RtSkinSplitAtomicSplitGeometry attempts to offset the limitations by rearranging the meshes so each mesh requires less than the platform limit. Only the bone matrices required by each mesh are loaded.
This means an object can have more bones than supported by the platform and still render. The bone restriction is moved from the object level to the mesh level.
Only polygonal based objects can be split. Non-polygonal objects, patches, are not supported. The platforms' bone limit still applies to these objects.
There is a performance penalty in rendering a split object to a non-split object. The performance lost will vary from platform to platform. The performance lost is due to the extra meshes present. Each extra mesh requires additional processing not present in a non-split object.
The selective loading of bone matrices is also less efficient than loading all the bone matrices in one transfer.
|
RtSkinSplitAtomicSplitGeometry splits the geometry such that each mesh will use, at most, the 'boneLimit' number of bones matrices. The source geometric data is not modified. Instead, the underlying meshes are rearranged such that each mesh requires at most, the specified bone limit. If the atomic's geometry does not require rearranging, then it is left untouched. If the atomic's geometry has been already been split, then the previous rearrangement is lost and is replaced by the new version.
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |