What the hell? Simple brush borked in-game ... please help

Discussion for Level editing, modeling, programming, or any of the other technical aspects of Quake
Post Reply
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

What the hell? Simple brush borked in-game ... please help

Post by sliver »

Hi, I'm having trouble with a brush that looks fine in Radiant but is fucked in quake.

First off, i've got a corridor like this:

<img src="http://img222.echo.cx/img222/7290/fucked19kv.jpg" alt="1">

There's a 90 degree elbow in the corridor, which is where my problems are. I've got this simple red trim texture at each side of the flat part of the walkway, and it's not even a shader, just a simple-ass texture:

<img src="http://img222.echo.cx/img222/3897/fucked29ut.jpg" alt="2">

The "west end" (-ve X axis) of this brush is 10 units wide, and the "east end" (+ve X axis) is 8 units wide. This is just so it lines up nicely with other trim brushes. Nothing spectacularly unusual or law-defying.

<img src="http://img222.echo.cx/img222/2549/fucked37cn.jpg" alt="3">

It looks perfectly fine in radiant, and i've run bobtoolz so i know the brushes aren't borked (plus i've tried rebuilding them from scratch a few times), but in-game it looks like this without fail:

<img src="http://img222.echo.cx/img222/9664/fucked42mv.jpg" alt="4">

There is no caulk brush hovering over it, there's nothing above it or within it or anywhere even nearby in radiant with all filters turned off, so it can't be another brush causing this. And it's not the XYZ location that's somehow fucked, because the same thing is happening on three other corners (the inside of the elbow bend, and inside/outside at a second elbow bend in a different hallway):

<img src="http://img222.echo.cx/img222/6375/fucked54bj.jpg" alt="5">

Please give me some advice ... i am at my wit's end, and considering the ridiculous complexity of some of the things i've put together in this map [see screenshots thread, it's geocomp-inspired] i don't understand why such a simple little thing is fucking up.

Thanks.
Anwulf
Posts: 93
Joined: Wed Jun 21, 2000 7:00 am

Post by Anwulf »

Have you had a look at the map file in a text editor to see whether that might give you any clues about what's happening? In other words, everything is fine in the editor, but the numbers are slightly off (e.g. 16.000002 instead of 16) which is then causing a problem when you compile the map.

I think I can see what's happening, but I can't tell you why (sorry). It does simply look like a manifestation of a bug. Is rebuilding the whole map from scratch an option?
o'dium
Posts: 11712
Joined: Sun Mar 25, 2001 8:00 am

Post by o'dium »

Delete the brush, and do it again. It sometimes happens when you cope/paste other brushes.

Your lucky your not working with Q2, where this happens all the time, but you wont know until you save and then reload the map...
o'dium
Posts: 11712
Joined: Sun Mar 25, 2001 8:00 am

Post by o'dium »

Right, in that case double check that your using the lowest possible size and that all your points match correctly?

Odd.
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

these are the trouble brushes:

Code: Select all

// brush 3029
{
( 1272 1912 48 ) ( 1184 1912 48 ) ( 1184 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1184 1904 64 ) ( 1184 1912 64 ) ( 1272 1912 64 ) heffctf3/e8creteold_red 0 0 0 0.500000 0.500000 134217728 0 0
( 1264 1904 64 ) ( 1264 1904 48 ) ( 1184 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1264 1904 48 ) ( 1264 1904 64 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1272 1912 64 ) ( 1184 1912 64 ) ( 1184 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 1912 64 ) ( 672 1904 64 ) ( 672 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
}
// brush 3030
{
( 1728 2064 48 ) ( 1496 2064 48 ) ( 1496 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1496 2056 64 ) ( 1496 2064 64 ) ( 1728 2064 64 ) heffctf3/e8creteold_red 0 0 0 0.500000 0.500000 134217728 0 0
( 1496 2056 64 ) ( 1728 2056 64 ) ( 1728 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1728 2056 64 ) ( 1728 2064 64 ) ( 1728 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1544 2064 64 ) ( 1312 2064 64 ) ( 1312 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 2072 64 ) ( 672 2064 64 ) ( 672 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
}
// brush 3031
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/e8crete01 0 0 0 0.500000 0.500000 134217728 0 0
( 680 1912 64 ) ( 1096 1912 64 ) ( 1096 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1728 1968 64 ) ( 1728 2064 64 ) ( 1728 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1088 2056 64 ) ( 672 2056 64 ) ( 672 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1272 1912 48 ) ( 672 1914 48 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 2054 48 ) ( 1272 2056 48 ) ( 672 2054 64 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
}
// brush 3032
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/nundarkwall 0 0 0 0.500000 0.500000 134217728 0 0
( 1088 2056 64 ) ( 672 2056 64 ) ( 672 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 1272 2056 48 ) ( 672 2054 48 ) ( 672 2054 64 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
}
// brush 3033
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/nundarkwall 0 0 0 0.500000 0.500000 134217728 0 0
( 680 1912 64 ) ( 1096 1912 64 ) ( 1096 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
( 672 1914 48 ) ( 1272 1912 48 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
}
}
they look okay to me :paranoid:

and no, rebuilding the whole map is emphatically NOT an option, it's at 4000 brushes and that's not many, but at least 1000 of them required a bunch of edge/vertex manipulation because they're at all sorts of weird angles.

any other ideas?

edit: all points are on the 2-grid [i'm not even down at the 1-size].
Last edited by sliver on Sat Jun 18, 2005 5:14 pm, edited 1 time in total.
Fjoggs
Posts: 2555
Joined: Fri May 03, 2002 7:00 am

Post by Fjoggs »

brush cleanup?
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

if you mean bobtoolz, it doesnt find anything wrong
Fjoggs
Posts: 2555
Joined: Fri May 03, 2002 7:00 am

Post by Fjoggs »

sometimes just running it solves the problem without showing any error brushes.
pjw
Posts: 860
Joined: Sun May 07, 2000 7:00 am

Post by pjw »

I realize that it would be nice to figure out why this is happening and come up with a solution but, failing that, why not just make the brush in question axial rather than tapered and alter the trim it joins to match? Seems odd to need a 2-unit difference in width on a very long thin brush...
I beat the internet; the end guy is hard.
Hr.O
Posts: 152
Joined: Wed Jul 12, 2000 7:00 am

Post by Hr.O »

Something funny comes to mind, shift-H to unhide the hidden, ctrl-D hide/unhide detail brushes, and ctrl-shift-D to do the same with your structural stuff.

Hr.O
codey-
Posts: 44
Joined: Mon Mar 07, 2005 10:45 pm

Post by codey- »

Try make two brushes of them by splitting the textured surface diagonally to make triangles.

And next step would be going down to 1 unit grid.

cheers
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Post by ^misantropia^ »

sliver wrote:

Code: Select all

( 1728 2064 48 ) ( 1496 2064 48 ) ( 1496 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
Try replacing the last three numbers (which are now "134217728 4 0") with zeroes. Do so for all offending vertexes.
EDIT: what a little Perl magic can't do for you... Here you go:

Code: Select all

// brush 3029
{
( 1272 1912 48 ) ( 1184 1912 48 ) ( 1184 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1184 1904 64 ) ( 1184 1912 64 ) ( 1272 1912 64 ) heffctf3/e8creteold_red 0 0 0 0.500000 0.500000 0 0 0
( 1264 1904 64 ) ( 1264 1904 48 ) ( 1184 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1264 1904 48 ) ( 1264 1904 64 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1272 1912 64 ) ( 1184 1912 64 ) ( 1184 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 1912 64 ) ( 672 1904 64 ) ( 672 1904 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
}
// brush 3030
{
( 1728 2064 48 ) ( 1496 2064 48 ) ( 1496 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1496 2056 64 ) ( 1496 2064 64 ) ( 1728 2064 64 ) heffctf3/e8creteold_red 0 0 0 0.500000 0.500000 0 0 0
( 1496 2056 64 ) ( 1728 2056 64 ) ( 1728 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1728 2056 64 ) ( 1728 2064 64 ) ( 1728 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1544 2064 64 ) ( 1312 2064 64 ) ( 1312 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 2072 64 ) ( 672 2064 64 ) ( 672 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
}
// brush 3031
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/e8crete01 0 0 0 0.500000 0.500000 0 0 0
( 680 1912 64 ) ( 1096 1912 64 ) ( 1096 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1728 1968 64 ) ( 1728 2064 64 ) ( 1728 2064 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1088 2056 64 ) ( 672 2056 64 ) ( 672 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1272 1912 48 ) ( 672 1914 48 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 2054 48 ) ( 1272 2056 48 ) ( 672 2054 64 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
}
// brush 3032
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/nundarkwall 0 0 0 0.500000 0.500000 0 0 0
( 1088 2056 64 ) ( 672 2056 64 ) ( 672 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 1272 2056 48 ) ( 672 2054 48 ) ( 672 2054 64 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
}
// brush 3033
{
( 1088 2048 48 ) ( 672 2048 48 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 1952 64 ) ( 672 2048 64 ) ( 1088 2048 64 ) heffctf3/nundarkwall 0 0 0 0.500000 0.500000 0 0 0
( 680 1912 64 ) ( 1096 1912 64 ) ( 1096 1912 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 2048 64 ) ( 672 1952 64 ) ( 672 1952 48 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
( 672 1914 48 ) ( 1272 1912 48 ) ( 1272 1912 64 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0
}
}
axbaby
Posts: 3424
Joined: Wed Dec 22, 1999 8:00 am

Post by axbaby »

Hr.O wrote:Something funny comes to mind, shift-H to unhide the hidden, ctrl-D hide/unhide detail brushes, and ctrl-shift-D to do the same with your structural stuff.

Hr.O
it does look like a duplicate brush problem
[color=#FF0000][WYD][/color]
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

Fjoggs wrote:sometimes just running it solves the problem without showing any error brushes.
didn't fix it
pjw wrote:I realize that it would be nice to figure out why this is happening and come up with a solution but, failing that, why not just make the brush in question axial rather than tapered and alter the trim it joins to match? Seems odd to need a 2-unit difference in width on a very long thin brush...
that's just the way it is. As things stand i'm going to have to make it axial and add something else in the middle to hide the non-continuity. Not a big problem, but not what i wanted.
Hr.O wrote:Something funny comes to mind, shift-H to unhide the hidden, ctrl-D hide/unhide detail brushes, and ctrl-shift-D to do the same with your structural stuff.

Hr.O
There's nothing there. I've checked again and again with all filters off and nothing hidden.
codey- wrote:Try make two brushes of them by splitting the textured surface diagonally to make triangles.

And next step would be going down to 1 unit grid.
I tried splitting it into triangles. But as soon as i add the third triangle (the one that makes it a tapered shape) it fucks up ...
^misantropia^ wrote:
sliver wrote:

Code: Select all

( 1728 2064 48 ) ( 1496 2064 48 ) ( 1496 2056 48 ) common/caulk 0 0 0 0.500000 0.500000 134217728 4 0
Try replacing the last three numbers (which are now "134217728 4 0") with zeroes. Do so for all offending vertexes.
that didn't fix it. That said, almost every brush in my map, when viewed in textpad, has a weird number like 134217728 or whatever; is that a bad sign? (The rest of the brushes are behaving fine.) I tried replacing them all with 0s at one go in textpad, and it worked, but then i got a max_map_visibility error or something like that when I compiled the vis stage.
$NulL
Posts: 100
Joined: Wed Mar 27, 2002 8:00 am

Post by $NulL »

134217728 ( 2^27 ) is the detail flag
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

oh well i spose that makes a bit of sense
pjw
Posts: 860
Joined: Sun May 07, 2000 7:00 am

Post by pjw »

What compiler are you using, and are you using the -meta switch?

If you want, save those two brushes out and put a box around them and a player start and put the .map up somewhere. I'm curious...
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

i'm using the very latest non-beta q3map2, and yes i'm using meta.

<s>if i decide to try those brushes again i'll put up a copy. for now, they dont exist.</s>

<u>here is a copy of that bit of floor</u>
axbaby
Posts: 3424
Joined: Wed Dec 22, 1999 8:00 am

Post by axbaby »

there are 2 real thin brushes in there
2 units wide at one end 0 unit wide at the other ..it's a long triangle .. 3 sided instead of 4.
q3map doesn't like triangles only rectangles ...as far as i know
[color=#FF0000][WYD][/color]
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

the triangles are just so you can see exactly where the problem is [thats why i used a darker texture]

if you merge them with the thin rectangles beside them you'll get the same tapered brushes this thread started off about, and they'll still be fucked.
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Post by ^misantropia^ »

axbaby wrote: q3map doesn't like triangles only rectangles ...as far as i know
Shouldn't be a problem if they're created with the clipper tool.
axbaby
Posts: 3424
Joined: Wed Dec 22, 1999 8:00 am

Post by axbaby »

i didn't have those textures ...all i saw was caulk and missing shader image.
[color=#FF0000][WYD][/color]
pjw
Posts: 860
Joined: Sun May 07, 2000 7:00 am

Post by pjw »

axbaby wrote:i didn't have those textures ...all i saw was caulk and missing shader image.
Yeah, just find/replace with whatever.

sliver, I screwed around with it for a bit, and you have a pretty decent wtf here. :)

I'm guessing it's just some editor or compiler error of some kind caused by the very gradual taper. Those long thin triangle brushes were just h0rked (technical term) and wouldn't re-merge with the ones next to them (radiant thought they didn't match up), and when I tried to edge-drag them, one just disappeared entirely, and when I took a close-up look at the other one, it looked like the pointy bit had about 4 verts in varying x/y positions--kinda scary.

Anyway, I just deleted them and rebuilt the side brushes and the floor in between, and yeah, when it's not axial not only do the side trims get squared off, but they aren't even 10 on the y anymore (the width of the wide end)--for some reason they get knocked up to 12 in-game. Go figure.

If you make them axial at 10, they, of course, stay at 10.

I'll bounce this off ydnar if I talk to him anytime soon, but don't hold your breath--I get the impression he's got plenty of non-Q3-ish shit to deal with these days. :)
sliver
Posts: 898
Joined: Fri May 06, 2005 12:25 am

Post by sliver »

yeah i've pretty much given up on getting it fixed, but it's not a huge problem so i can't say i care all that much.

What's weird is i carefully replaced my custom textures with some standard ones out of base_wall and yet you still can't see them :|
pjw
Posts: 860
Joined: Sun May 07, 2000 7:00 am

Post by pjw »

Looks like it's a known issue, so yeah, just make the brushes axial rather than having long, thin tapered brushes...

[12:56] ydnar: Q3Map does snap very shallow angled faces
[12:57] ydnar: brushes that come together at acute angles
[12:57] pjw (raven): Oh, so it's a known issue? Hmmn. I never knew that.
[12:57] ydnar: the code is dodgy.
[12:57] ydnar: spog wrote better brush->faces clipping code into Radiant, but I never ported it to the tools.
Post Reply