|
Rebel Fork Framework
|
#include <Urho3D/RenderPipeline/ShadowSplitProcessor.h>
Public Member Functions | |
| ShadowSplitProcessor (LightProcessor *owner, unsigned splitIndex) | |
| void | FinalizeShadow (const ShadowMapRegion &shadowMap, unsigned pcfKernelSize) |
| void | FinalizeShadowBatches () |
| auto & | GetMutableUnsortedShadowBatches () |
| auto & | GetMutableShadowBatches () |
| const auto & | GetShadowBatches () const |
| void | InitializeDirectional (DrawableProcessor *drawableProcessor, const FloatRange &splitRange, const ea::vector< Drawable * > &litGeometries) |
| void | InitializeSpot () |
| void | InitializePoint (CubeMapFace face) |
| void | ProcessDirectionalShadowCasters (DrawableProcessor *drawableProcessor, ea::vector< Drawable * > &shadowCastersBuffer) |
| void | ProcessSpotShadowCasters (DrawableProcessor *drawableProcessor, const ea::vector< Drawable * > &shadowCasterCandidates) |
| void | ProcessPointShadowCasters (DrawableProcessor *drawableProcessor, const ea::vector< Drawable * > &shadowCasterCandidates) |
| LightProcessor * | GetLightProcessor () const |
| Light * | GetLight () const |
| unsigned | GetSplitIndex () const |
| const auto & | GetShadowCasters () const |
| bool | HasShadowCasters () const |
| Matrix4 | GetWorldToShadowSpaceMatrix (float subPixelOffset) const |
| const ShadowMapRegion & | GetShadowMap () const |
| float | GetShadowMapTexelSizeInWorldSpace () const |
| unsigned | GetShadowMapPadding () const |
| const FloatRange & | GetCascadeZRange () const |
| Camera * | GetShadowCamera () const |
Private Member Functions | |
| void | InitializeBaseDirectionalCamera (Camera *cullCamera) |
| BoundingBox | GetLitGeometriesBoundingBox (DrawableProcessor *drawableProcessor, const ea::vector< Drawable * > &litGeometries) const |
| BoundingBox | GetSplitShadowBoundingBoxInLightSpace (DrawableProcessor *drawableProcessor, const ea::vector< Drawable * > &litGeometries) const |
| void | AdjustDirectionalLightCamera (const BoundingBox &lightSpaceBoundingBox, float shadowMapSize) |
Private Attributes | |
| LightProcessor * | lightProcessor_ {} |
| Light * | light_ {} |
| unsigned | splitIndex_ {} |
| RenderBackend | renderBackend_ {} |
| SharedPtr< Node > | shadowCameraNode_ |
| SharedPtr< Camera > | shadowCamera_ |
| FloatRange | cascadeZRange_ {} |
| FloatRange | focusedCascadeZRange_ {} |
| ea::vector< Drawable * > | shadowCasters_ |
| ShadowMapRegion | shadowMap_ |
| float | shadowMapWorldSpaceTexelSize_ {} |
| unsigned | shadowMapPadding_ {} |
| ea::vector< PipelineBatch > | unsortedShadowBatches_ |
| ea::vector< PipelineBatchByState > | sortedShadowBatches_ |
| PipelineBatchGroup< PipelineBatchByState > | shadowBatches_ |
Manages single shadow split parameters and shadow casters. Spot lights always have one split. Directions lights have one split per cascade. Point lights always have six splits.
|
inline |
Return immutable
|
inline |
Return values are valid after shadow casters are processed
| Matrix4 Urho3D::ShadowSplitProcessor::GetWorldToShadowSpaceMatrix | ( | float | subPixelOffset | ) | const |
Return values are valid after shadow map is finalized
| void Urho3D::ShadowSplitProcessor::InitializeDirectional | ( | DrawableProcessor * | drawableProcessor, |
| const FloatRange & | splitRange, | ||
| const ea::vector< Drawable * > & | litGeometries | ||
| ) |
Initialize split parameters
| void Urho3D::ShadowSplitProcessor::ProcessDirectionalShadowCasters | ( | DrawableProcessor * | drawableProcessor, |
| ea::vector< Drawable * > & | shadowCastersBuffer | ||
| ) |
Process shadow casters
|
private |
Frame-specific objects
|
private |
Immutable
|
private |
Shadow casters