JOINER - An automated Brush Generator

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
JOINER
1.0.3
06-04-2012

Created by Timothy 'YM' Johnson



joiner_main.jpg


You can load in any VMF you like, as long as it has a brush textured in dev/slime Joiner will do it's work.

Joiner will never ever modify your input VMF, so it's totally safe to put in your working VMF, no need to create a new one.

Joiner works by finding volumes defined by single brushes textured with dev/slime. To create supports for a room, create a single dev/slime brush that exactly fills its entire volume.

You can have as many of these volumes in a map as you want, they can adjoin or intersect in any way. Joiner will create one set of supports per volume it finds.

The output will be completely func_detailed too.

Joiner will not work with any angled faces. Sorry folks, that's a feature for the future.

Joiner will not account for touching faces being the same room. That's another feature for the future.

Here are some before/after shots:
joiner_gif_03.gif

joiner_gif_02.gif

joiner_gif_01.gif



If you have any problems let me know what you were putting in, what the console said as it did it, and what you got out so I can try to fix it. (or chastise you for being a fool)

If you make anything using non-default settings, consider taking a before/after shot for me, I'd be grateful.



Enjoy!
 
Last edited:

Rexy

The Kwisatz Haderach
aa
Dec 22, 2008
1,798
2,533
I think the interesting thing is automated detail like this can, in the right situation, be more interesting and have better detail than planned wooden supports! Thanks.
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
Yeah totally, Now I've added a proper random seed (forgot it for this version, oops) it's giving me really cool results.
 

tyler

aa
Sep 11, 2013
5,102
4,621
Is there actually any point to nodrawing a face that is against a another brush? Any faces that are impossible to see in game (ie everything nodrawed in your pictures) are culled, aren't they? I thought this happened at the same time nodraw was taken into account.

Also I don't know what "Joiner will not account for touching faces being the same room. That's another feature for the future." means help
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
make an L shaped room. you neeeed two brushes minumum to define it's volume. Joiner will treat each brush as a separate room and you'll get two sets of beams along the join, through the middle of your room.
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
That still will produce extraneous wall supports in the middle of your room.
 

Idolon

they/them
aa
Feb 7, 2008
2,107
6,116
Is there actually any point to nodrawing a face that is against a another brush? Any faces that are impossible to see in game (ie everything nodrawed in your pictures) are culled, aren't they? I thought this happened at the same time nodraw was taken into account.
I don't know if func_details will automatically cull, since they ignore visleafs.
 

tyler

aa
Sep 11, 2013
5,102
4,621
It has nothing to do with visleafs as far as I know, because nodraw happens before that in the vbsp process.
 

A Boojum Snark

Toraipoddodezain Mazahabado
aa
Nov 2, 2007
4,775
7,670
Is there actually any point to nodrawing a face that is against a another brush? Any faces that are impossible to see in game (ie everything nodrawed in your pictures) are culled, aren't they? I thought this happened at the same time nodraw was taken into account.
It depends what the brushes are. World-on-world will always cull. Brushes within a single entity usually will. Detail brushes may or may not cull when touching each other or the world, and I'm not entirely sure what makes the difference.
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
Currently my nodrawing is super simplistic and not up to my usual standards. Proper nodrawing is on the list of things to do but it's pretty low down.

Next version has each 'room' grouped into a single func_detail, if it makes any difference..
 

henke37

aa
Sep 23, 2011
2,075
515
Remember that the engine culls all backwards facing sides during rendering anyways. And the detail brushes are affected by visleafs, even if they don't affect the visleaf creation. So it isn't a big deal even if you had to manually nodraw impossible sides and missed them all.