light: block phong if certain surfflag bits differ between the two faces
this prevents liquids from phonging with solids
This commit is contained in:
parent
ab78b43c52
commit
96bdf141bb
|
|
@ -325,6 +325,12 @@ public:
|
||||||
return (flags.native & ~TEX_SPECIAL) == 0;
|
return (flags.native & ~TEX_SPECIAL) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool surfflags_may_phong(const surfflags_t &a, const surfflags_t &b) const override
|
||||||
|
{
|
||||||
|
return (a.native & TEX_SPECIAL)
|
||||||
|
== (b.native & TEX_SPECIAL);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t surfflags_from_string(const std::string_view &str) const override
|
int32_t surfflags_from_string(const std::string_view &str) const override
|
||||||
{
|
{
|
||||||
if (string_iequals(str, "special")) {
|
if (string_iequals(str, "special")) {
|
||||||
|
|
@ -924,6 +930,17 @@ struct gamedef_q2_t : public gamedef_t
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool surfflags_may_phong(const surfflags_t &a, const surfflags_t &b) const override
|
||||||
|
{
|
||||||
|
// these are the bits we'll require to match in order to allow phonging `a` and `b`
|
||||||
|
auto mask = [](const surfflags_t &flags) {
|
||||||
|
return flags.native & (Q2_SURF_SKY | Q2_SURF_WARP | Q2_SURF_TRANS33 |
|
||||||
|
Q2_SURF_TRANS66 | Q2_SURF_FLOWING | Q2_SURF_NODRAW);
|
||||||
|
};
|
||||||
|
|
||||||
|
return mask(a) == mask(b);
|
||||||
|
}
|
||||||
|
|
||||||
static constexpr const char *surf_bitflag_names[] = {
|
static constexpr const char *surf_bitflag_names[] = {
|
||||||
"LIGHT", "SLICK", "SKY", "WARP", "TRANS33", "TRANS66", "FLOWING", "NODRAW",
|
"LIGHT", "SLICK", "SKY", "WARP", "TRANS33", "TRANS66", "FLOWING", "NODRAW",
|
||||||
"HINT", "512", "1024", "2048", "4096", "8192", "16384", "32768", "65536",
|
"HINT", "512", "1024", "2048", "4096", "8192", "16384", "32768", "65536",
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,11 @@ struct gamedef_t
|
||||||
virtual bool surf_is_lightmapped(const surfflags_t &flags) const = 0;
|
virtual bool surf_is_lightmapped(const surfflags_t &flags) const = 0;
|
||||||
virtual bool surf_is_subdivided(const surfflags_t &flags) const = 0;
|
virtual bool surf_is_subdivided(const surfflags_t &flags) const = 0;
|
||||||
virtual bool surfflags_are_valid(const surfflags_t &flags) const = 0;
|
virtual bool surfflags_are_valid(const surfflags_t &flags) const = 0;
|
||||||
|
/**
|
||||||
|
* We block certain surface flag combinations from ever smoothing together
|
||||||
|
* e.g. warping and non-warping
|
||||||
|
*/
|
||||||
|
virtual bool surfflags_may_phong(const surfflags_t &a, const surfflags_t &b) const = 0;
|
||||||
virtual int32_t surfflags_from_string(const std::string_view &str) const = 0;
|
virtual int32_t surfflags_from_string(const std::string_view &str) const = 0;
|
||||||
// FIXME: fix so that we don't have to pass a name here
|
// FIXME: fix so that we don't have to pass a name here
|
||||||
virtual bool texinfo_is_hintskip(const surfflags_t &flags, const std::string &name) const = 0;
|
virtual bool texinfo_is_hintskip(const surfflags_t &flags, const std::string &name) const = 0;
|
||||||
|
|
|
||||||
|
|
@ -473,6 +473,7 @@ void CalculateVertexNormals(const mbsp_t *bsp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Q1 phong angle stuff
|
// Q1 phong angle stuff
|
||||||
|
auto *f_texinfo = Face_Texinfo(bsp, &f);
|
||||||
const auto f_points = GLM_FacePoints(bsp, &f);
|
const auto f_points = GLM_FacePoints(bsp, &f);
|
||||||
const qvec3d f_norm = Face_Normal(bsp, &f);
|
const qvec3d f_norm = Face_Normal(bsp, &f);
|
||||||
const qplane3d f_plane = Face_Plane(bsp, &f);
|
const qplane3d f_plane = Face_Plane(bsp, &f);
|
||||||
|
|
@ -506,6 +507,14 @@ void CalculateVertexNormals(const mbsp_t *bsp)
|
||||||
if (!f2_wants_phong)
|
if (!f2_wants_phong)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
auto *f2_texinfo = Face_Texinfo(bsp, f2);
|
||||||
|
if (f2_texinfo != nullptr && f_texinfo != nullptr) {
|
||||||
|
if (!bsp->loadversion->game->surfflags_may_phong(f_texinfo->flags, f2_texinfo->flags)) {
|
||||||
|
// phong may be blocked by the gamedef, e.g. warping and non-warping never phong
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const auto f2_points = GLM_FacePoints(bsp, f2);
|
const auto f2_points = GLM_FacePoints(bsp, f2);
|
||||||
const qvec3f f2_centroid = qv::PolyCentroid(f2_points.begin(), f2_points.end());
|
const qvec3f f2_centroid = qv::PolyCentroid(f2_points.begin(), f2_points.end());
|
||||||
const qvec3d f2_norm = Face_Normal(bsp, f2);
|
const qvec3d f2_norm = Face_Normal(bsp, f2);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
// Game: Quake 2
|
||||||
|
// Format: Quake2 (Valve)
|
||||||
|
// entity 0
|
||||||
|
{
|
||||||
|
"mapversion" "220"
|
||||||
|
"classname" "worldspawn"
|
||||||
|
"_tb_textures" "textures/e1u1"
|
||||||
|
"_phong" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 368 64 112 ) ( 368 -64 112 ) ( 368 64 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 -64 -16 ) ( 368 -64 -16 ) ( 384 -64 112 ) e1u1/c_met11_2 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 64 -16 ) ( 368 64 -16 ) ( 384 -64 -16 ) e1u1/c_met11_2 [ 1 0 0 -64 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 384 -64 272 ) ( 368 -64 272 ) ( 384 64 272 ) e1u1/c_met11_2 [ 1 0 0 -64 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 384 224 112 ) ( 368 224 112 ) ( 384 224 -16 ) e1u1/c_met11_2 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 -64 112 ) ( 384 64 112 ) ( 384 -64 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 1
|
||||||
|
{
|
||||||
|
( -496 112 -16 ) ( -496 240 -16 ) ( -496 112 112 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -496 -48 112 ) ( -480 -48 112 ) ( -496 -48 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -496 112 -16 ) ( -480 112 -16 ) ( -496 240 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -496 240 272 ) ( -480 240 272 ) ( -496 112 272 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -496 240 -16 ) ( -480 240 -16 ) ( -496 240 112 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -480 112 -16 ) ( -480 112 112 ) ( -480 240 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 2
|
||||||
|
{
|
||||||
|
( -480 240 112 ) ( -480 224 112 ) ( -480 240 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -384 224 112 ) ( -384 224 -16 ) ( -480 224 112 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -480 240 -16 ) ( -480 224 -16 ) ( -384 240 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -384 240 272 ) ( -384 224 272 ) ( -480 240 272 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -384 240 112 ) ( -480 240 112 ) ( -384 240 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 240 -16 ) ( 384 224 -16 ) ( 384 240 112 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 3
|
||||||
|
{
|
||||||
|
( -480 -64 -16 ) ( -480 -48 -16 ) ( -480 -64 112 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 48 -64 -16 ) ( -48 -64 -16 ) ( 48 -64 112 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 48 -64 -16 ) ( 48 -48 -16 ) ( -48 -64 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -48 -64 272 ) ( -48 -48 272 ) ( 48 -64 272 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -48 -48 -16 ) ( 48 -48 -16 ) ( -48 -48 112 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 -64 112 ) ( 384 -48 112 ) ( 384 -64 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 4
|
||||||
|
{
|
||||||
|
( -480 -48 288 ) ( -480 -48 272 ) ( -480 48 288 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 48 -48 288 ) ( 48 -48 272 ) ( -48 -48 288 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 48 48 272 ) ( -48 48 272 ) ( 48 -48 272 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 48 48 288 ) ( 48 -48 288 ) ( -48 48 288 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -48 224 288 ) ( -48 224 272 ) ( 48 224 288 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 48 288 ) ( 384 48 272 ) ( 384 -48 288 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 5
|
||||||
|
{
|
||||||
|
( -480 48 -16 ) ( -480 48 0 ) ( -480 -48 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -48 -48 -16 ) ( -48 -48 0 ) ( 48 -48 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -48 48 -16 ) ( -48 -48 -16 ) ( 48 48 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -48 -48 0 ) ( -48 48 0 ) ( 48 -48 0 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 48 224 -16 ) ( 48 224 0 ) ( -48 224 -16 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 384 -48 -16 ) ( 384 -48 0 ) ( 384 48 -16 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 6
|
||||||
|
{
|
||||||
|
( -368 0 -144 ) ( -368 1 -144 ) ( -368 0 -140 ) e1u1/brwater [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 24 0
|
||||||
|
( -336 -48 -144 ) ( -336 -48 -140 ) ( -335 -48 -144 ) e1u1/brwater [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1 32 24 0
|
||||||
|
( -336 0 0 ) ( -335 0 0 ) ( -336 1 0 ) e1u1/brwater [ -1 0 0 -16 ] [ 0 -1 0 0 ] 0 1 1 32 24 0
|
||||||
|
( -144 192 48 ) ( -144 193 48 ) ( -143 192 48 ) e1u1/brwater [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1 32 24 0
|
||||||
|
( -144 220 -80 ) ( -143 220 -80 ) ( -144 220 -76 ) e1u1/brwater [ -1 0 0 -16 ] [ 0 0 -1 0 ] 0 1 1 32 24 0
|
||||||
|
( -256 192 -80 ) ( -256 192 -76 ) ( -256 193 -80 ) e1u1/brwater [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 24 0
|
||||||
|
}
|
||||||
|
// brush 7
|
||||||
|
{
|
||||||
|
( -368 220 128 ) ( -368 144 36.36363636364695 ) ( -368 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -368 144 36.36363636364695 ) ( -144 144 36.36363636364695 ) ( -144 144 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -368 220 128 ) ( -144 220 128 ) ( -144 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 144 0 ) ( -144 220 0 ) ( -368 220 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -144 220 0 ) ( -144 220 128 ) ( -368 220 128 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -256 144 36.36363636364695 ) ( -256 220 128 ) ( -256 220 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 8
|
||||||
|
{
|
||||||
|
( -368 144 0 ) ( -368 144 36.36363636364695 ) ( -368 77.33333333330674 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 77.33333333330684 0 ) ( -144 144 0 ) ( -368 144 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -144 144 0 ) ( -144 144 36.36363636364689 ) ( -368 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 77.33333333330684 0 ) ( -368 77.33333333330674 0 ) ( -368 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -256 77.33333333330684 0 ) ( -256 144 36.36363636364689 ) ( -256 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 9
|
||||||
|
{
|
||||||
|
( -240 220 128 ) ( -240 144 36.36363636364695 ) ( -240 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -240 144 36.36363636364695 ) ( -16 144 36.36363636364695 ) ( -16 144 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -240 220 128 ) ( -16 220 128 ) ( -16 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -16 144 0 ) ( -16 220 0 ) ( -240 220 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -16 220 0 ) ( -16 220 128 ) ( -240 220 128 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -128 144 36.36363636364695 ) ( -128 220 128 ) ( -128 220 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 10
|
||||||
|
{
|
||||||
|
( -240 144 0 ) ( -240 144 36.36363636364695 ) ( -240 77.33333333330674 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -16 77.33333333330684 0 ) ( -16 144 0 ) ( -240 144 0 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -16 144 0 ) ( -16 144 36.36363636364689 ) ( -240 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -16 77.33333333330684 0 ) ( -240 77.33333333330674 0 ) ( -240 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -128 77.33333333330684 0 ) ( -128 144 36.36363636364689 ) ( -128 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 11
|
||||||
|
{
|
||||||
|
( -112 220 128 ) ( -112 144 36.36363636364695 ) ( -112 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -112 144 36.36363636364695 ) ( 112 144 36.36363636364695 ) ( 112 144 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -112 220 128 ) ( 112 220 128 ) ( 112 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 144 0 ) ( 112 220 0 ) ( -112 220 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 220 0 ) ( 112 220 128 ) ( -112 220 128 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 0 144 36.36363636364695 ) ( 0 220 128 ) ( 0 220 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 12
|
||||||
|
{
|
||||||
|
( -112 144 0 ) ( -112 144 36.36363636364695 ) ( -112 77.33333333330674 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 77.33333333330684 0 ) ( 112 144 0 ) ( -112 144 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 144 0 ) ( 112 144 36.36363636364689 ) ( -112 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 77.33333333330684 0 ) ( -112 77.33333333330674 0 ) ( -112 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 77.33333333330684 0 ) ( 0 144 36.36363636364689 ) ( 0 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 13
|
||||||
|
{
|
||||||
|
( -112 0 -144 ) ( -112 1 -144 ) ( -112 0 -140 ) e1u1/brwater [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 0 0
|
||||||
|
( -80 -48 -144 ) ( -80 -48 -140 ) ( -79 -48 -144 ) e1u1/brwater [ 1 0 0 -48 ] [ 0 0 -1 0 ] 0 1 1 32 0 0
|
||||||
|
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) e1u1/brwater [ -1 0 0 48 ] [ 0 -1 0 0 ] 0 1 1 32 0 0
|
||||||
|
( 112 192 48 ) ( 112 193 48 ) ( 113 192 48 ) e1u1/brwater [ 1 0 0 -48 ] [ 0 -1 0 0 ] 0 1 1 32 0 0
|
||||||
|
( 112 220 -80 ) ( 113 220 -80 ) ( 112 220 -76 ) e1u1/brwater [ -1 0 0 48 ] [ 0 0 -1 0 ] 0 1 1 32 0 0
|
||||||
|
( 0 192 -80 ) ( 0 192 -76 ) ( 0 193 -80 ) e1u1/brwater [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 0 0
|
||||||
|
}
|
||||||
|
// brush 14
|
||||||
|
{
|
||||||
|
( 16 144 0 ) ( 16 144 36.36363636364695 ) ( 16 77.33333333330674 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 240 77.33333333330684 0 ) ( 240 144 0 ) ( 16 144 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 240 144 0 ) ( 240 144 36.36363636364689 ) ( 16 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 240 77.33333333330684 0 ) ( 16 77.33333333330674 0 ) ( 16 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 128 77.33333333330684 0 ) ( 128 144 36.36363636364689 ) ( 128 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 15
|
||||||
|
{
|
||||||
|
( 16 220 128 ) ( 16 144 36.36363636364695 ) ( 16 144 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 16 144 36.36363636364695 ) ( 240 144 36.36363636364695 ) ( 240 144 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 16 220 128 ) ( 240 220 128 ) ( 240 144 36.36363636364695 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 240 144 0 ) ( 240 220 0 ) ( 16 220 0 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 240 220 0 ) ( 240 220 128 ) ( 16 220 128 ) e1u1/c_met11_2 [ 1 0 0 -112 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 128 144 36.36363636364695 ) ( 128 220 128 ) ( 128 220 0 ) e1u1/c_met11_2 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
// brush 16
|
||||||
|
{
|
||||||
|
( 16 0 -144 ) ( 16 1 -144 ) ( 16 0 -140 ) e1u1/brwater [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 0 100
|
||||||
|
( 48 -48 -144 ) ( 48 -48 -140 ) ( 49 -48 -144 ) e1u1/brwater [ 1 0 0 -48 ] [ 0 0 -1 0 ] 0 1 1 32 0 100
|
||||||
|
( 48 0 0 ) ( 49 0 0 ) ( 48 1 0 ) e1u1/brwater [ -1 0 0 48 ] [ 0 -1 0 0 ] 0 1 1 32 0 100
|
||||||
|
( 240 192 48 ) ( 240 193 48 ) ( 241 192 48 ) e1u1/brwater [ 1 0 0 -48 ] [ 0 -1 0 0 ] 0 1 1 32 0 100
|
||||||
|
( 240 220 -80 ) ( 241 220 -80 ) ( 240 220 -76 ) e1u1/brwater [ -1 0 0 48 ] [ 0 0 -1 0 ] 0 1 1 32 0 100
|
||||||
|
( 128 192 -80 ) ( 128 192 -76 ) ( 128 193 -80 ) e1u1/brwater [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 32 0 100
|
||||||
|
}
|
||||||
|
// brush 17
|
||||||
|
{
|
||||||
|
( -480 -64 64 ) ( -480 -63 64 ) ( -480 -64 65 ) e1u1/c_met11_2 [ 0 1.0000000000000002 0 -80 ] [ 0 0 -1.0000000000000002 0 ] 0 1 1
|
||||||
|
( -1024 -48 64 ) ( -1024 -48 65 ) ( -1023 -48 64 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -1024 -64 92 ) ( -1023 -64 92 ) ( -1024 -63 92 ) e1u1/c_met11_2 [ 1.0000000000000002 0 0 0 ] [ 0 -1.0000000000000002 0 -112 ] 0 1 1
|
||||||
|
( 224 -32 96 ) ( 224 -31 96 ) ( 225 -32 96 ) e1u1/c_met11_2 [ 1.0000000000000002 0 0 0 ] [ 0 1.0000000000000002 0 -48 ] 0 1 1
|
||||||
|
( 224 -8 96 ) ( 225 -8 96 ) ( 224 -8 97 ) e1u1/c_met11_2 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 224 -32 96 ) ( 224 -32 97 ) ( 224 -31 96 ) e1u1/c_met11_2 [ 0 -1.0000000000000002 0 48 ] [ 0 0 -1.0000000000000002 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 1
|
||||||
|
{
|
||||||
|
"classname" "info_player_start"
|
||||||
|
"origin" "188.686 -28.4041 120"
|
||||||
|
"angle" "165"
|
||||||
|
}
|
||||||
|
|
@ -169,3 +169,7 @@ TEST_CASE("emissive lights") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("q2_phong_doesnt_cross_contents") {
|
||||||
|
auto [bsp, bspx] = LoadTestmap("q2_phong_doesnt_cross_contents.map", {"-wrnormals"});
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue