aboutsummaryrefslogtreecommitdiff
path: root/src/client/shadows/dynamicshadowsrender.cpp
diff options
context:
space:
mode:
authorLars <larsh@apache.org>2023-04-06 09:30:37 -1000
committerlhofhansl <larsh@apache.org>2023-04-09 07:10:17 -1000
commit89829986813549ae7d199ae9a025f97e5982c35e (patch)
treeef0f391029f72e6837b7eddf9c2a920a3f5b6d00 /src/client/shadows/dynamicshadowsrender.cpp
parent9d736e8b8baeeacad9cfa94edd18adfcaf000029 (diff)
downloadminetest-89829986813549ae7d199ae9a025f97e5982c35e.tar.xz
Add a default direction light for shadows
Diffstat (limited to 'src/client/shadows/dynamicshadowsrender.cpp')
-rw-r--r--src/client/shadows/dynamicshadowsrender.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/client/shadows/dynamicshadowsrender.cpp b/src/client/shadows/dynamicshadowsrender.cpp
index 740edfe21..320a046cd 100644
--- a/src/client/shadows/dynamicshadowsrender.cpp
+++ b/src/client/shadows/dynamicshadowsrender.cpp
@@ -53,6 +53,9 @@ ShadowRenderer::ShadowRenderer(IrrlichtDevice *device, Client *client) :
m_shadow_map_colored = g_settings->getBool("shadow_map_color");
m_shadow_samples = g_settings->getS32("shadow_filters");
m_map_shadow_update_frames = g_settings->getS16("shadow_update_frames");
+
+ // add at least one light
+ addDirectionalLight();
}
ShadowRenderer::~ShadowRenderer()
@@ -157,11 +160,8 @@ size_t ShadowRenderer::getDirectionalLightCount() const
f32 ShadowRenderer::getMaxShadowFar() const
{
- if (!m_light_list.empty()) {
- float zMax = m_light_list[0].getFarValue();
- return zMax;
- }
- return 0.0f;
+ float zMax = m_light_list[0].getFarValue();
+ return zMax;
}
void ShadowRenderer::setShadowIntensity(float shadow_intensity)
@@ -258,7 +258,7 @@ void ShadowRenderer::updateSMTextures()
node.node->setMaterialTexture(TEXTURE_LAYER_SHADOW, shadowMapTextureFinal);
}
- if (!m_shadow_node_array.empty() && !m_light_list.empty()) {
+ if (!m_shadow_node_array.empty()) {
bool reset_sm_texture = false;
// detect if SM should be regenerated
@@ -344,7 +344,7 @@ void ShadowRenderer::update(video::ITexture *outputTarget)
}
- if (!m_shadow_node_array.empty() && !m_light_list.empty()) {
+ if (!m_shadow_node_array.empty()) {
for (DirectionalLight &light : m_light_list) {
// Static shader values for entities are set in updateSMTextures