Understanding shaders and other basic principles of ETQW map making


(Assassin4004) #1

Hey everyone,

I was looking for ETQW tutorials and information on which common textures should be used when designing a level and why. I already know that there are example world files but they don’t really explain to me why certain textures were used vs. others. Here is my understanding so far, please correct me if I am wrong or misunderstand something.

caulk:
Caulk is used to prevent areas from leaking. This is used when you use vis portals (only visportals?) to make sure your room is still sealed off. Is there any documentation about leaking or caulk?

clip:
There are many types of textures used for clipping such as “clip, clip_metal, clip_noflyer,clip_plus, clip_plusmovables”. These textures block movement based on if their materials were defined with “playerclip, flyerhiveclip, vehicleclip, moveableclip, explosionclip, or projectileclip”.

collision:
I’m not sure what collision brushes do but they have a shader called “collision”. I’m not sure how they are different from “clip” textures.

I see clip materials use:
-noimpact
-nonsolid
-playerclip
-flyerhiveclip
-vehicleclip
-noshadows
-collision

whereas collision materials use:
-noshadows
-collision
-vertexPositionOnly
-surfaceType “none”

Could someone explain to me the difference?

I also don’t understand the difference between the aas textures for bots. I’m trying to figure out bot stuff but there’s little information. I started digging through the bot_entity file and scripting to figure out how to implement bots properly.

I think understanding the properties in the material declaration will significantly help my understanding of these common textures and answer my question on when to use them. Does anyone know any site with this information, I googled a lot and am not finding anything that explains the basics of leaking and proper use of these materials.

Thanks in advance!


(Nail) #2

have you seen this:
http://wiki.splashdamage.com/index.php/Main_Page


(Assassin4004) #3

Yes, I have definitely seen all those tutorials but they still don’t answer my questions. I have even google I’d tech 3 engine and found more tutorials there but they still don’t answer my questions.


(Assassin4004) #4

Ok so I think I found something for DOOM 3 that explains some of my questions:

https://www.iddevnet.com/doom3/materials.php

There’s a section on this page called “Global Surface Parameters”. It says that when “noimpact” is added to a surface/material that it won’t make impact explosions or marks. This prevents bullet holes from showing up on the surface. It also says when “collision” parameter is added, it defines it as a collision surface. If a model has no collision surfaces, then all surfaces are considered as collision surfaces.

I’m still a bit confused. Maybe it’s because clip textures are considered both “nonsolid” and have “collision” set. Seems contradictory… Does anyone have detailed information on shader parameters?


(Assassin4004) #5

[QUOTE=Nail;570386]have you seen this:
http://wiki.splashdamage.com/index.php/Main_Page[/QUOTE]

I guess the link to the table I found is exactly like the table on the ETQW mod wiki page. Thanks Nail. I just wish there was more information on these surface parameters.


(.Chris.) #6

From memory the collision shaders are used only really used in models to make collision detection much simpler on more intricate models. Clips are used for preventing players and other things from going through places where you don’t want them to or to stop them catching on small objects when they run by them.


(Assassin4004) #7

Thanks Chris! Do you know what “nonsolid” and “solid” means when used for surface parameters in mtr declarations?

Also, have you done a lot with bots in your custom maps to know about which materials to use. I’ve put together that aasobstacle is a texture you should apply to an entity that will be enabled/disabled through scripting, while asssolid is typically used for static behaving entities.


(.Chris.) #8

I never bothered with bots as it was such a mine field. The map references might give you some clues though.


(Assassin4004) #9

Yeah, I have made a little progress with bots by using the map references but it is very confusing. Have you learned anything at all by chance about why you texture certain brushes with aassolid whereas other brushes don’t get this texture at all? Have you learned anything at all about creating areas?


(REA987) #10

Hey,

That’s by no means my specialty but have you checked following wiki?

https://modwiki.xnet.fi/Enemy_Territory:_Quake_Wars
https://modwiki.xnet.fi/

Regards.


(Assassin4004) #11

Ok so here’s what I’ve figured out so far with everyone’s help and by looking at example .world files. Please give me feedback, the more the better!!!

In order to build a custom building correctly you should do the following:

1.) Create 3 LOD groups: building_01_exterior, building_01_interior, building_01_decals.

