PDA

View Full Version : Mapping Theory: NODRAW vs CAULK


RichDiesal
05-12-2002, 11:54 PM
What exactly is the difference between the nodraw and caulk textures? Neither is rendered, so is there any real difference to the compiler?

(Discounting nodraw_solid - just the difference between caulk and nodraw itself)

RichDiesal
05-13-2002, 04:49 AM
:racer:

B0rG
05-13-2002, 05:05 AM
I've used nodraw in places where I could have gotten away with caulk and visa versa, so Im not sure if there is much of a diff. I tend to use caulk in any situation where I don't need a texture drawn (hidden from any players view) and I use no-draw specifically where I don't want a texture in areas that players can get to.

Atolm
05-13-2002, 04:44 PM
Caulk is solid and IS thus blocking VIS whereas Nodraw is not solid and not blocking VIS. Caulk is also casting shadows.
When in doubt just check the shader definition.

Cmdr. Antilles
05-13-2002, 04:47 PM
^^ He's right ^^

The big difference besides the solid factor is that it blocks VIS.
That, and it's pink. ;)

RichDiesal
05-14-2002, 12:01 AM
Well then, in what situation would you ever want to use CAULK? Couldn't you just put NODRAW_SOLID on the outside walls for the same effect?

volrathxp
05-14-2002, 01:51 AM
you get faster framerates with caulk... just what i've heard myself... with nodraw it just doesn't render it yes but it's not blocking vis, with caulk it's blocking vis so the framerates of the map are better. i saw a tutorial somewhere that explained it all, but the link has slipped my mind here. i did find this in the Radiant Manual.


Caulk
Location: (common/caulk)
Color: Opaque Pink
Game Function: Caulk, the miracle texture. It blocks vis. It seals the world off from the void. It doesn't draw (so it doesn't add to triangle counts). It keeps curves from competing with textures behind them. It looks like hell if you see it in your world. From the View menu (View > Show > Caulk), you can toggle on and off the display of caulk brush sides.


Design Tips: When you build a brush entity (a.k.a. b_model), mark all the brush sides that you will never see with caulk. Otherwise, the game draws every one of them. Even if you're only making a one-piece door, mark all the non-viewed sides with caulk. The same holds true for detail brushes. If you can't (or won't ever) see a brush face on a brush that's been marked as detail, paint it with caulk. Next, whenever you build a curve, try to build the brush geometry immediately behind it out of caulk. Finally, look around your map for brush faces that you suspect are being drawn, but are never seen: door pockets, bars, underneath bridges or very low railings and so on. It may sound like work, but attention to detail like this buys you both the appearance of greater geometric detail in the map AND faster game running speed.
More Design Tips: Finally, and this should be used with great care, a caulk brush can be used to create an invisible support for entities. If you place a very thin caulk brush floating above a surface that would otherwise not support an entity (example: a grate made of clip brush), the brush will not draw in the world, but will support the entity. The reason for this is that SUSPENDED entities are not "seen" by bots unless they can be reached by a jump pad.

Cmdr. Antilles
05-14-2002, 05:18 AM
Originally posted by RichDiesal
Well then, in what situation would you ever want to use CAULK? Couldn't you just put NODRAW_SOLID on the outside walls for the same effect?


AHHH!!!! No! Don't ever do that!

Use CAULK. Constantly.

I actually build my whole map w/ caulk, then go back and texture it later.

The caulk helps fps only in that if you have a wall that uses nodraw_solid, VIS will not be blocked, where as Caulk will block it, and help FPS.

Also, it's best to caulk all unseen surfaces. It will speed up the VIS proccess, IIRC. Basically, it's good practice. And why do you think Raven made an autocaulk command for JK2R? ;)

UniKorn
05-14-2002, 01:05 PM
This questions seems to me like :
why don't we use a shotgun when we play tennis. If we just kill the opponent, there is no need for a racket. ;) j/k

They both are designed for a reason. Therefor use them for the things they exist for :)

Cmdr. Antilles
05-14-2002, 02:18 PM
Here! Here!

Even though he really didn't clarify anything, I'm in full agreement. :D

volrathxp
05-14-2002, 02:53 PM
me too:D

DarthCobra
05-14-2002, 07:20 PM
Originally posted by Cmdr. Antilles
And why do you think Raven made an autocaulk command for JK2R? ;)

autocaulk?? plz go on :)

Markana
05-15-2002, 02:07 AM
With a brush selected just hit shift + A and it will auto-caulk the brush for you.

OK here it comes....what is VIS?

RichDiesal
05-15-2002, 05:07 AM
Eh, I won't tackle that one.

But then how about this... in what situation would you WANT nodraw_solid? :D

I can see no place where you wouldn't want to use cushion or clip or caulk instead...

UniKorn
05-15-2002, 01:43 PM
I'll tackle both of them :

Vis is a stage of the compile process. It splits your maps in nodes. When the nodes are done, it defines which node can see another node, and created a portal between them.

Why not use caulk instead of a nodraw_solid?

caulk :
textures/system/caulk
{
surfaceparm nomarks
surfaceparm nodraw
q3map_nolightmap
}
nodraw_solid :

textures/system/nodraw_solid
{
qer_editorimage textures/system/nodraw.tga
surfaceparm nomarks
surfaceparm nodraw
surfaceparm nonopaque
surfaceparm trans
q3map_nolightmap
}

Trans says you can see through it :)

