Too many t-juncs / making static props help

  • If you're asking a question make sure to set the thread type to be a question!

joeholley

L1: Registered
Aug 26, 2008
11
0
Hi folks.

I'm at the end of my rope. I'm having an issue with compiling my TF2 map - once I'd added a fair amount of detail to it (nothing excessive; it's not even as detailed as the official valve maps), I'm no longer able to compile. My compile log:

** Executing...
** Command: "c:\program files\steam\steamapps\josephh\sourcesdk\bin\orangebox\bin\vbsp.exe"
** Parameters: -game "c:\program files\steam\steamapps\josephh\team fortress 2\tf" "C:\Program Files\Steam\steamapps\josephh\sourcesdk_content\tf\mapsrc\final20080907"

Valve Software - vbsp.exe (Mar 11 2008)
2 threads
materialPath: c:\program files\steam\steamapps\josephh\team fortress 2\tf\materials
Loading C:\Program Files\Steam\steamapps\josephh\sourcesdk_content\tf\mapsrc\final20080907.vmf
Patching WVT material: maps/final20080907/nature/blendrockground007_wvt_patch
Patching WVT material: maps/final20080907/nature/blendgroundtogravel001_wvt_patch
Patching WVT material: maps/final20080907/nature/blendrockground004_wvt_patch
fixing up env_cubemap materials on brush sides...
ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (1)
ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (1)
Processing areas...done (0)
Building Faces...done (0)
Chop Details...done (2)
Find Visible Detail Sides...
Merged 6540 detail faces...done (5)
Merging details...done (0)
FixTjuncs...
Too many t-junctions to fix up! (3227 prims, max 32768 :: 65538 indices, max 65536)


