News | Forum | People | FAQ | Links | Search | Register | Log in
TyrUtils V0.11
TyrUtils v0.11 has been released:

*Support BSP2 format (qbsp requires the "-bsp2" command line option)
*qbsp: Fix animating texture bug when brushes are textured with alt-animations
* qbsp: Fix a crash in tjunc calculations
* qbsp: Exit with error if verticies exceed 65535 (BSP29 limit)
* qbsp: Add experimental "-forcegoodtree" command line option (thanks Rebb)
* vis: reduce "leaf recursion" error to a warning and continue processing

Download from the utils page as usual (Win32 / OSX / source).
First | Previous | Next | Last
Here are builds with two experimental features - these are unofficial, not approved by Tyrann or anything :)
-dirt support
-0-1 color format support

Plus some older fixes that are already in tyrutils git:
-lightmap coordinates fix for 64-bit binaries (only affects mac or linux builds)
-fix for writing a corrupted bsp when using wad3 (halflife) textures

win32 osx source 
awesome! thanks ericw! 
Thanks Ericw! 
But I have a question. There was a bit of talk about doing some sort of radiosity with light.exe in quake when you first came up with the -dirt idea and it got me to thinking. Is it possible to do one or more of the following:

1) An invisible "Light" brush. I get that it "Can" cause problems with multiple faces and light types if it gets too big and it probably shouldn't be used with anything but a solid light (no flickering, throbbing or maybe even switchable). It works with _sunlight so I was wondering if it was possible to translate that over to other textures or if because of how sky is displayed that's too far afield.

2) A sort of "Fake" radiosity tied to specific textures like *lava and *slime by default. The way most engines handles liquids makes it look a bit off when it's in a dark location. Maybe even instead of default textures (like *lava or *slime) a way to set up a user created data file.txt that specifies specific textures that act like a "Light" brush above during the compile process).

