diff --git a/regression_tests/q3map2/decal_misalignment/README.txt b/regression_tests/q3map2/decal_misalignment/README.txt new file mode 100644 index 00000000..f9aa3d6d --- /dev/null +++ b/regression_tests/q3map2/decal_misalignment/README.txt @@ -0,0 +1,16 @@ +DESCRIPTION OF PROBLEM: +======================= + +The info_null in the map for the decal is not 100% below the center of the +decal itself, because to be totally below it would have to lie on half-units. +So, the info_null lies almost directly below the center of the decal. In +this particular case, all kinds of bad things happen to the decal. For one, +during compiling we get warnings like this: + + Bad texture matrix! (B) (50.512253, -49.515625) != (50.484375, -49.515625) + Bad texture matrix! (C) (48.723190, -49.522587) != (48.695312, -49.515625) + Bad texture matrix! (B) (48.723186, -49.522587) != (48.695312, -49.515625) + +If you look at where the decal (it's just a blue translucent tile texture) +meets the far wall, it's clearly not aligned correctly. The tile on the decal +and the tile on the wall should align perfectly, and it's quite a bit off. diff --git a/regression_tests/q3map2/decal_misalignment/maps/decal_misalignment.map b/regression_tests/q3map2/decal_misalignment/maps/decal_misalignment.map new file mode 100644 index 00000000..aaa96b91 --- /dev/null +++ b/regression_tests/q3map2/decal_misalignment/maps/decal_misalignment.map @@ -0,0 +1,102 @@ +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ +( 6472 6336 -960 ) ( 6288 6336 -960 ) ( 6288 6320 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6264 6320 -576 ) ( 6264 6336 -576 ) ( 6448 6336 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6280 6328 -832 ) ( 6464 6328 -832 ) ( 6464 6328 -848 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6320 -832 ) ( 6464 6336 -832 ) ( 6464 6336 -848 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6336 -832 ) ( 6280 6336 -832 ) ( 6280 6336 -848 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +( 6144 6336 -832 ) ( 6144 6320 -832 ) ( 6144 6320 -848 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 1 +{ +( 6552 6520 -960 ) ( 6464 6520 -960 ) ( 6464 6336 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6336 -576 ) ( 6464 6520 -576 ) ( 6552 6520 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6336 -576 ) ( 6552 6336 -576 ) ( 6552 6336 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6472 6344 -576 ) ( 6472 6528 -576 ) ( 6472 6528 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6528 7360 -576 ) ( 6440 7360 -576 ) ( 6440 7360 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6520 -576 ) ( 6464 6336 -576 ) ( 6464 6336 -960 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +} +// brush 2 +{ +( 6464 7424 -960 ) ( 6144 7424 -960 ) ( 6144 7360 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 7360 -576 ) ( 6144 7424 -576 ) ( 6464 7424 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 7360 -576 ) ( 6464 7360 -576 ) ( 6464 7360 -960 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +( 6464 7360 -576 ) ( 6464 7424 -576 ) ( 6464 7424 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 7368 -576 ) ( 6144 7368 -576 ) ( 6144 7368 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 7424 -576 ) ( 6144 7360 -576 ) ( 6144 7360 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 3 +{ +( 6144 7360 -960 ) ( 5880 7360 -960 ) ( 5880 6808 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 5880 6808 -576 ) ( 5880 7360 -576 ) ( 6144 7360 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 5864 6336 -576 ) ( 6128 6336 -576 ) ( 6128 6336 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 6808 -576 ) ( 6144 7360 -576 ) ( 6144 7360 -960 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +( 6144 7360 -576 ) ( 5880 7360 -576 ) ( 5880 7360 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6136 7384 -576 ) ( 6136 6832 -576 ) ( 6136 6832 -960 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 4 +{ +( 6456 7360 -968 ) ( 6136 7360 -968 ) ( 6136 6336 -968 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 6336 -960 ) ( 6144 7360 -960 ) ( 6464 7360 -960 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +( 6144 6336 -960 ) ( 6464 6336 -960 ) ( 6464 6336 -1008 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6336 -960 ) ( 6464 7360 -960 ) ( 6464 7360 -1008 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 7360 -960 ) ( 6144 7360 -960 ) ( 6144 7360 -1008 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 7360 -960 ) ( 6144 6336 -960 ) ( 6144 6336 -1008 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 5 +{ +( 6464 7360 -576 ) ( 6152 7360 -576 ) ( 6152 6336 -576 ) radiant_regression_tests/bigtile 0 0 0 0.500000 0.500000 0 0 0 +( 6176 6336 -568 ) ( 6176 7360 -568 ) ( 6488 7360 -568 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6152 6336 -472 ) ( 6464 6336 -472 ) ( 6464 6336 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 6336 -472 ) ( 6464 7360 -472 ) ( 6464 7360 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6464 7360 -472 ) ( 6152 7360 -472 ) ( 6152 7360 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 6144 7360 -472 ) ( 6144 6336 -472 ) ( 6144 6336 -576 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 6 +{ +( 6200 7360 -896 ) ( 6200 6336 -896 ) ( 6592 6336 -896 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +( 6360 6336 -832 ) ( 6360 7256 -832 ) ( 6464 7256 -832 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +( 6208 6337 -832 ) ( 6400 6337 -832 ) ( 6400 6337 -896 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +( 6463 6336 -816 ) ( 6463 7360 -816 ) ( 6463 7360 -880 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +( 6232 7264 -896 ) ( 6232 7264 -832 ) ( 6232 6337 -896 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +( 6232 7256 -832 ) ( 6232 7256 -896 ) ( 6463 7256 -832 ) radiant_regression_tests/glass 0 0 0 0.500000 0.500000 134217728 257 0 +} +} +// entity 1 +{ +"target" "checker" +"classname" "_decal" +// brush 0 +{ +patchDef2 +{ +radiant_regression_tests/tile_trans +( 3 3 0 0 0 ) +( +( ( 6462 7255 -832 50.484375 -56.679688 ) ( 6462 6796.500000 -832 50.484375 -53.097656 ) ( 6462 6338 -832 50.484375 -49.515625 ) ) +( ( 6347.500000 7255 -832 49.589844 -56.679688 ) ( 6347.500000 6796.500000 -832 49.589844 -53.097656 ) ( 6347.500000 6338 -832 49.589844 -49.515625 ) ) +( ( 6233 7255 -832 48.695312 -56.679688 ) ( 6233 6796.500000 -832 48.695312 -53.097656 ) ( 6233 6338 -832 48.695312 -49.515625 ) ) +) +} +} +} +// entity 2 +{ +"targetname" "checker" +"origin" "6347 6796 -840" +"classname" "info_null" +} +// entity 3 +{ +"origin" "6288 6704 -712" +"classname" "info_player_deathmatch" +} +// entity 4 +{ +"light" "2000" +"origin" "6304 6792 -704" +"classname" "light" +} diff --git a/regression_tests/q3map2/decal_misalignment/scripts/ramb_common.shader b/regression_tests/q3map2/decal_misalignment/scripts/ramb_common.shader new file mode 100644 index 00000000..2dce0da7 --- /dev/null +++ b/regression_tests/q3map2/decal_misalignment/scripts/ramb_common.shader @@ -0,0 +1,170 @@ +textures/ramb_common/caulk +{ + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nomarks +} + +textures/ramb_common/hollowcaulk +{ + qer_editorImage textures/ramb_common/caulk.jpg + qer_trans 0.5 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nomarks + surfaceparm nonsolid +} + +textures/ramb_common/nonsolidcaulk +{ + qer_editorImage textures/ramb_common/caulk.jpg + qer_trans 0.2 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nonsolid + surfaceparm trans + surfaceparm nomarks + surfaceparm detail +} + +textures/ramb_common/softslickcaulk +{ + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nomarks + surfaceparm nodamage + surfaceparm slick +} + +textures/ramb_common/softcaulk +{ + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nomarks + surfaceparm nodamage +} + +textures/ramb_common/trigger +{ + qer_trans 0.5 + qer_nocarve + surfaceparm nodraw + surfaceparm detail +} + +textures/ramb_common/playerclip +{ + qer_trans 0.5 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nonsolid + surfaceparm trans + surfaceparm nomarks + surfaceparm noimpact + surfaceparm playerclip + surfaceparm slick + surfaceparm nodamage + surfaceparm detail +} + +textures/ramb_common/tractionplayerclip +{ + qer_trans 0.5 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nonsolid + surfaceparm trans + surfaceparm nomarks + surfaceparm noimpact + surfaceparm playerclip + surfaceparm nodamage + surfaceparm detail +} + +textures/ramb_common/nodrop +{ + qer_trans 0.3 + qer_nocarve + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nonsolid + surfaceparm trans + surfaceparm nomarks + surfaceparm detail + surfaceparm nodrop +} + +textures/ramb_common/clearfiller +{ + qer_trans 0.4 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm trans + surfaceparm nodamage + surfaceparm detail +} + +textures/ramb_common/slickclearfiller +{ + qer_trans 0.4 + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm trans + surfaceparm slick + surfaceparm nodamage + surfaceparm detail +} + +textures/ramb_common/origin +{ + qer_nocarve + surfaceparm nodraw + surfaceparm nolightmap + surfaceparm nonsolid + surfaceparm trans + surfaceparm origin +} + +textures/ramb_common/hint +{ + qer_nocarve + qer_trans 0.30 + surfaceparm nodraw + surfaceparm nonsolid + surfaceparm structural + surfaceparm trans + surfaceparm hint +} + +textures/ramb_common/alpha50 +{ + qer_editorImage textures/ramb_common/alpha.jpg + qer_trans 0.4 + q3map_alphaMod volume + q3map_alphaMod set 0.5 + surfaceparm nodraw + surfaceparm nonsolid + surfaceparm trans +} + +textures/ramb_common/alpha35 +{ + qer_editorImage textures/ramb_common/alpha.jpg + qer_trans 0.3 + q3map_alphaMod volume + q3map_alphaMod set 0.35 + surfaceparm nodraw + surfaceparm nonsolid + surfaceparm trans +} + +textures/ramb_common/alpha20 +{ + qer_editorImage textures/ramb_common/alpha.jpg + qer_trans 0.2 + q3map_alphaMod volume + q3map_alphaMod set 0.2 + surfaceparm nodraw + surfaceparm nonsolid + surfaceparm trans +} diff --git a/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/bigtile.tga b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/bigtile.tga new file mode 100644 index 00000000..b4adef0d Binary files /dev/null and b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/bigtile.tga differ diff --git a/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/glass.tga b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/glass.tga new file mode 100644 index 00000000..506baedb Binary files /dev/null and b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/glass.tga differ diff --git a/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/qer_glass.tga b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/qer_glass.tga new file mode 100644 index 00000000..d5683e3d Binary files /dev/null and b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/qer_glass.tga differ diff --git a/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/tile_trans.tga b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/tile_trans.tga new file mode 100644 index 00000000..a9410ca0 Binary files /dev/null and b/regression_tests/q3map2/decal_misalignment/textures/radiant_regression_tests/tile_trans.tga differ