diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-04-13 22:15:53 +0200 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-04-13 22:30:10 +0200 |
commit | 5315f213613078cb2a24a998b27652fdab63ea83 (patch) | |
tree | 4ed744300f2caa69e63bde404cd67c4f4b3f43a9 /src/client/render/core.cpp | |
parent | 68f81ace97db0d41b4a51876870c30cebec1338c (diff) | |
download | minetest-stencil_shadows.tar.xz |
Enable stencil shadowsstencil_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
Diffstat (limited to 'src/client/render/core.cpp')
-rw-r--r-- | src/client/render/core.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
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 +} |