Only spitballing here so feel free to ignore it. 
How About 
specifying light emitting textures? Defined by a text file given to the commandline. With all wait/delay functionality. Would help making spotlights for example. Just an idea. 
sounds like a great feature idea.
I could see either a command-line flag like "-lighttexture {texture light r g b wait delay}" or something, or having a list of these in a text file.
The quake2 light tool has it, (I think it's set as a surface flag?), and at first glance it seems to be intertwined with the radiosity support. It'd definitely be a bigger project than adding the -dirt was, but would be cool to do (as well as having radiosity) 
Give Q1rad A Try 
It's Cool 
I think i used that on my first map.. but it's old, the source isn't available, and the readme says it's derived from Valve's q1rad so it woudn't be possible to combine with a modern gpl quake1 tool anyway.

The quake2 qrad3 is GPL'ed though: 
"Fake" Radiosity Tied To Specific Textures Like *lava And *slime By De 
I implemented this in the last version of MHColour, but instead of emitting light the radiosity was used to tint the already existing light data. It's easy enough to do and you can just butcher the code and get something that works up and running quick enough. 
I looked at that and while it sort of does the job there is no control over it (re specific textures for example) specifically because it "Does" use pre-existing lights. The user also can't specify any textures to ignore or add.

It worked pretty well for generating .lit files for .bsps where the source files weren't available but quite honestly the hues and intensity of the colors weren't really to my liking about 80% of the time. Too much like Q2. As I've said before with Quake and colored lights, less is almost always more. It ain't the Las Vegas Strip. It's what you might find deep underneath the Las Vegas Strip after a bad night out.

I was thinking of something that didn't use a light entity (in the traditional sense) at all but turned the top face (or any face exposed to "Air" I suppose) of a brush into a light all by itself. 
In fairness that's all it ever really set out to do. The last version was a good deal more subtle than earlier versions, but I'd guess about 50% of users preferred the stronger colouring.

In general I agree - mapper control of lighting in the tools and at the compilation stage is the correct way to go, and MHColour was never meant to be a replacement for that.

Despite all the above the theory is still applicable - it's just tracing the BSP between points, then checking distance and facing, after all. 
I'm pretty sure nobody's mentioned this yet.

So I tried out the fancy hacked dirtmapping and got this:

That's looking at the corner of a room. The diagonally opposite corner looks correct, and the two remaining corners are wrong on one plane or the other, almost as if the sample points are off by one in a positive-axis direction. 
Hm Weird 
I also get some problems with a box map:
-lit -dirty -dirtdebug:
-lit -dirty -dirtdebug -extra4:
Quakespasm is hacked to show lightmaps with nearest-neighbour filtering.

One issue is, even with extra4, the left and right walls don't get any significant dirt applied at the edge with the back wall. Will look into it.. 
This might be related to some other problems I've been having for a while with tyrlight. Here's just sunlight, no dirt:

Opposite corner from my previous screenshot. Note that those blocks are not floating.

I would really like to say when I started seeing this kind of thing, because I know it happened after I tried to get the latest compilers six or eight months ago, but I've tried to reproduce the collection I had before that and I still get those gaps and bleeds, so I can't actually prove it's a change in some compiler that's done it.

eric, what are you BSPing with? Do you think it matters? Utter conjecture here, but could some subtle difference in point quantization or double rounding in the BSP phase cause the lightmap sample origins to fall on the wrong side of a face or become coincident with an edge in a microscopically unhealthy way? 
p.s. the poorly shadowed corner in 0061 is the -x,-y corner, and in 0063 it's the +x,+y corner. 
Thanks Lun 
I think I understand the dirtmapping glitches on my box room, at least. The problem seems to be the raytracing code in tyrutils is unreliable when sample points lie exactly on a plane separating the void from the map interior. (but unreliable in a consistent way, so in some directions it works) Unfortunately, you get these quite a lot of these void-straddling points with the way the sample points are positioned:
The sample points for the west wall of a box room, for example, are distributed in a grid that's pushed 1 unit into the middle of the room, so most of the points are free-floating in the map interior as desired. The problem is, the columns of points on the north and south edges lie exactly in the plane of the north and south walls, and same goes for the row of points along the floor and ceiling.

The one thing I tried as a fix, which is admittedly a coarse-grained fix, was replacing the trace code with LordHavoc's from his hmap2 compiler, which seemed to magically fix the dirtmapping glitches. It seems it can consistently deal with sample points straddling the void and treat them as within the map, which would be good.

Could you send me the map for 0063.jpg? (or just that section of it?) I'd like to see if I can fix that bleeding is the same way as the dirtmapping glitches.

For bsp I'm using snapshot I posted in #113, osx version. I don't think that's a factor, though I can double check on windows. 
Another Snapshot With Fixed AO 
Looks like that glitched shadow in fitz0063.jpg was introduced in TyrUtils 0.7, in commit cc36d8e. I reverted part of that commit and it seems to have cleared up the holes in sunlight shadows as well as fixed up the AO.

win32 osx source

The dirtmapping looks way better in this snapshot than the previous ones! It looks reasonable now without -extra4. 
Screenshot Of Jam2_sock 
Ericw For President Of Space 

i just didn't test all the way back to 0.7 because I had no idea the version of tyrlite I was using was that bloody old. :( 
Also this is what the last snapshot looked like:

It was totally broken! The rays to test occlusion were not impacting the world properly and the measurement of the distance to impact was also messed up. Would love to see what your screenshots look like recompiled with this fixed build, WarrenM :D 
Only because you're my hero ...

Unlit/Dirt Only/Full Lighting

I turned down the dirty setting to 1.5 since the new code makes it a lot dirtier!

And a random shot: 
Love That Second Shot! 
Hmm, the floor under the chain in the middle shot looks a bit odd.

Could just be the occlusion test rays are hitting the chain, combined with high dirt settings, in which case it's expected I guess. If you think it might be a bug, I'd be happy to have a look at the .map for that chunk. 
Sure ...

And no, this won't be finished for the jam. :) 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.