This plugin supports both ends of the PVS process: you can use it to create PVS data as well as to accelerate rendering using the results.
Potentially Visible Sets processing is usually applied to large 3D models, such as one of a large building, where only a small portion is ever expected to be visible at any one time. In use, the application developer tells the plugin to check a number of points within an RpWorld and determine which RpWorldSector objects are visible from each location. When this process is completed, the rendering engine can easily determine which RpWorldSector objects are to be rendered at any location.
The format of PVS data has changed since release 3.10. SDK-tools pvscnvrt can be used to convert from old-style to new-style PVS data. It can also be used to delete, generate and enhance PVS data.
|
RpPVSCallBack This typedef sets the callback function for sampling within a world sector.
|
|
RpPVSProgressCallBack This typedef sets the callback function for sampling within a world sector.
The PVS plugin must be attached before using this function. |
|
RpPVSAtomicVisible is used to determine if the atomic is visible from the current visibility map. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSConstruct is used to create Potential Visibility Set, PVS, for the world. The PVS is created by taking samples within each world sector to build a visibility map. This map indicates which other world sectors are visible from within its boundary. The RpPVSCallBack callback function is used for sampling within a world sector. This can be RpPVSGeneric or a user own private function for specific samples distribution.
|
|
RpPVSConstructSector is used to create Potential Visibility Set, PVS, for the given world sector. The PVS is created by taking samples within the world sector to build a visibility map. This map indicates which other world sectors are visible from within its boundary.
|
|
RpPVSDestroy is used to destroy the PVS for the given world. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSGeneric is the RenderWare supplied function for sampling within a world sector. The samples are non-uniformly distributed in a regular grid. This requires the private data to be a pointer to a RwReal, in the range 0.01 to 1.0, to specify the sampling distance between two points. The number is the fraction of the major axis length of the world's bounding box. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSGetProgressCallBack is used to retrieve PVS creation progress callback function of the specified world. The callback is called from RpPVSGeneric every time it has processed a single world sector, enabling an application to monitor how the generation of PVS data is progressing and, possibly, to provide feedback to the user.
|
|
RpPVSHook is used to enable rendering of the specified world using the world's PVS data. Typically used prior to a frame render (and followed afterwards by RpPVSUnhook) but may be permanently enabled if PVS rendering is always required. If RpPVSHook is not used all world sectors in the current camera's view frustum are rendered. Note that this function overrides the world sector render callback which is only returned to its original form when RpPVSUnhook is called. The PVS plugin must be attached before using this function. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSPluginAttach is used to attach the PVS plugin to the RenderWare system to enable the building and use of potentially visible sets. The PVS plugin must be attached between initializing the system with RwEngineInit and opening it with RwEngineOpen.
|
|
RpPVSQuery is used to determine whether the specified world contains PVS data, that is, if it has already been processed using RpPVSConstruct. The PVS plugin must be attached before using this function. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSSamplePOV is used to update the current visibility map with a sample using the given position. It is possible for the PVS to drop sectors incorrectly due to insufficient sampling. RpPVSSamplePOV can be used to repair such errors by adding extra samples at specific positions. This functions assumes PVS data is already present in a world.
|
|
RpPVSSetBackFaceCulling is used to turn back face culling on or off. By default, it is TRUE. IMPORTANT NOTES:
|
|
RpPVSSetCollisionDetection is used to turn collision detection on or off. With collision detection on, only sample points within the geometry of a sector will be chosen.
|
|
RpPVSSetProgressCallBack is used to define a PVS creation progress callback function for the specified world. The callback is called from RpPVSGeneric every time it has processed a single world sector, enabling an application to monitor how the generation of PVS data is progressing and, possibly, to provide feedback to the user.
|
|
RpPVSSetViewPosition is used to set the viewing sector for subsequent PVS culling. NB: This is the alternative function to RpPVSSetViewSector, which is overridden by this function call. It selects the appropriate visibility map for PVS culling. This function must be called before any render function otherwise incorrect culling will occur. RpPVSSetViewSector is typically used immediately prior to a frame render by setting the view position equal to that of the current camera. The PVS plugin must be attached before using this function. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSSetViewSector is used to set the viewing sector for subsequent PVS culling. NB: This is the alternative function to RpPVSSetViewPosition, which is overridden by this function call. It selects the appropriate visibility map for PVS culling. This function must be called before any render function otherwise incorrect culling will occur. RpPVSSetViewSector is typically used immediately prior to a frame render by setting the view position equal to that of the current camera. The PVS plugin must be attached before using this function. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSSetWorldSectorPairedVisibility is to mark the first given world sector with the required visibility from the second given world sector, and vice versa if the mutal flag is set to TRUE. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSSetWorldSectorVisibility is to mark the given world sector as visible (or not) from the current sector (set by calling RpPVSSetViewPosition). The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSStatisticsGet is used to retrieve statistics relating to the rendering perfomance of the PVS data in the specified world. The figures obtained from this function are: (a) the total number of triangles that would have been rendered if PVS data was not used, and (b) the total number of triangles that have been rendered using the PVS data. Typically used immediately after a frame render. The PVS plugin must be attached before using this function.
|
|
RpPVSUnhook is used to disable rendering of the specified world using the world's PVS data. Typically used just after to a frame render (which followed a call to RpPVSHook) but may be permanently disabled if PVS rendering is not required. Note that the function RpPVSHook overrides the world sector render callback which is only returned to its original form when RpPVSUnhook is called. The PVS plugin must be attached before using this function. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RpPVSWorldSectorVisible is used to determine if the sector is visible using the current visibility map. The include file rppvs.h and the library file rppvs.lib are required to use this function. The library file rpworld.lib is also required.
|
|
RxNodeDefinitionGetPVSWorldSectorCSL returns a pointer to a node implementing PVS culling in custom world sector object pipelines. This nodes prevents world sectors from being rendered if they are culled by the PVS visilibility map. This node should be inserted at the beginning of a world sector object pipeline. It must come before any nodes which create or expect packets (e.g an instancing node), as it does not itself create or use them. If a world sector is visible, execution continues to the next node in the pipeline, otherwise the pipeline is terminated. The node has one output and no clusters of interest.
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |