compile times

mstrum

Newbie
Joined
Aug 16, 2004
Messages
54
Reaction score
0
Wow, all I have to say is my compile time (without vvis=fast) is HUGE. It seems like it would be many hours. My bsp is ~5MB. How big is 'too' big for DM maps (in MB)? It is too slow to wait for so I have to set vvis to fast. Anyone have any reasons? I have an Athlon 1700+, so that seems to be a possible reason. I can post a pic if someone wants it. Basically, the entrance to the building is a huge glass room, which could have something to do with it. I don't even have light_environment yet.

Also, do I need to make glass windows (unbreakable) entities? It seems they don't let light from light_environment shine in . . . Thx!
 
AgentXen said:
Make sure you use func_detail anywere possible.
I'd say its better to only add that where its needed, those area's that clog things up and are annoyingly complex to work with cleanly, not just anywhere.
 
what is different between a brush and func_detail?
 
sorry for the double post, but it won't let me edit my previous post.

Attached is a pic of the place where I think it is making it slow. it is the lobby of the library.

Any hints on where to put hints? How about the odd shapped places for glass on the top pyramid, any suggestions?
 
I have a lot of fences and railings in mine which are prop-static, and the map takes ages to load with them, but not without them...whats a good alternative? (as i also noticed the fences don't react when shot)...

Also with previous version of worldcraft you had to use portals (normal ones, not areaportals) to section off areas and put a cell in each area, which decreased the build time and the lag in game...whats the HL2 alternative for this?
 
MrMan said:
I have a lot of fences and railings in mine which are prop-static, and the map takes ages to load with them, but not without them...whats a good alternative? (as i also noticed the fences don't react when shot)...
prop_static wont react period, its static, if you want them to react you need them to be prop_dynamic or something.. But will only allow you to do that if the model is setup to be used in that way.

Don't forget the hint brushes and other optimization techniques to speed up things. A large map without those will be wasting a lot and pretty nasty, from a bsp point of view.
 
Thanks, i edited my post above just as you posted, any comments on the last part of it?
 
Ok, just spent ages sectioning my map using HINT and SKIP brushes...load time isnt improved. Im pretty sure its all the fences and railings that are causing this, so i want to convert them to func_detail rather than prop_static, but WC won't let me do this...how can i get around this?
 
MrMan said:
Ok, just spent ages sectioning my map using HINT and SKIP brushes...load time isnt improved. Im pretty sure its all the fences and railings that are causing this, so i want to convert them to func_detail rather than prop_static, but WC won't let me do this...how can i get around this?
make them in brushes I guess, but then that defeats the point of props.. and you must have a LOT of these fences for it to be clogging things up.. Also I don't really see how they can be adding to the compile time, unless you've got them casting shadows, turn shadows off for them and try then
 
Ok its not them, i disabled shadows and the compile time stayed the same, so then i tried to delete all the prop-statics, and yet again it stayed the same, so its something else to do with my level...i've added you to MSN dark elf if thats ok, so maybe if you get time you could have a look at my map? I know its a total n00b thing to say lol but i am pretty stuck here. Any help would be much appreciated :\

EDIT oooo nevermind i just tried closing in the skybox and it works now. I had the skybox as a large box surrounding the level, with space underneath the level and all around it, i closed it in to the level edges and it works now :) Thanks for the help.
 
Elf id still like your help if possible...i can only run the map with VIS disabled unless i want a 2 hour wait, and its not even a big map at all, its only part done...i don't get it :(
 
Last time I compiled my map it took more than 12 hours.
 
never make the skybox surround the entire map, it ends up calculating absolutely everything, no wonder it was crawling.

Any surface you can't see while playing, give it a NODRAW material

Use hint brushes

Compile that sample hl2dm map and tell me how long its taken to do that.
 
Well, I do everything optimally except hint brushes, because I dont' fully understand them and I'm not sure exactly where to put them to actually improve vvis times.

I've got area portals at appropriate spots, of course.
 
Tynan said:
Well, I do everything optimally except hint brushes, because I dont' fully understand them and I'm not sure exactly where to put them to actually improve vvis times.

I've got area portals at appropriate spots, of course.
Hint brushes...

Hints brushes are non-solid brushes that manually create leaf divisions. Since the entire contents of a leaf are drawn when any part of it is visible, hint brushes can be used to give the compile tools “hints” about how the areas should be split up into leaves.

A hint brush is a single brush with the material tools\toolshint on one or more of its faces. The other faces should have tools\toolskip applied to them. The brush side(s) with toolshint will be used as a cutting plane for the hint brush. A leaf boundary will be created along that plane when the map is compiled. Multiple hint brushes can be used in a single map, and can even intersect.

Proper usage of hint brushes on large, open levels can dramatically reduce the time it takes for VVIS to compile the level. Large numbers of leaves with lots of detail in them take a long time for the tools to compile. Use hint brushes to divide up the large sections of the level that have no detail from the areas that have lots of detail. A common example is an outdoor map with a canyon that opens to the sky. Placing a horizontal hint brush across the top of the canyon will create a large empty leaf in the sky, and separate it from the leaf with all of the detail (the canyon).

See maps\sdk_hints.vmf for examples of hint brush usage.

---

also you might want to take a look at

Detail brushes

Detail brushes are a class of brushes that are grouped to avoid unwanted face splits when small, detailed brush objects meet large surfaces. Detail brush geometry is made by creating a func_detail entity out of a set of brushes. The brushes that are included in the func_detail will not clip (or split) non-detail brushes. A common example is a cylinder brush (such as a pillar) touching a floor in a room. Normally the cylinder would split the floor face into many smaller faces where the two brushes meet. By making the cylinder detail geometry, no such splitting will occur. Any rotated piece of brush geometry is also a good candidate, and will cause fewer vbsp splits if it is made into func_detail.

Detail brushes do not block visibility and cannot be used to seal the world or areaportals. Since they do not block visibility, detail brushes have a side benefit of simplifying the visibility set. Proper use of detail brushes can greatly decrease the time it takes for vvis to compile the level.

Brushes that are func_detail are an entity in the Hammer editor, but the entity information is discarded after the map is processed in VBSP. This occurs to reduce the memory requirements of the geometry. The entity information is no longer needed once vbsp has used it for reducing splits. In the engine, surfaces that were created with detail geometry are identical to all other solid brush geometry in the level.

Objects that are small, complex, and/or do not seal areas are good candidates for detail geometry. Examples include pillars, gates, small rocks, fences, debris, piers, etc. A good way to tell if you need to switch non-detail geometry to detail geometry is to use glview. In places where you see a high density of leaves in glview, you'll want to switch some of the geometry in those areas to func_detail.

See func_detail in the entity documentation for more information.

See maps\sdk_func_detail.vmf for an example of how detail geometry can be used to reduce face splits.
 
i had the same problem.. had nearly 50mins compile time for a very small map.
after converting some brushes to func_detail it dropped to about 7mins... wow!
 
This is sounding more and more like a case of people having brushes intersecting each other, which is a bad thing for brushes to do (unless there func_detail but then you can't seal a map with those neither)
 
Ok, i closed in the skybox on my map, applied NODRAW to the outside sides of it and to the ground underneath the map...so now my map is confined to a cube covered in NODRAW textures....i have portalled the inside using HINT and SKIP brushes, which go all the way to the edges, with the very outer ones intersecting the skybox. I then tried to build it doing the following:

* With portals
* Without portals
* Without prop_statics
* With fast VIS on
* Closing in the top of the skybox to right above the highest buildings

Still no luck on the old compile times...the process window reports the following:

1165 portalclusters
4465 numportals

is this bad? I have no leaks, a copy of the process window is below. It has a few errors but i dont see why they should be affecting the build time:

----------

** Executing...
** Command: Change Directory
** Parameters: "c:\program files\valve\steam\steamapps\email\sourcesdk"


** Executing...
** Command: Copy File
** Parameters: "C:\Program Files\Valve\Steam\SteamApps\email\sourcesdk\sdkcontent\maps\isle2.vmf" "c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.vmf"


** Executing...
** Command: "c:\program files\valve\steam\steamapps\email\sourcesdk\bin\vbsp.exe"
** Parameters: -game "C:\Program_Files\Valve\Steam\SteamApps\email\sourcesdk" "c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2"

Valve Software - vbsp.exe (Nov 22 2004)
1 threads
materialPath: C:\Program_Files\Valve\Steam\SteamApps\email\sourcesdk\materials
Loading c:\program files\valve\steam\steamapps\pemail\sourcesdk\sdkcontent\maps\isle2.vmf
fixing up env_cubemap materials on brush sides...
ProcessBlock_Thread: 0...1...2...3...4...5...6.Brush 84832: WARNING, microbrush
Brush 85240: WARNING, microbrush
Brush 86923: WARNING, microbrush
Brush 95327: WARNING, microbrush
Brush 95378: WARNING, microbrush
Brush 95386: WARNING, microbrush
..7...8...9...10 (1)
ProcessBlock_Thread: 0...1...2...3...4...5...6.Brush 84832: WARNING, microbrush
Brush 85240: WARNING, microbrush
Brush 86923: WARNING, microbrush
Brush 95327: WARNING, microbrush
Brush 95378: WARNING, microbrush
Brush 95386: WARNING, microbrush
..7...8...9...10 (0)
Processing areas...done (0)
Building Faces...done (1)
FixTjuncs...
PruneNodes...
WriteBSP...
done (0)
writing c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.prt...done (0)
Creating default cubemaps for env_cubemap using skybox sky_day03_06...
Run buildcubemaps in the engine to get the correct cube maps.
Finding displacement neighbors...
Finding lightmap sample positions...
Displacement Alpha : 0...1...2...3...4...5...6...7...8...9...10
Building Physics collision data...
done (0) (188552 bytes)
Placing detail props : 0Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.1...2..Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.3...4...5...6.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
..7.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.8...9..Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
.Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
Material NATURE/BLENDSANDSAND008A uses unknown detail object type coastline_grass01!
10
Writing c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.bsp
5 seconds elapsed
Memory leak: mempool blocks left in memory: 49
Memory leak: mempool blocks left in memory: 1

** Executing...
** Command: "c:\program files\valve\steam\steamapps\email\sourcesdk\bin\vvis.exe"
** Parameters: -game "C:\Program_Files\Valve\Steam\SteamApps\email\sourcesdk" -fast "c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2"

Valve Software - vvis.exe (Nov 22 2004)
fastvis = true
1 threads
reading c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.bsp
reading c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.prt
1165 portalclusters
4465 numportals
BasePortalVis: 0...1...2...3...4...5...6...7...[i stopped it here]
** Executing...
** Command: "c:\program files\valve\steam\steamapps\email\sourcesdk\bin\vrad.exe"
** Parameters: -game "C:\Program_Files\Valve\Steam\SteamApps\email\sourcesdk" "c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2"

Valve Software - vrad.exe (Dec 1 2004)
----- Radiosity Simulator ----
1 threads
[Reading texlights from 'lights.rad']
[45 texlights parsed from 'lights.rad']

Loading c:\program files\valve\steam\steamapps\email\sourcesdk\sdkcontent\maps\isle2.bsp
No vis information, direct lighting only.
3455 faces
2 degenerate faces
211819 square feet [30502060.00 square inches]
0 displacements
0 square feet [0.00 square inches]
34 direct lights
BuildFacelights: 0.
 
ProcessBlock_Thread: 0...1...2...3...4...5...6.Brus h 84832: WARNING, microbrush
Brush 85240: WARNING, microbrush
Brush 86923: WARNING, microbrush
Brush 95327: WARNING, microbrush
Brush 95378: WARNING, microbrush
Brush 95386: WARNING, microbrush
..7...8...9...10 (1)
ProcessBlock_Thread: 0...1...2...3...4...5...6.Brus h 84832: WARNING, microbrush
Brush 85240: WARNING, microbrush
Brush 86923: WARNING, microbrush
Brush 95327: WARNING, microbrush
Brush 95378: WARNING, microbrush
Brush 95386: WARNING, microbrush


delete those brushes and try again (don't make em func_detail, just delete them and save the map under another name and compile)

If its not that then your doing something else wrong (doesn't sound like your using the hint brushes properly too) and I'd personally just scrap it and start again
 
wait a minute.... isle2.vmf

If your making a large island type map the size of the grid and trying to light it then no wonder its taken forever.. there's certain ways of doing something on that scale, the quick n dirty method not being one of them, you will come up against problems in those cases.
 
Lol no thats just a working name, its not that big at all really...ill try deleting those brushes and maybe copying the geometry over to a clean map and re-doing portals etc, btw does the skybox count as a portal? i mean does the level have to be split into 'hint and skip' brushes in cube form, or could you just have, say, a wall reaching up to the skybox, and the skybox would act as another portal?
 
MrMan said:
Lol no thats just a working name, its not that big at all really...ill try deleting those brushes and maybe copying the geometry over to a clean map and re-doing portals etc, btw does the skybox count as a portal? i mean does the level have to be split into 'hint and skip' brushes in cube form, or could you just have, say, a wall reaching up to the skybox, and the skybox would act as another portal?
portals need to be sealed otherwise they wont work and you'll get told you have leaks.

Hard to say without seeing your map (don't send me it I wont have time to look at more than just screenies) though you could upload it here for others to take a gander at and I'm sure someone will know straight away whats up with it)
 
Hmm nah ill keep lookin at it, its building fast enough on FAST VIS now, is there any disadvantage to only having BASE PORTAL VIS built and not PORTAL FLOW?
 
Back
Top