RichDiesal
05-15-2002, 05:07 PM
Wait, so if there's an exposed Caulk texture, you can actually see it in-game? I didn't know that... :)

I suppose they used nodraw_solid for all the places those snipers sat in the Bespin levels then... aha kemosabi, I see the light.

JeGGoR
05-15-2002, 05:37 PM
Well... in fact you won't see the pink caulk texture in game :) but instead a buggy display... like a leak if you already saw one ;)

Ko'or Oragahn
05-15-2002, 06:47 PM
Trans says you can see through it

It almost says that you can pass through.

Most of the common of the wall, floor and dorr textures have the same role as caulk except that caulk is the only one to not be drawn.

Btw always put caul behind curves to seal the map form the void.

It's not a problem if the caulk textures is merged with the patch, cap, bevel or any other curve since caulk won't be drawn, so you won't have Z-fighting in your map between the texture you put on your patch/curve and the caulked surface that will in fact produce the Hall Of Mirror effect if let seeable to players.

Atolm
05-15-2002, 08:46 PM
As far as I know "trans" in a shader definition just means that it will be skipped during the VIS process no matter if it's see-through or opaque.

RichDiesal
05-15-2002, 09:39 PM
Well then, really, where would you use nodraw_solid where you wouldn't use caulk?

For an example, go to bespin_streets and turn on noclip. Zoom over to where the second snipers were sitting shooting you from across that black void into the window.

As you'll notice, they are standing on a nonexistant texture... it's blank, and yet it is solid.

Couldn't you use caulk here? And if you can, why would you ever use nodraw_solid?

Xcom
05-16-2002, 12:15 AM
Originally posted by RichDiesal
Well then, really, where would you use nodraw_solid where you wouldn't use caulk?

For example Nodraw_solid is used when you create windows made of glass. If you have a window which consists of multilpe brushes, the sides which touch each other should have nodraw_solid texture so the glass looks seemless.

Nodraw (non-solid) is used in the same way but for example for the water brushes.
Something else I wanted to add. About caulk. Caulk is not visible in the game. Nor does it produce the Hall of Mirrors by itself. If you put a caulked brush in the middle of the room you will only see its shadow. However, if you caulk a wall which touches the void, only then you'll see the HOM because you in fact see the void thru trasparent caulk.

Also there is no real benefit in caulking outside areas of your maps because all structural surfaceses which are completely "hidden" by other structural brushes or completely touch the void, are automtically disregarded by the compiler, textured or not. You should however use caulk:
- behind patch meshes (curves) as was said above.
- on hidden sides of detail brushes which touch other detail brushes cuz those are being processed even when hidden. (hope that makes sense :) )

volrathxp
05-16-2002, 01:06 AM
um yeah but the engine still draws those outside surfaces regardless. so caulking those is a good idea as well.

volrath

RichDiesal
05-16-2002, 07:46 AM
Xcom: Well yes... but I put caulk in between glass brushes instead of nodraw_solid and that seemed to work fine...

Volrath: That's what I thought... as I understand it, it just helps out framerates to caulk outside textures while it doesn't really affect compiling?

-----

I suppose my real question is, in what situation is it absolutely best to use nodraw_solid/nodraw instead of caulk and why? :)

I've yet to find any reason to use it at all.

volrathxp
05-16-2002, 10:59 AM
honestly, i've yet to find a reason to use nodraw solid but i've used caulk extensively. so i dunno man. lol

volrath

volrathxp
05-16-2002, 11:03 AM
found this in the radiant manual.


Nodrawnonsolid
Location: (textures/common/trigger)
Color: Opaque light yellow
Game Function: This is the same as nodraw


so in essence, the nodrawsolid texture is the same ****in thing as nodraw. now the real question should be, why is it there then?

volrath

UniKorn
05-16-2002, 12:07 PM
When you create a grate, and you don't want people to be able to go through => nodraw_solid. If you create a leave thing like in duel_wls3 you use nodraw.

RichDiesal
05-16-2002, 06:44 PM
But couldn't you just put caulk behind the grate anyway? Wouldn't it do the same thing?

volrathxp
05-16-2002, 08:09 PM
Originally posted by UniKorn
When you create a grate, and you don't want people to be able to go through => nodraw_solid. If you create a leave thing like in duel_wls3 you use nodraw.

there's a good point

ioshee
03-13-2003, 02:10 PM
I have a caulk theory question. I searched for caulk and theory and found this thread, so I hope itís ok that Iím posting here even though Iím not talking about nodraw.

DISCLAIMER: The following scenario is just for illustration, so donít ask why I would want a blank room with one square block in the center hehe.

SCENARIO: I have a cube shaped room, 960x960x960. In the center is a cube detail brush that is 128x128x128. The detail brush is textured on all sides and caulked on the bottom.

QUESTION: Would it be better to split the floor up into nine pieces (or five) and caulk the piece that is directly under the detail brush, OR just let the whole surface of the floor be textured? Iíve heard over and over to caulk EVERYTHING you are not going to see in-game, however wouldnít splitting the floor up cause the engine to treat the pieces as more triangles?

Please share your thoughts and/or theories (or questions if I didnít make this understandable.)

Thanks:)

Atolm
03-13-2003, 09:45 PM
In your case I would definitely refrain from splitting up the floor.
The ammont of extra tris you are creating will never outweigh any possible (and small) "overdraw" gain.

Other cases may be different, though. :p

ioshee
03-14-2003, 10:44 AM
Thank you. That helps a lot.