Graphics: Rework shadowing (add cascaded shadow mapping)
- Add support for per-viewer shadows - Add cascaded shadow mapping for directional lights (wip) - Rework the way lights are sent to the shaders (they are now selected once per viewer) - Fixes PointLight shadow mapping (using a dedicated pass) - Lights out of frustum for every viewers are no longer processed (wip)
This commit is contained in:
committed by
Jérôme Leclercq
parent
a08850946a
commit
9aebb4f745
@@ -24,19 +24,24 @@ namespace Nz
|
||||
SpotLight(SpotLight&&) noexcept = default;
|
||||
~SpotLight() = default;
|
||||
|
||||
float ComputeContributionScore(const BoundingVolumef& boundingVolume) const override;
|
||||
float ComputeContributionScore(const Frustumf& viewerFrustum) const override;
|
||||
|
||||
void FillLightData(void* data) const override;
|
||||
bool FrustumCull(const Frustumf& viewerFrustum) const override;
|
||||
|
||||
inline float GetAmbientFactor() const;
|
||||
inline float GetDiffuseFactor() const;
|
||||
inline Color GetColor() const;
|
||||
inline const Vector3f& GetDirection() const;
|
||||
inline RadianAnglef GetInnerAngle() const;
|
||||
inline float GetInnerAngleCos() const;
|
||||
inline float GetInvRadius() const;
|
||||
inline RadianAnglef GetOuterAngle() const;
|
||||
inline float GetOuterAngleCos() const;
|
||||
inline float GetOuterAngleTan() const;
|
||||
inline const Vector3f& GetPosition() const;
|
||||
inline const Quaternionf& GetRotation() const;
|
||||
inline float GetRadius() const;
|
||||
inline const Matrix4f& GetViewProjMatrix() const;
|
||||
|
||||
std::unique_ptr<LightShadowData> InstanciateShadowData(FramePipeline& pipeline, ElementRendererRegistry& elementRegistry) const override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user