Is there any in-game performance increase from caulking?


(PSIonic) #1

Hi all.

I’ve read a few tutorials that says to always use the caulk texture on any surface not viewable by the player…

My question is this… does it really increase performance when you play the map, or is it simply a compile optimisation thing? I understand that it would increase performance in-game if you caulk surfaces behind patches or anything else that the engine doesn’t “see”, but what about the surfaces between brushes that neither the engine nor the player should ever see anyway.

ie a situation such as a wall being made up of two horizonal section that look like a single brush in the top down view in the editor.

The reason I want to know this is because in older Quake engine games the compiler itself would convert the brushes of a make into a CSG (the opposite of adding to a void like you do in GTKRadiant) representation and in doing so it would discard any surfaces in situation like the one I mentioned. Has the compiler become lazy?

I’ve got a feeling that the caulk texture is the source of a lot of the light leaking issues people are having. Have a look in my other topic for that discussion: http://www.splashdamage.com/forums/viewtopic.php?t=4208


(damocles) #2

Surfaces that are never seen - ALWAY caulk them. it does make quite a lrge difference to framerates.

Surfaces that are pressed firmaly against each other (completely, not just partially covered) should be removed during compiling, so don’t have to be caulked. Be careful, if you caulk one but not the other, it’s possible that the uncaulked one will end up in the map after compile. The odd stray one won’t hurt much though.

The compiler is far from lazy, it is more powerful than ever before thanks tot he work of ydnar. It still (I think) removes any surfaces that exist outside of player space, but the problem is that in ET levels, it’s quite normal to cover the entire level with a giant skybox because the maps are so open and huge, this means that almost every surface will exist inside player space.

And caulking has absolutely nothing to do with light leaking.


(Wils) #3

Covering the level with a giant skybox is and always will be quite possibly the worst thing you can do as a level designer. Please don’t do it :slight_smile:

Any structural brushes with hidden faces will have those faces removed, but it still costs compile time to do so.

Any detail brushes you have (and ideally most of your map should be detail brushes with an ultra-simplified vis blocking caulk hull underneath) will NOT have their hidden faces removed, so you should always caulk anything you can’t see.

A good habit to get into which works for a lot of people is to just construct everything out of caulk first and texture it afterwards.


(damocles) #4

Normally covering the level with a skybox is bad practice, but when your level is one giant terrain brush with buildings scattered around it, what choice do you have?

A lot of ET maps are going to go this route with huge open terrains where trying to sky-wall off certain area would be extremely difficult without causing rendering artifacts.

If your level is largely interior or sectioned off peices (such as streets) then a large skybox is a bad idea.


(damocles) #5

Any detail brushes you have (and ideally most of your map should be detail brushes with an ultra-simplified vis blocking caulk hull underneath) will NOT have their hidden faces removed, so you should always caulk anything you can’t see.

I just ran some tests…

If you have a detail brush that has faces pressed against structural surfaces (even caulked structural surfaces) they DO get removed. They never used to, so I’m guessing ydnar has been working his magic again.

I haven’t tested whether or not detail against detail surfaces get removed yet, but I’m gonna go out on a limb and predict that they do.

It’s still good practice to caulk everything though, regardless of what the compiler can or cannot do. Caulk is your friend.


(playero) #6

If not a skybox then what are the altenatives!?!?!


(digibob) #7

Yeah, this was actually one of the first features of what was to become q3map2.

You should really caulk these surfaces anyway, as it lets you filter them in radiant so you can see wth is going on :slight_smile:


(blushing_bride) #8

I know nothing about skyboxes and terrians. However on my urban map TownSquare http://www.pcgamemods.com/2849/ it used to have one massive skybox covering the whole thing. I had framerates as low as 60 in many places (on a very powerful PC). So i got rid of the large sky box and built multiple skyboxes over the streets (in effect turning them all into tunnels) and the frame rate improvment was massive. Places that were 60-80fps are now 120-140. It took me about three days to turn the one massive skybox into the smaller ones but it was so worth the extra effort. Making a big skybox is a very easy but it’s worth the extra effort not to do this. I have no idea how this would work with massive open terrians but masssive open terrians always have bad FPS anyway. So i guess if your terrian is more along the lines of Oasis then it would be easier to spilt it into smaller sectioned off areas. How this would work with something like fueldump is a mystery to me. I would guess where you have big vis blocking parts this would also be where you seperate the sky. Just my guess.


(redfella) #9

I think that just about sums it up. I always caulk everything. Its not that hard to do and doesnt take that much time… so just do it. End of story. :stuck_out_tongue:


(hummer) #10


(Computertech) #11

Fueldump is a good example of a divided map. It looks natural, Using moutains and buildings. Same with some other SD maps. I guess the rule would be how many triangles are in each section. More details, the smaller it should be.


(duke'ku) #12

Blah, I always build out of caulk before texturing. :slight_smile:


(DarkMatrix) #13

Noob question coming up:

How do you texture brush faces indavidually??? In Unreal you just select the face, here you have to select the whole brush :???:


(digibob) #14

ctrl-shift click on the face you want.


(DarkMatrix) #15

Danke shon!