Add directional shadow request planning
This commit is contained in:
@@ -38,6 +38,26 @@ struct ScenePassRenderRequest {
|
||||
using DepthOnlyRenderRequest = ScenePassRenderRequest;
|
||||
using ShadowCasterRenderRequest = ScenePassRenderRequest;
|
||||
|
||||
struct DirectionalShadowRenderPlan {
|
||||
bool enabled = false;
|
||||
Math::Vector3 lightDirection = Math::Vector3::Back();
|
||||
Math::Vector3 focusPoint = Math::Vector3::Zero();
|
||||
float orthographicHalfExtent = 0.0f;
|
||||
float nearClipPlane = 0.1f;
|
||||
float farClipPlane = 0.0f;
|
||||
uint32_t mapWidth = 0;
|
||||
uint32_t mapHeight = 0;
|
||||
RenderCameraData cameraData = {};
|
||||
|
||||
bool IsValid() const {
|
||||
return enabled &&
|
||||
mapWidth > 0 &&
|
||||
mapHeight > 0 &&
|
||||
cameraData.viewportWidth == mapWidth &&
|
||||
cameraData.viewportHeight == mapHeight;
|
||||
}
|
||||
};
|
||||
|
||||
struct ObjectIdRenderRequest {
|
||||
RenderSurface surface;
|
||||
|
||||
@@ -62,6 +82,7 @@ struct CameraRenderRequest {
|
||||
RenderSurface surface;
|
||||
DepthOnlyRenderRequest depthOnly;
|
||||
ShadowCasterRenderRequest shadowCaster;
|
||||
DirectionalShadowRenderPlan directionalShadow;
|
||||
ObjectIdRenderRequest objectId;
|
||||
float cameraDepth = 0.0f;
|
||||
uint8_t cameraStackOrder = 0;
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace Rendering {
|
||||
|
||||
struct RenderDirectionalLightData {
|
||||
bool enabled = false;
|
||||
bool castsShadows = false;
|
||||
Math::Vector3 direction = Math::Vector3::Back();
|
||||
float intensity = 1.0f;
|
||||
Math::Color color = Math::Color::White();
|
||||
|
||||
Reference in New Issue
Block a user