From 5315f213613078cb2a24a998b27652fdab63ea83 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Thu, 13 Apr 2023 22:15:53 +0200 Subject: Enable stencil shadows Needs https://github.com/LizzyFleckenstein03/irrlicht to compile. TODO: - make lighting directional (figure out z-fighting issues) - set light angle to sun angle - add dynamic lights for torches (use light manager?) - shadow map terrain - finally get some sleep --- src/client/render/core.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/client/render') diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp index 5e87f58fc..7bac9192c 100644 --- a/src/client/render/core.cpp +++ b/src/client/render/core.cpp @@ -23,11 +23,19 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/shadows/dynamicshadowsrender.h" #include "settings.h" -RenderingCore::RenderingCore(IrrlichtDevice *_device, Client *_client, Hud *_hud, +RenderingCore::RenderingCore(IrrlichtDevice *_device, Client *_client, Hud *_hud, ShadowRenderer *_shadow_renderer, RenderPipeline *_pipeline, v2f _virtual_size_scale) - : device(_device), client(_client), hud(_hud), shadow_renderer(_shadow_renderer), + : device(_device), client(_client), hud(_hud), shadow_renderer(_shadow_renderer), pipeline(_pipeline), virtual_size_scale(_virtual_size_scale) { + auto light_node = device->getSceneManager()->addLightSceneNode(); + // FIXME: light should be directional, but when enabled, there are massive z-fighting issues + // light_node->getLightData().Type = video::ELT_DIRECTIONAL; + // TODO: sun angle + // TODO: reasonable values for ambient, diffuse, specular + light_node->setPosition(v3f(0, 700, 0)); + light_node->setRotation(v3f(90, 0, 0)); + light_node->setRadius(1000); } RenderingCore::~RenderingCore() @@ -55,4 +63,4 @@ void RenderingCore::draw(video::SColor _skycolor, bool _show_hud, bool _show_min v2u32 RenderingCore::getVirtualSize() const { return virtual_size; -} \ No newline at end of file +} -- cgit v1.2.3