refactor: formalize directional shadow planning settings

This commit is contained in:
2026-04-10 02:14:45 +08:00
parent f476890116
commit 54eb2415ff
3 changed files with 164 additions and 26 deletions

View File

@@ -12,8 +12,24 @@ class Scene;
namespace Rendering {
struct DirectionalShadowPlanningSettings {
uint32_t mapDimension = 1024u;
float minFocusDistance = 5.0f;
float maxFocusDistance = 64.0f;
float perspectiveFocusFactor = 1.0f;
float orthographicFocusFactor = 2.0f;
float minDepthRange = 20.0f;
float boundsPadding = 1.0f;
float minDepthPadding = 2.0f;
};
class SceneRenderRequestPlanner {
public:
SceneRenderRequestPlanner() = default;
void SetDirectionalShadowPlanningSettings(const DirectionalShadowPlanningSettings& settings);
const DirectionalShadowPlanningSettings& GetDirectionalShadowPlanningSettings() const;
std::vector<Components::CameraComponent*> CollectCameras(
const Components::Scene& scene,
Components::CameraComponent* overrideCamera) const;
@@ -23,6 +39,9 @@ public:
Components::CameraComponent* overrideCamera,
const RenderContext& context,
const RenderSurface& surface) const;
private:
DirectionalShadowPlanningSettings m_directionalShadowPlanningSettings = {};
};
} // namespace Rendering