#include <W3DVolumetricShadow.h>
Inherits Shadow.
Public Member Functions | |
| W3DVolumetricShadow (void) | |
| ~W3DVolumetricShadow (void) | |
Public Member Functions inherited from Shadow | |
| Shadow (void) | |
| if this is set, then no render will occur, even if enableShadowRender() is enabled. Used by Shroud. | |
| void | enableShadowInvisible (Bool isEnabled) |
| void | enableShadowRender (Bool isEnabled) |
| Bool | isRenderEnabled (void) |
| Bool | isInvisibleEnabled (void) |
| void | setOpacity (Int value) |
| adjust opacity of decal/shadow | |
| void | setColor (Color value) |
| adjust ARGB color of decal/shadow | |
| void | setAngle (Real angle) |
| adjust orientation around z-axis | |
| void | setPosition (Real x, Real y, Real z) |
| void | setSize (Real sizeX, Real sizeY) |
Protected Member Functions | |
| virtual void | release (void) |
| release shadow from manager | |
| void | SetGeometry (W3DShadowGeometry *geometry) |
| void | setShadowLengthScale (Real value) |
| void | updateOptimalExtrusionPadding (void) |
| for immobile objects, figure out the length of extrusion needed to hit ground - expensive! | |
| void | setOptimalExtrusionPadding (Real value) |
| const W3DShadowGeometry * | getGeometry (void) |
| void | setRenderObject (RenderObjClass *robj) |
| void | setRenderObjExtent (Real extent) |
| void | Update () |
| void | updateVolumes (Real zoffset) |
| update shadow volumes of all meshes in this model | |
| void | updateMeshVolume (Int meshIndex, Int lightIndex, const Matrix3D *meshXform, const AABoxClass &meshBox, float floorZ) |
| update shadow volume of this mesh. | |
| void | RenderVolume (Int meshIndex, Int lightIndex) |
| void | RenderMeshVolume (Int meshIndex, Int lightIndex, const Matrix3D *meshXform) |
| render single mesh which could belong to a larger hierarchy (optimized for static meshes). | |
| void | RenderDynamicMeshVolume (Int meshIndex, Int lightIndex, const Matrix3D *meshXform) |
| render single mesh which could belong to a larger hierarchy (optimized for animated meshes). | |
| void | RenderMeshVolumeBounds (Int meshIndex, Int lightIndex, const Matrix3D *meshXform) |
| render bounding volume around shadow volume - for debug use. | |
| void | setLightPosHistory (Int lightIndex, Int meshIndex, Vector3 &pos) |
| updates the last position of light | |
| void | buildSilhouette (Int meshIndex, Vector3 *lightPosWorld) |
| for the shadow manager list | |
| void | addSilhouetteEdge (Int meshIndex, PolyNeighbor *visible, PolyNeighbor *hidden) |
| void | addNeighborlessEdges (Int meshIndex, PolyNeighbor *us) |
| void | addSilhouetteIndices (Int meshIndex, Short edgeStart, Short edgeEnd) |
| Bool | allocateSilhouette (Int meshIndex, Int numVertices) |
| void | deleteSilhouette (Int meshIndex) |
| void | resetSilhouette (Int meshIndex) |
| void | constructVolume (Vector3 *lightPos, Real shadowExtrudeDistance, Int volumeIndex, Int meshIndex) |
| void | constructVolumeVB (Vector3 *lightPosObject, Real shadowExtrudeDistance, Int volumeIndex, Int meshIndex) |
| Bool | allocateShadowVolume (Int volumeIndex, Int meshIndex) |
| void | deleteShadowVolume (Int volumeIndex) |
| void | resetShadowVolume (Int volumeIndex, Int meshIndex) |
Static Protected Attributes | |
| static Geometry | m_tempShadowVolume |
Friends | |
| class | W3DVolumetricShadowManager |
Definition at line 93 of file W3DVolumetricShadow.h.
| W3DVolumetricShadow::W3DVolumetricShadow | ( | void | ) |
Definition at line 1698 of file W3DVolumetricShadow.cpp.
| W3DVolumetricShadow::~W3DVolumetricShadow | ( | void | ) |
Definition at line 1737 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 2348 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 2262 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 2415 of file W3DVolumetricShadow.cpp.
Definition at line 3170 of file W3DVolumetricShadow.cpp.
Definition at line 3328 of file W3DVolumetricShadow.cpp.
for the shadow manager list
Definition at line 2433 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 2612 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 2849 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 3255 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 3361 of file W3DVolumetricShadow.cpp.
|
inlineprotected |
Definition at line 120 of file W3DVolumetricShadow.h.
|
inlineprotectedvirtual |
release shadow from manager
Implements Shadow.
Definition at line 109 of file W3DVolumetricShadow.h.
|
protected |
render single mesh which could belong to a larger hierarchy (optimized for animated meshes).
Definition at line 1435 of file W3DVolumetricShadow.cpp.
|
protected |
render single mesh which could belong to a larger hierarchy (optimized for static meshes).
Definition at line 1375 of file W3DVolumetricShadow.cpp.
|
protected |
render bounding volume around shadow volume - for debug use.
Debug function to draw bounding boxes around shadow volumes
Definition at line 1547 of file W3DVolumetricShadow.cpp.
renders a specifc volume from the model hierarchy
Definition at line 1351 of file W3DVolumetricShadow.cpp.
Definition at line 3291 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 3375 of file W3DVolumetricShadow.cpp.
|
protected |
Definition at line 1765 of file W3DVolumetricShadow.cpp.
|
inlineprotected |
updates the last position of light
Definition at line 138 of file W3DVolumetricShadow.h.
|
inlineprotected |
Definition at line 119 of file W3DVolumetricShadow.h.
|
inlineprotected |
Definition at line 122 of file W3DVolumetricShadow.h.
|
inlineprotected |
Definition at line 123 of file W3DVolumetricShadow.h.
|
inlineprotected |
Definition at line 117 of file W3DVolumetricShadow.h.
|
protected |
Called once per frame for each object, when necessary it will reconstruct the shadow volume for this shadow from the silhouette of the geometry and any light sources
Definition at line 1812 of file W3DVolumetricShadow.cpp.
|
protected |
update shadow volume of this mesh.
Definition at line 1975 of file W3DVolumetricShadow.cpp.
|
protected |
for immobile objects, figure out the length of extrusion needed to hit ground - expensive!
Definition at line 1188 of file W3DVolumetricShadow.cpp.
|
protected |
update shadow volumes of all meshes in this model
Update shadow volumes belonging to all meshes of this shadow caster. Use zoffset to extend shadows below object's base by given amount.
Definition at line 1891 of file W3DVolumetricShadow.cpp.
|
friend |
Definition at line 95 of file W3DVolumetricShadow.h.
|
protected |
amount to extrude shadow beyond where it would normally stop (ground level below object).
Definition at line 164 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 158 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 178 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 188 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 139 of file W3DVolumetricShadow.h.
|
protected |
silhouette indices from each mesh.
Definition at line 190 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 185 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 179 of file W3DVolumetricShadow.h.
|
protected |
render object belonging to model casting shadow
Definition at line 160 of file W3DVolumetricShadow.h.
|
protected |
maximum possible horizontal reach of shadow from center of object.
Definition at line 163 of file W3DVolumetricShadow.h.
|
protected |
scale factor used to reduce/clamp shadow length
Definition at line 162 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 173 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 177 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 175 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 176 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 174 of file W3DVolumetricShadow.h.
|
protected |
Definition at line 182 of file W3DVolumetricShadow.h.
|
staticprotected |
Definition at line 172 of file W3DVolumetricShadow.h.