diff --git a/src/graphics/render.cpp b/src/graphics/render.cpp index 9e6241440..4ad88e8e0 100644 --- a/src/graphics/render.cpp +++ b/src/graphics/render.cpp @@ -862,10 +862,15 @@ void IrrDriver::renderLights(scene::ICameraSceneNode * const camnode, float dt) if (!m_lights[i]->isPointLight()) { m_lights[i]->render(); - if (UserConfigParams::m_shadows && World::getWorld()->getTrack()->hasShadows()) + if (UserConfigParams::m_shadows && World::getWorld() != NULL && + World::getWorld()->getTrack()->hasShadows()) + { m_post_processing->renderShadowedSunlight(sun_ortho_matrix, m_rtts->getShadowDepthTex()); + } else + { m_post_processing->renderSunlight(); + } continue; } const core::vector3df &lightpos = (m_lights[i]->getAbsolutePosition() - campos); diff --git a/src/guiengine/widgets/model_view_widget.cpp b/src/guiengine/widgets/model_view_widget.cpp index ccbd5f2fe..da5e27d97 100644 --- a/src/guiengine/widgets/model_view_widget.cpp +++ b/src/guiengine/widgets/model_view_widget.cpp @@ -191,6 +191,8 @@ void ModelViewWidget::setupRTTScene(PtrVector& mesh, AlignedArray& mesh_scale, const std::vector& model_frames) { + irr_driver->getSceneManager()->clear(); + if (model_frames[0] == -1) { scene::ISceneNode* node = irr_driver->addMesh(mesh.get(0), NULL); @@ -244,12 +246,7 @@ void ModelViewWidget::setupRTTScene(PtrVector& mesh, irr_driver->getSceneManager()->setAmbientLight(video::SColor(255, 35, 35, 35)); const core::vector3df &spot_pos = core::vector3df(0, 30, 40); - m_light = irr_driver->getSceneManager() - ->addLightSceneNode(NULL, spot_pos, video::SColorf(1.0f, 1.0f, 1.0f), - 1600 /* radius */); - m_light->setLightType(video::ELT_SPOT); - m_light->setRotation((core::vector3df(0, 10, 0) - spot_pos).getHorizontalAngle()); - m_light->updateAbsolutePosition(); + m_light = irr_driver->addLight(spot_pos, 3.0f /* energy */, 100 /* distance */, 1.0f /* r */, 1.0f /* g */, 1.0f /* g*/, true, NULL); m_rtt_main_node->setMaterialFlag(video::EMF_GOURAUD_SHADING, true); m_rtt_main_node->setMaterialFlag(video::EMF_LIGHTING, true); diff --git a/src/guiengine/widgets/model_view_widget.hpp b/src/guiengine/widgets/model_view_widget.hpp index 0f8fa0d30..2752905d4 100644 --- a/src/guiengine/widgets/model_view_widget.hpp +++ b/src/guiengine/widgets/model_view_widget.hpp @@ -62,7 +62,7 @@ namespace GUIEngine scene::ICameraSceneNode *m_camera; - scene::ILightSceneNode *m_light; + scene::ISceneNode *m_light; FrameBuffer *m_frame_buffer;