[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | [ Search: ] |
Although the volumetric shadows render manger can cope with opaque objects as well, it is important to take into account the following, before choosing to use this render manager for your current scene:
‘genmesh’
. Although
this is the most generic type of mesh used in Crystal Space, support for
materials from other types of meshes has to be added as well.
farplane
and the nearplane
values while computing the viewing
frustum and then applying the standard shadow mapping technique.
The simplest method to select the volumetric shadows render manager is to use the following configuration option:
Engine.RenderManager.Default = crystalspace.rendermanager.osm |
Alternately, the volumetric shadows render manager can also be loaded manually as follows:
csRef<iRenderManager> rm = csLoadPlugin<iRenderManager> (objectRegistry, "crystalspace.rendermanager.osm"); |
Note: When loading the volumetric shadows render manager manually the 'CS/data/config/engine.cfg' configuration file will not, by default, be present in the configuration manager. This file specifies configuration options used by the volumetric shadows render manager. Be sure to define these configurations option prior to loading the volumetric shadows render manager. This ca be done by:
csRef<iConfigManager> cfg = csQueryRegistry<iConfigManager> (GetObjectRegistry()); cfg->AddDomain ("/config/engine.cfg", vfs, iConfigManager::ConfigPriorityPlugin); |
After being loaded, the engine must be instructed to use the volumetric shadows render manager as follows:
engine->SetRenderManager (rm); |
The configuration options available for the volumetric shadow render manager via the 'CS/data/config/engine.cfg' file are:
RenderManager.OSM.ShadowMapResolution
Choosing the texture resolution (defaults to 512
). This value is
used for both the opacity maps and the shadow maps needed by the 3 render
passes.
RenderManager.OSM.ForceTextureNumber
Choosing the desired number of textures for opacity maps, with values from
1 to 8 (defaults to 2
). The number of textures actually used could be
smaller than the desired one, because it is chosen as the minimum of the number
of available MRTs (multiple render targets) on the current GPU and the desired
number of textures. A bigger value for this variable produces better renderings,
but at a higher computational cost, so a compromise between performance and
visuals has to be done for the current scene by choosing a value for this
variable.
RenderManager.OSM.Layers
Setting the default Render Layers file. This should always be equal to ‘/data/renderlayers/lighting_default_osm.xml’
.
The volumetric shadow render manager uses the Bounding Opacity Maps algorithm (see section About Volumetric Shadows) in order to achieve accurate volumetric shadows at real-time performance. The advantage of this method is that it distributes the opacity maps so that they follow the light’s distribution from the real-world. In order to do this it uses a hybrid split function that sets a ratio between logarithmic and linear splitting. Determining the splitting ratio represents the current bottleneck of this render manager, because it involves using the CPU to do image processing on textures readback from the GPU. Fortunately the splitting ratio only needs to be recomputed when the objects’ density changes or new objects are brought into the light’s perspective. For more information regarding how to recompute the splitting ratio see the next section.
The volumetric shadows render manager implements the iDebugHelper
interface and responds to the following debug commands:
reset_split_ratio
Begins recomputing the splitting ratio. This causes the application to have only interactive and not real-time performance and should be called only when necessarily. Refer to the above section for more information.
show_render_textures
Toggles a display of the textures generated by the 3 render passes at the bottom of the screen. The first two textures correspond to the depth textures, the one that gives information about the furthest geometry is first and the one that gives information about the closest points comes second. The rest of the textures are opacity textures in a number depending on the available MRTs and the desired number of textures.
show_opaque_objects
Makes the volumetric shadow render manager work with opaque objects as well.
hide_opaque_objects
Makes the volumetric shadow render manager work only with translucent objects,
which have the alpha
rendering priority in Crystal Space.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated using texi2html 1.76.