mirror of
https://github.com/minetest/minetest.git
synced 2025-03-06 20:48:40 +01:00
Don't try to update uninitialized shadow frustum
This commit is contained in:
parent
47c000a293
commit
e84ac56e35
2 changed files with 3 additions and 2 deletions
|
@ -32,6 +32,7 @@ void DirectionalLight::createSplitMatrices(const Camera *cam)
|
|||
// adjusted frustum boundaries
|
||||
float sfNear = future_frustum.zNear;
|
||||
float sfFar = adjustDist(future_frustum.zFar, cam->getFovY());
|
||||
assert(sfFar - sfNear > 0);
|
||||
|
||||
// adjusted camera positions
|
||||
v3f cam_pos_world = cam->getPosition();
|
||||
|
@ -74,7 +75,6 @@ void DirectionalLight::createSplitMatrices(const Camera *cam)
|
|||
future_frustum.ViewMat.buildCameraLookAtMatrixLH(eye, center_scene, v3f(0.0f, 1.0f, 0.0f));
|
||||
future_frustum.ProjOrthMat.buildProjectionMatrixOrthoLH(radius, radius,
|
||||
0.0f, length, false);
|
||||
future_frustum.camera_offset = cam->getOffset();
|
||||
}
|
||||
|
||||
DirectionalLight::DirectionalLight(const u32 shadowMapResolution,
|
||||
|
@ -86,6 +86,8 @@ DirectionalLight::DirectionalLight(const u32 shadowMapResolution,
|
|||
|
||||
void DirectionalLight::updateCameraOffset(const Camera *cam)
|
||||
{
|
||||
if (future_frustum.zFar == 0.0f) // not initialized
|
||||
return;
|
||||
createSplitMatrices(cam);
|
||||
should_update_map_shadow = true;
|
||||
dirty = true;
|
||||
|
|
|
@ -22,7 +22,6 @@ struct shadowFrustum
|
|||
core::matrix4 ViewMat;
|
||||
v3f position;
|
||||
v3f player;
|
||||
v3s16 camera_offset;
|
||||
};
|
||||
|
||||
class DirectionalLight
|
||||
|
|
Loading…
Add table
Reference in a new issue