1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-14 00:55:20 +02:00

Optimize lighting calculation (#12797)

This commit is contained in:
Jude Melton-Houghton
2022-10-09 10:50:26 -04:00
committed by GitHub
parent 440d966b93
commit 9676364c1f
18 changed files with 188 additions and 220 deletions

View File

@@ -47,9 +47,10 @@ void TestMapNode::testNodeProperties(const NodeDefManager *nodedef)
{
MapNode n(CONTENT_AIR);
ContentLightingFlags f = nodedef->getLightingFlags(n);
UASSERT(n.getContent() == CONTENT_AIR);
UASSERT(n.getLight(LIGHTBANK_DAY, nodedef) == 0);
UASSERT(n.getLight(LIGHTBANK_NIGHT, nodedef) == 0);
UASSERT(n.getLight(LIGHTBANK_DAY, f) == 0);
UASSERT(n.getLight(LIGHTBANK_NIGHT, f) == 0);
// Transparency
n.setContent(CONTENT_AIR);

View File

@@ -138,27 +138,27 @@ void TestVoxelAlgorithms::testLighting(IGameDef *gamedef)
const NodeDefManager *ndef = gamedef->ndef();
{
MapNode n = map.getNode(v3s16(9, 9, -9));
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef), 0);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef), 13);
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef->getLightingFlags(n)), 0);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef->getLightingFlags(n)), 13);
}
{
MapNode n = map.getNode(v3s16(0, 1, 0));
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef), 12);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef), 12);
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef->getLightingFlags(n)), 12);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef->getLightingFlags(n)), 12);
}
{
MapNode n = map.getNode(v3s16(-9, -1, 0));
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef), 3);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef), 12);
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef->getLightingFlags(n)), 3);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef->getLightingFlags(n)), 12);
}
{
MapNode n = map.getNode(v3s16(-10, 0, 0));
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef), 3);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef), 14);
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef->getLightingFlags(n)), 3);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef->getLightingFlags(n)), 14);
}
{
MapNode n = map.getNode(v3s16(-11, 0, 0));
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef), 2);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef), 15);
UASSERTEQ(int, n.getLight(LIGHTBANK_NIGHT, ndef->getLightingFlags(n)), 2);
UASSERTEQ(int, n.getLight(LIGHTBANK_DAY, ndef->getLightingFlags(n)), 15);
}
}