Given a bit of google searching, I found the following (via http://www.interlopers.net/index.php?page=errors):

Too many T-juncs to fix up!
Description:
(from Jeff Lane, Valve) "VBSP does cleanup of edges where func_detail geometry meets world geometry to avoid getting visual cracks. One of the ways it does is this by elminating t-junctions. It sounds like you may have hit a limit of the number of those cleanups in the level.

Solution:
If that is the case, you could fix the problem by reducing the number of func_detail brushes in the level, especially ones that touch non-detail geometry. It's probably a sign that you have too much complex brush geometry in the level, and would benefit from having some of it be model geometry instead."

See also:
WIKI: making models out of brushes with XSI

This error will cause your map to fail compiling completely

Here's where I hit the brick wall :mad:. I have a good bit of func_detail brushes in the level - staircases, platforms, wall trim - and from what I've read, the only way to resolve this issue is to convert some of that into static props. I downloaded XSI mod tool, but either the wiki page (http://developer.valvesoftware.com/...your_map_into_a_prop_static_with_XSI_Mod_Tool) is out of date or is assuming user knowledge that I don't have, cause trying to follow that gets me nowhere. Can anyone point me to a better/more recent tutorial, or a different solution to my t-junc compile failure?

Also, if this needs to be in a different forum, please let me know (or go ahead and move it). Thanks in advance.
 

Apom

L6: Sharp Member
Sep 14, 2008
366
65
Do you have large numbers of displacements in your map? It could be that too.
 

Laz

L420: High Member
Jul 5, 2008
461
35
Im guessing its to many(or detailed) displacements.
Unless you func_detail a staircase by having each step as a separate entity. Try and group some func_detail into one entity
 

joeholley

L1: Registered
Aug 26, 2008
11
0
Yeah then you make the func_detail's, select a whole lot of brushes at once and then hit ctrl+t

What you're referring to is when you have a displacement that you've marked as a func_detail by accident, right? I've had that happen a few times in the past and it has an explicit error message to that effect. That is not the case here. I really appreciate your attempt to help me out though.

Laz, Apom - Displacements don't seem to have any effect at all. Compiling the map with no displacements at all (by hiding them all via the auto visgroup) still produces this error. (FYI, hiding all the func_details in the map allows it to compile, as does cordoning off about 3/4 of the level, even the half with all the displacements).

Also, Laz, to address your other suggestion, I typically func_detail all the geometry in one room at the same time, I doubt I have many places where I'm even using single-brush func_details. It's pretty much always a combination of brushes that I make into one func_detail. Thanks a bunch for the suggestion, though.

If anyone has any more suggestions, please let me know! I'm dying to finish the map up before the end of the year.
 

Apom

L6: Sharp Member
Sep 14, 2008
366
65
It's likely that some details concentrate the problem and the majority of them is okay. I would suggest turning off the details one after the other (you can delete, compile and ctrl-Z... make a backup first).
 

joeholley

L1: Registered
Aug 26, 2008
11
0
It's likely that some details concentrate the problem and the majority of them is okay. I would suggest turning off the details one after the other (you can delete, compile and ctrl-Z... make a backup first).

Yeah, I can get the map to compile... by deleting the results of the last 3-4 art passes. Your suggestion would be excellent if I was just trying to get the map to compile. Unfortunately, I'm working on the public beta so it needs a fair amount of detail in the map.

I'm thinking that what I really need is an updated tutorial for converting prefabs to prop_static models that I was wondering about in the OP. Does anyone know where I can find one, or a good place to ask for help on that process?
 

Apom

L6: Sharp Member
Sep 14, 2008
366
65
Once you identify where the problem lies (i.e. isolate a small number of problematic func_details), chances are you can fix it.
 

joeholley

L1: Registered
Aug 26, 2008
11
0
Once you identify where the problem lies (i.e. isolate a small number of problematic func_details), chances are you can fix it.

That's worth a chance assuming there's something about some specific func_details causing the issue. I'll give it a try.
 

Altaco

L420: High Member
Jul 3, 2008
484
120
You don't need to delete anything!

First, go to that little-used visgroups box on the right toolbar. Click the "auto" tab. Uncheck func_details, and then try compiling. If you still get the error, it's a displacement. If you don't, it's a func_detail causing the problem.

What people are trying to say is, don't have each individual brush be a func_detail. If you have a staircase, make it all one single func detail by selecting all the steps and pressing ctrl+t, don't tie each one individually.

If that doesn't help at all, I can help you convert some of those into models.
 

Laz

L420: High Member
Jul 5, 2008
461
35
You could try cordoning half your level, compile,
If it errors, Its in the half you just compiled, if its not, its in the other half, take again half of the previous half, keep doing this until you can pinpoint the error.
 

Apom

L6: Sharp Member
Sep 14, 2008
366
65
First, go to that little-used visgroups box on the right toolbar. Click the "auto" tab. Uncheck func_details, and then try compiling. If you still get the error, it's a displacement. If you don't, it's a func_detail causing the problem.
joeholley said:
Laz, Apom - Displacements don't seem to have any effect at all. Compiling the map with no displacements at all (by hiding them all via the auto visgroup) still produces this error.

and

Altaco said:
What people are trying to say is, don't have each individual brush be a func_detail. If you have a staircase, make it all one single func detail by selecting all the steps and pressing ctrl+t, don't tie each one individually.
joeholley said:
Also, Laz, to address your other suggestion, I typically func_detail all the geometry in one room at the same time, I doubt I have many places where I'm even using single-brush func_details. It's pretty much always a combination of brushes that I make into one func_detail.
 

joeholley

L1: Registered
Aug 26, 2008
11
0
You don't need to delete anything!

First, go to that little-used visgroups box on the right toolbar. Click the "auto" tab. Uncheck func_details, and then try compiling. If you still get the error, it's a displacement. If you don't, it's a func_detail causing the problem.

What people are trying to say is, don't have each individual brush be a func_detail. If you have a staircase, make it all one single func detail by selecting all the steps and pressing ctrl+t, don't tie each one individually.

If that doesn't help at all, I can help you convert some of those into models.

Altaco, for what it's worth, I was always unchecking visigroups to test and typically make everything in a room that should be a func_detail into it at once, as mentioned in my post about halfway down. I really appreciate that you took the time to make sure I didn't miss those options though.

I would love ANY help you can give me converting prefabs to models. I mean, obviously it's really hard to want to spend your time doing basic grunt work (I'm sure when you know how to actually do it, that's all it is :blushing:) converting prefabs to prop_statics when it's for someone else's labor of love. If you would be willing to either do model compiles for me or even just walk me through the process a couple of times (or both ;)) I would be eternally grateful.

... And more than happy to give you a model compiler credit on the map, obviously!
 

joeholley

L1: Registered
Aug 26, 2008
11
0
Had the same problem with t-junctions yesterday, solved it by changing several of my complex func_detail to func_lod

This does seem to allow the map to compile, although I'm a bit concerned about performance issues. Either way, I'll see if I can get a full compile of the map and come back to let everyone know if it's running without hitches.
 

Ezekel

L11: Posh Member
Dec 16, 2008
818
245
Im guessing its to many(or detailed) displacements.
Unless you func_detail a staircase by having each step as a separate entity. Try and group some func_detail into one entity

i read somewhere that it doesn't matter whether you do them in a group or seperately as its to do with the number of faces/edges touching world geometry (which is the same either way)

still it's useful to do it all at once at least because it makes things easier to manage when editting the map.

also, i thought it was impossible to tie to entity a displacement without causing a crash - since it's not something that is allowed.

one thing i did with a couple of func details when i had this problem was to make them be one unit away from the wall/floor. but i think you have to be careful which func details you do that with cos with some of them it might have a visible effect whilst others it won't.

quick question, does func_LOD contribute to the tjunction limits? since it's very similar to a func detail but with an added LOD option to it.
i'd imagine not, but just wanted to be sure.
 

joeholley

L1: Registered
Aug 26, 2008
11
0
Read up quickly on func_lod and wanted to point this out.

http://developer.valvesoftware.com/wiki/Func_lod



-Teddy

Yeah, a very good point, and what I was trying to get to when I mentioned performance issues. However, since I've still not been able to find the answers to my model creation questions, I'll take what I can get if it gets the map into a working beta form. I can then continue to pursue the problem of creating models while the map is being played and I'm getting feedback.
 

joeholley

L1: Registered
Aug 26, 2008
11
0
I finally got a functional prefab->prop workflow via about 4 different programs! It only took me 6 months . :/

Now on to phase 2: does anyone know how to embed the props I'm making into my map? To be perfectly honest, if I can't find a way to do this then my hold concept may be harfed. No one's going to play a map where they download the map from the server and while running around see a bunch of huge 'ERROR' objects because the props weren't included...

If I can get this all done and the map out to the community, I'll definitely write something up so other people on this path can hopefully get past some of the roadblocks I hit.

Cheers.