Method | Description | |
---|---|---|
ExtrudeVertices ( |
Utility method for extruding vertices based on a light. Unfortunately, because D3D cannot handle homogenous (4D) position coordinates in the fixed-function pipeline (GL can, but we have to be cross-API), when we extrude in software we cannot extrude to infinity the way we do in the vertex program (by setting w to 0.0f). Therefore we extrude by a fixed distance, which may cause some problems with larger scenes. Luckily better hardware (ie vertex programs) can fix this. |
|
GetDarkCapBounds ( |
Gets the world space bounding box of the dark cap, as extruded using the light provided.
|
|
GetEdgeList ( ) : |
Gets details of the edges which might be used to determine a silhouette. Defaults to LOD index 0. |
|
GetEdgeList ( int lodIndex ) : |
Gets details of the edges which might be used to determine a silhouette.
|
|
GetLastShadowVolumeRenderableEnumerator ( ) : IEnumerator |
Return the last calculated shadow renderables.
|
|
GetLightCapBounds ( ) : |
Gets the world space bounding box of the light cap.
|
|
GetPointExtrusionDistance ( |
Get the distance to extrude for a point/spot light.
|
|
GetShadowVolumeRenderableEnumerator ( ShadowTechnique technique, |
Gets an iterator over the renderables required to render the shadow volume. Shadowable geometry should ideally be designed such that there is only one ShadowRenderable required to render the the shadow; however this is not a necessary limitation and it can be exceeded if required. |
|
GetShadowVolumeRenderableEnumerator ( ShadowTechnique technique, |
||
GetWorldBoundingBox ( ) : |
||
GetWorldBoundingBox ( bool derive ) : |
Get the world bounding box of the caster.
|
Method | Description | |
---|---|---|
ExtrudeBounds ( |
Utility method for extruding a bounding box.
|
|
GenerateShadowVolume ( |
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
|
|
GetExtrusionDistance ( Vector3 objectPos, |
Helper method for calculating extrusion distance.
|
|
UpdateEdgeListLightFacing ( |
Tells the caster to perform the tasks necessary to update the edge data's light listing. Can be overridden if the subclass needs to do additional things.
|
protected ExtrudeBounds ( |
||
box | Original bounding box, will be updated in-place. | |
lightPosition | Vector4 | 4D light position in object space, when w=0.0f this /// represents a directional light |
extrudeDistance | float | The distance to extrude. |
return | void |
public static ExtrudeVertices ( |
||
vertexBuffer | The vertex buffer containing ONLY xyz position /// values, which must be originalVertexCount * 2 * 3 floats long. | |
originalVertexCount | int | The count of the original number of
/// vertices, ie the number in the mesh, not counting the doubling
/// which has already been done (by |
lightPosition | Vector4 | 4D light position in object space, when w=0.0f this /// represents a directional light |
extrudeDistance | float | The distance to extrude. |
return | void |
protected GenerateShadowVolume ( |
||
edgeData | The edge information to use. | |
indexBuffer | The buffer into which to write data into; current /// contents are assumed to be discardable. | |
light | The light, mainly for type info as silhouette calculations
/// should already have been done in |
|
shadowRenderables | ShadowRenderableList | A list of shadow renderables which has /// already been constructed but will need populating with details of /// the index ranges to be used. |
flags | int | Additional controller flags, see |
return | void |
public abstract GetDarkCapBounds ( |
||
light | ||
dirLightExtrusionDist | float | |
return |
public abstract GetEdgeList ( int lodIndex ) : |
||
lodIndex | int | |
return |
protected GetExtrusionDistance ( Vector3 objectPos, |
||
objectPos | Vector3 | |
light | ||
return | float |
public abstract GetLastShadowVolumeRenderableEnumerator ( ) : IEnumerator | ||
return | IEnumerator |
public abstract GetLightCapBounds ( ) : |
||
return |
public abstract GetPointExtrusionDistance ( |
||
light | ||
return | float |
public abstract GetShadowVolumeRenderableEnumerator ( ShadowTechnique technique, |
||
technique | ShadowTechnique | The technique being used to generate the shadow. |
light | The light to generate the shadow from. | |
indexBuffer | The index buffer to build the renderables into, /// the current contents are assumed to be disposable. | |
extrudeVertices | bool | If true, this means this class should extrude /// the vertices of the back of the volume in software. If false, it /// will not be done (a vertex program is assumed). |
extrusionDistance | float | |
flags | int | Technique-specific flags, see |
return | IEnumerator |
public GetShadowVolumeRenderableEnumerator ( ShadowTechnique technique, |
||
technique | ShadowTechnique | |
light | ||
indexBuffer | ||
extrusionDistance | float | |
extrudeVertices | bool | |
return | IEnumerator |
public GetWorldBoundingBox ( ) : |
||
return |
public abstract GetWorldBoundingBox ( bool derive ) : |
||
derive | bool | |
return |
protected UpdateEdgeListLightFacing ( |
||
edgeData | The edge information to update. | |
lightPosition | Vector4 | 4D vector representing the light, a directional light has w=0.0. |
return | void |