2.) Layout the walls, foor, and ceiling of the building with caulk brushes. These brushes should never be added to a LOD or Detail group since they seal an indoor area. These brushes will help prevent your room from leaking in case you put some structural brushes accidentally into an LOD or Detail group.

3.) Build the structural part of the building with brushes and use “caulk” for texturing faces that are not visible to the player. Feel free to put these brushes in a “Level 1” LOD group named “exterior” ONLY if you used caulk brushes in Step 2 to seal the indoor area this essentially makes them detail brushes.

4.) Build the detail part of the building with brushes. Add detail brushes to various levels of the LOD groups, “building_01_interior” and “building_01_exterior”, depending on if the detail was adding detail to the interior or exterior of the building, respectively.

5.) Outline brushes you don’t want to get stuck on in game with “clip” brushes. These clip brushes will typically go around the detail brushes that were added in Step 4. The clip brushes do not get added to any LOD group as you can’t see the clip brushes in game so there’s no “level of detail”.

Example: Door frames (detail brushes) typically will have a clip brush over them that has angled edges so players don’t get stuck on the edge of the door frames. Another example where clip brushes is used is for stairs. This can make stairs feel more like a ramp rather than individual steps.

6.) Add detail models to the building such as chimney smoke stacks and use a “collision” brush/model instead of a “clip” brush. You can add these detail models to various levels of the LOD groups, “building_01_interior” or “building_01_exterior” depending on if the model was added to the inside or outside of the building again.

7.) Add decal patches to the building. One side of the decal patch should have “no draw” the other should have the decal texture (like smudges or dirt streaks) that you want to see. Add the decals to various levels of the LOD group "building_01_decals. I would put exterior decals in Level 1 of LOD group and create a new LOD level for each room’s decals to keep things organized.

Can someone look at this and give me feedback. Also when is it best to use Detail groups vs. LOD groups or do brushes/patches get added to both LOD and Detail groups?


(Assassin4004) #12

Also if I make each building in its own .world file and load it as a reference in my maps main .world file are there benefits or disadvantages? How does that hurt performance/optimization.


(light_sh4v0r) #13

I’m no expert but that sounds about right. As far as I know loading multiple .world files into your main file is fine.

One more thing to pay attention to is overlapping brush faces. The compiler will get rid of them but this takes some time, so if you consistently create overlapping faces your compile time will start to get ugly. It’s slow because the compiler needs to split the 2 faces at the seams so they can be removed. You can also do this manually, which makes compilation a lot quicker.


(.Chris.) #14

Unless you have an insane amount of details inside or very large open spaces there is not much benefit to having LOD groups indoors, using vis portals between rooms will prevent stuff being drawing in other indoor areas. I would maybe still use LOD groups the first room that connects the building to the outside if you can see a lot of details from the outside world.

Regarding the LOD levels. I used to have my first group with building trims, think window ledges, ladders, and other small intricate details as well as decals (no reason to segregate them), this group would be setup to disappear completely with nothing replacing it. The second group would contain larger details and maybe the whole facade this would disappear too though at a greater distance but would be replaced with the third group that is setup to only appear after a certain distance and would essentially be a low poly version of the overall building using a single texture/texturesheet, this last group could also have all collision turned off as well as it would only be seen from the other side of the map. You need to play around with the distances and fade in/out parameters to get smooth transitions between the LOD groups. I don’t have the SDK installed to check what I used to use.

Be sure to use detail groups too in order to prevent poly count going through the roof.


(Assassin4004) #15

Thanks for all the help light_sh4v0r and Chris!!!

Chris, LOD groups and detail groups BOTH prevent geometry from getting cut, correct? If this is true, shouldn’t detail groups only be used on geometry inside of a building then?

Thanks again for all the help!


(.Chris.) #16

Yeah but if the geometry is in the same group it will cut itself, best to treat the two issues separately. The map references use descriptive detail group names but I just create about 6 groups names d1, d2, d3… that’s normally more than enough groups to split the geometry into. You can turn off the visibility of individual groups to keep track of what is and isn’t in an LOD or detail group. Also being mindful of how cuts are created when building your geometry will reduce the need for multiple detail groups too, like using mitred corners and what not.