light: fix default _sunlight angle to be pointing straight down
This commit is contained in:
parent
36b8b21990
commit
fa8af3845b
|
|
@ -185,8 +185,9 @@ worldspawn_keys::worldspawn_keys() :
|
|||
sunlight3_color{this, {"sunlight3_color", "sunlight_color3"}, 255.0, 255.0, 255.0, &worldspawn_group},
|
||||
sunlight_dirt{this, "sunlight_dirt", 0.0, &worldspawn_group},
|
||||
sunlight2_dirt{this, "sunlight2_dirt", 0.0, &worldspawn_group},
|
||||
sunvec{this, {"sunlight_mangle", "sun_mangle", "sun_angle"}, 0.0, -90.0, 0.0, &worldspawn_group},
|
||||
sun2vec{this, "sun2_mangle", 0.0, -90.0, 0.0, &worldspawn_group},
|
||||
// NOTE: the default mangle needs to be in direction vector form, not euler angle
|
||||
sunvec{this, {"sunlight_mangle", "sun_mangle", "sun_angle"}, 0.0, 0.0, -1.0, &worldspawn_group},
|
||||
sun2vec{this, "sun2_mangle", 0.0, 0.0, -1.0, &worldspawn_group},
|
||||
sun_deviance{this, "sunlight_penumbra", 0.0, 0.0, 180.0, &worldspawn_group},
|
||||
sky_surface{ this, {"sky_surface", "sun_surface"}, 0, 0, 0, &worldspawn_group},
|
||||
surflight_radiosity{this, "surflight_radiosity", SURFLIGHT_Q1, &worldspawn_group, "whether to use Q1-style surface subdivision (0) or Q2-style surface radiosity"}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
// Game: Quake 2
|
||||
// Format: Quake2
|
||||
// entity 0
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"_tb_textures" "textures/e1u1"
|
||||
"_bounce" "0"
|
||||
"_sunlight" "100"
|
||||
// brush 0
|
||||
{
|
||||
( 480 1088 928 ) ( 480 1089 928 ) ( 480 1088 929 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 704 1088 928 ) ( 704 1088 929 ) ( 705 1088 928 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 704 1088 928 ) ( 705 1088 928 ) ( 704 1089 928 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 944 1472 944 ) ( 944 1473 944 ) ( 945 1472 944 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 944 1488 944 ) ( 945 1488 944 ) ( 944 1488 945 ) e1u1/twall2_1 0 32 0 1 1
|
||||
( 1440 1472 944 ) ( 1440 1472 945 ) ( 1440 1473 944 ) e1u1/twall2_1 0 32 0 1 1
|
||||
}
|
||||
// brush 1
|
||||
{
|
||||
( 480 1088 1248 ) ( 480 1089 1248 ) ( 480 1088 1249 ) e1u1/sky1 0 96 0 1 1
|
||||
( 704 1072 1248 ) ( 704 1072 1249 ) ( 705 1072 1248 ) e1u1/sky1 0 96 0 1 1
|
||||
( 704 1088 1248 ) ( 705 1088 1248 ) ( 704 1089 1248 ) e1u1/sky1 0 0 0 1 1
|
||||
( 944 1472 1264 ) ( 944 1473 1264 ) ( 945 1472 1264 ) e1u1/sky1 0 0 0 1 1
|
||||
( 944 1488 1264 ) ( 945 1488 1264 ) ( 944 1488 1265 ) e1u1/sky1 0 96 0 1 1
|
||||
( 1440 1472 1264 ) ( 1440 1472 1265 ) ( 1440 1473 1264 ) e1u1/sky1 0 96 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
{
|
||||
( 480 1072 928 ) ( 480 1073 928 ) ( 480 1072 929 ) e1u1/sky1 0 0 0 1 1
|
||||
( 704 1072 928 ) ( 704 1072 929 ) ( 705 1072 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 704 1072 928 ) ( 705 1072 928 ) ( 704 1073 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 944 1456 1248 ) ( 944 1457 1248 ) ( 945 1456 1248 ) e1u1/sky1 0 0 0 1 1
|
||||
( 944 1088 944 ) ( 945 1088 944 ) ( 944 1088 945 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1456 1456 944 ) ( 1456 1456 945 ) ( 1456 1457 944 ) e1u1/sky1 0 0 0 1 1
|
||||
}
|
||||
// brush 3
|
||||
{
|
||||
( 480 1392 928 ) ( 480 1393 928 ) ( 480 1392 929 ) e1u1/sky1 0 0 0 1 1
|
||||
( 832 1488 928 ) ( 832 1488 929 ) ( 833 1488 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 832 1392 928 ) ( 833 1392 928 ) ( 832 1393 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1072 1776 1248 ) ( 1072 1777 1248 ) ( 1073 1776 1248 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1072 1504 944 ) ( 1073 1504 944 ) ( 1072 1504 945 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1440 1392 928 ) ( 1440 1392 929 ) ( 1440 1393 928 ) e1u1/sky1 0 0 0 1 1
|
||||
}
|
||||
// brush 4
|
||||
{
|
||||
( 1440 1088 1056 ) ( 1440 1089 1056 ) ( 1440 1088 1057 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1120 1088 1056 ) ( 1120 1088 1057 ) ( 1121 1088 1056 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1120 1088 928 ) ( 1121 1088 928 ) ( 1120 1089 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1360 1472 1248 ) ( 1360 1473 1248 ) ( 1361 1472 1248 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1360 1488 1072 ) ( 1361 1488 1072 ) ( 1360 1488 1073 ) e1u1/sky1 0 0 0 1 1
|
||||
( 1456 1472 1072 ) ( 1456 1472 1073 ) ( 1456 1473 1072 ) e1u1/sky1 0 0 0 1 1
|
||||
}
|
||||
// brush 5
|
||||
{
|
||||
( 464 1088 1056 ) ( 464 1089 1056 ) ( 464 1088 1057 ) e1u1/sky1 0 0 0 1 1
|
||||
( 144 1072 1056 ) ( 144 1072 1057 ) ( 145 1072 1056 ) e1u1/sky1 0 0 0 1 1
|
||||
( 144 1088 928 ) ( 145 1088 928 ) ( 144 1089 928 ) e1u1/sky1 0 0 0 1 1
|
||||
( 384 1472 1248 ) ( 384 1473 1248 ) ( 385 1472 1248 ) e1u1/sky1 0 0 0 1 1
|
||||
( 384 1488 1072 ) ( 385 1488 1072 ) ( 384 1488 1073 ) e1u1/sky1 0 0 0 1 1
|
||||
( 480 1472 1072 ) ( 480 1472 1073 ) ( 480 1473 1072 ) e1u1/sky1 0 0 0 1 1
|
||||
}
|
||||
// brush 6
|
||||
{
|
||||
( 1088 1216 1072 ) ( 1088 1217 1072 ) ( 1088 1216 1073 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 1088 1224 1072 ) ( 1088 1224 1073 ) ( 1089 1224 1072 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 1088 1216 1080 ) ( 1089 1216 1080 ) ( 1088 1217 1080 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 1152 1280 1088 ) ( 1152 1281 1088 ) ( 1153 1280 1088 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 1152 1272 1088 ) ( 1153 1272 1088 ) ( 1152 1272 1089 ) e1u1/twall2_1 0 0 0 1 1
|
||||
( 1136 1280 1088 ) ( 1136 1280 1089 ) ( 1136 1281 1088 ) e1u1/twall2_1 0 0 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 1
|
||||
{
|
||||
"classname" "info_player_start"
|
||||
"origin" "1232 1160 968"
|
||||
"angle" "90"
|
||||
}
|
||||
|
|
@ -531,3 +531,14 @@ TEST_CASE("q2_light_cone") {
|
|||
CheckSpotCutoff(bsp, {1092, 1472, 952});
|
||||
CheckSpotCutoff(bsp, {1236, 1472, 952});
|
||||
}
|
||||
|
||||
TEST_CASE("q2_light_sunlight_default_mangle") {
|
||||
auto [bsp, bspx] = QbspVisLight_Q2("q2_light_sunlight_default_mangle.map", {});
|
||||
|
||||
INFO("sunlight should be shining directly down if unspecified");
|
||||
const qvec3d shadow_pos {1112, 1248, 944};
|
||||
CheckFaceLuxelAtPoint(&bsp, &bsp.dmodels[0], {0, 0, 0}, shadow_pos);
|
||||
|
||||
CheckFaceLuxelAtPoint(&bsp, &bsp.dmodels[0], {100, 100, 100}, shadow_pos + qvec3d{48, 0, 0});
|
||||
CheckFaceLuxelAtPoint(&bsp, &bsp.dmodels[0], {100, 100, 100}, shadow_pos + qvec3d{-48, 0, 0});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue