light: expand test case for light channels
This commit is contained in:
parent
00754e588e
commit
ccb72a3bf5
|
|
@ -79,11 +79,12 @@
|
|||
}
|
||||
// entity 2
|
||||
{
|
||||
"classname" "light"
|
||||
"classname" "light_mine2"
|
||||
"origin" "680 1176 1000"
|
||||
"light" "300"
|
||||
"_light_channel_mask" "2"
|
||||
"_shadow_channel_mask" "2"
|
||||
"wait" ".5"
|
||||
}
|
||||
// entity 3
|
||||
{
|
||||
|
|
@ -91,11 +92,29 @@
|
|||
"_object_channel_mask" "2"
|
||||
// brush 0
|
||||
{
|
||||
( 656 1280 944 ) ( 656 1281 944 ) ( 656 1280 945 ) e1u1/twall2_1 -32 0 0 1 1
|
||||
( 656 1280 944 ) ( 656 1280 945 ) ( 657 1280 944 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 656 1280 976 ) ( 657 1280 976 ) ( 656 1281 976 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 656 1280 1024 ) ( 656 1281 1024 ) ( 657 1280 1024 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 704 1296 960 ) ( 705 1296 960 ) ( 704 1296 961 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1312 960 ) ( 704 1312 961 ) ( 704 1313 960 ) e1u1/twall2_1 -32 0 0 1 1
|
||||
}
|
||||
// brush 1
|
||||
{
|
||||
( 656 1248 944 ) ( 656 1249 944 ) ( 656 1248 945 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 656 1248 944 ) ( 656 1248 945 ) ( 657 1248 944 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 656 1248 944 ) ( 657 1248 944 ) ( 656 1249 944 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 656 1248 960 ) ( 657 1248 960 ) ( 656 1249 960 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1280 1040 ) ( 704 1281 1040 ) ( 705 1280 1040 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1280 960 ) ( 705 1280 960 ) ( 704 1280 961 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1264 960 ) ( 705 1264 960 ) ( 704 1264 961 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1280 960 ) ( 704 1280 961 ) ( 704 1281 960 ) e1u1/twall2_1 0 0 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
{
|
||||
( 656 1280 944 ) ( 656 1281 944 ) ( 656 1280 945 ) e1u1/twall2_1 -32 0 0 1 1
|
||||
( 656 1280 944 ) ( 656 1280 945 ) ( 657 1280 944 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 656 1280 1072 ) ( 657 1280 1072 ) ( 656 1281 1072 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 704 1312 1104 ) ( 704 1313 1104 ) ( 705 1312 1104 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 704 1296 960 ) ( 705 1296 960 ) ( 704 1296 961 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 704 1312 960 ) ( 704 1312 961 ) ( 704 1313 960 ) e1u1/twall2_1 -32 0 0 1 1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -294,11 +294,12 @@ TEST_CASE("negative lights work") {
|
|||
}
|
||||
}
|
||||
|
||||
TEST_CASE("_light_group") {
|
||||
TEST_CASE("light channel mask (_object_channel_mask, _light_channel_mask, _shadow_channel_mask)") {
|
||||
auto [bsp, bspx] = LoadTestmap("q2_light_group.map", {});
|
||||
REQUIRE(2 == bsp.dmodels.size());
|
||||
|
||||
{
|
||||
INFO("world doesn't receive light from the light ent with '_light_group' 'pillar'");
|
||||
INFO("world doesn't receive light from the light ent with _light_channel_mask 2");
|
||||
|
||||
auto *face_under_light = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], {680, 1224, 944});
|
||||
REQUIRE(face_under_light);
|
||||
|
|
@ -309,7 +310,7 @@ TEST_CASE("_light_group") {
|
|||
}
|
||||
|
||||
{
|
||||
INFO("pillar with matching _light_group is receiving light");
|
||||
INFO("pillar with _object_channel_mask 2 is receiving light");
|
||||
|
||||
auto *face_on_pillar = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[1], {680, 1248, 1000});
|
||||
REQUIRE(face_on_pillar);
|
||||
|
|
@ -318,4 +319,26 @@ TEST_CASE("_light_group") {
|
|||
CHECK(sample[0] > 100);
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
INFO("_object_channel_mask 2 implicitly makes bmodels cast shadow in channel 2");
|
||||
|
||||
auto *occluded_face = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[1], {680, 1280, 1000});
|
||||
REQUIRE(occluded_face);
|
||||
|
||||
CheckFaceLuxels(bsp, *occluded_face, [](qvec3b sample) {
|
||||
CHECK(sample[0] == 0);
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
INFO("ensure AABB culling isn't breaking light channels");
|
||||
|
||||
auto *unoccluded_face = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[1], {680, 1280, 1088});
|
||||
REQUIRE(unoccluded_face);
|
||||
|
||||
CheckFaceLuxels(bsp, *unoccluded_face, [](qvec3b sample) {
|
||||
CHECK(sample[0] > 100);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue