Editing Brush

Jump to: navigation, search

Warning: You are not logged in.

Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 6: Line 6:
 
A brush can be made to represent anything from solid matter (metal, dirt, wood, etc.) to liquids (lava, water, etc.) depending on the textures and materials applied to them.  
 
A brush can be made to represent anything from solid matter (metal, dirt, wood, etc.) to liquids (lava, water, etc.) depending on the textures and materials applied to them.  
  
Brush is constructive solid geometry (CSG) primitive and convex figure. It uses a form made of its sides and a volume which is anyting inside. Brushes are presented in Unreal Engine (1/2/3), Torgue engine, Cryengine 3. Hammer (native editor for Source engine games) is using it too. CSG is popular because a modeler can use a set of relatively simple objects to create very complicated geometry. User can revise their complex geometry by changing the position of objects or by changing brush attributes.  
+
Brush is constructive solid geometry (CSG). It uses a form made of its sides and a volume which is anyting inside. CSG brushes are presented in Unreal Engine (1/2/3), Torgue engine, Cryengine 3. Hammer (native editor for Source engine games) is using it too. CSG is popular because a modeler can use a set of relatively simple objects to create very complicated geometry. User can revise their complex geometry by changing the position of objects or by changing brush attributes.
  
One way to think about level making with brushes is like you are building your structures out of somewhat flexible lego blocks.
+
=== Shape ===
 
+
== Shape ==
+
  
 
Properly constructed brush follows this rules:
 
Properly constructed brush follows this rules:
Line 18: Line 16:
 
* If sliced by the plane of any of its sides, the whole brush will be on one side of the plane
 
* If sliced by the plane of any of its sides, the whole brush will be on one side of the plane
  
{{Important|Radiant have tools to edit brush shape (vertexes, sides and planes) that are not CSG-friendly. If you apply transformation that will lead to non-convex figure, resulting brush will be invalid. CSG operations ([[Radiant/CSG Substract|substract]], [[Radiant/CSG Make hollow|hollow]] and [[Radiant/Clipper|clipper]]) always make valid brush.}}
+
{{Important|If modifying brush shape, all these rules must be followed. Radiant have tools to move/transform brush vertexes, sides and planes. If you apply transformation that will lead to CSG rules breakage, resulting brush will become invalid. For most cases Radiant does not allow you to do that.}}
+
[[File:Brush rules.jpg|750px]]
+
  
== Texturing ==
+
[[File:Brush rules.jpg|600px]]
 +
 
 +
=== Texturing ===
  
 
Since brush internal structure doesn't have vertices, it is using special projection technique to get texture mapping:
 
Since brush internal structure doesn't have vertices, it is using special projection technique to get texture mapping:
Line 35: Line 33:
  
 
* Rotating texture is tricky as no rotation origin is specified, this leads to texture breakage when brush is rotated to small angles (90 degrees rotation works fine).
 
* Rotating texture is tricky as no rotation origin is specified, this leads to texture breakage when brush is rotated to small angles (90 degrees rotation works fine).
* Texturing may break if texture resolution is changed (there is a material trick to bypass that).
+
* Texturing may brake if texture resolution is changed (there is a material trick to bypass that).
  
 
Along with limitations, there is a number of benefits:
 
Along with limitations, there is a number of benefits:
Line 45: Line 43:
 
* Can modify brush in various ways with no texture breakage (make a wall longer for example).
 
* Can modify brush in various ways with no texture breakage (make a wall longer for example).
  
== Volume ==
+
=== Volume ===
  
 
==== Brush contents ====
 
==== Brush contents ====
Line 66: Line 64:
 
Detail brushes (Radiant feature) and [[BModel | bmodels]] are always 'transparent'.
 
Detail brushes (Radiant feature) and [[BModel | bmodels]] are always 'transparent'.
  
Also if a brush have sides marked detailed or transparent, it will be forced transparent.
+
Also if brush have sides which is marked detailed or transparent, it will be forced transparent.
  
== Brush vs Patch mesh vs Triangle model ==
+
=== Usage ===
  
Brushes are essential when making:
+
Brushes are essential thing to make geometry that requires a volume to function properly (water, triggers), level hull structure (the geometry that forms [[VIS]] portal tree) and grude procedural geometry which is used to connect rooms together. It can also be used to create semi-complex geometry on detail objects. For quite complex and small objects, [[patch mesh|patch meshes]] and triangle models are better and more easier to make.
* Geometry that requires a volume to function properly (water, triggers).
+
* Level hull structure (the geometry that forms [[VIS]] portal tree).
+
* Geometry used to connect rooms together.
+
  
Brushes are good when making:
+
Examples of usage:
* Simple detail objects used to cover corners and connect parts of level together.
+
* Semi-complex objects, which are derived version of some generic object (think house or other building) but with altered proportions/moved walls.
+
* Geometry that is more convenient to make with brushes (using it's features - CSG operators, projection texturing and ability to be edited in level editor).
+
  
For all other cases, [[patch mesh|patch meshes]] and triangle models are better and easier alternative to work with.
+
{| cellspacing=0 cellpadding=2 style="width:100%"
 
+
| width=5% align=right | Room floors
Some examples of good and bad usage of brushes:
+
 
+
{| cellspacing=0 cellpadding=2 border=1 style="width:100%;border-collapse:collapse"
+
| width=10% | Room floors
+
 
| width=10% | <font color=green>Good choice</font>
 
| width=10% | <font color=green>Good choice</font>
| width=80% | Most of room floors are part of world hull. It is useful to edit them inside radiant. For physics floors have priority because gravity always make object to fall, so high mathematical precision of brushes will help with making physics more stable.
+
| width=85% | Most of room floors are part of world hull. It is useful to edit them inside radiant. For physics floors have priority because gravity always make object to fall, so high mathematical precision of brushes will help with making physics more stable.
 
|-
 
|-
| Walls
+
| align=right | Walls:
 
| <font color=green>Good choice</font>
 
| <font color=green>Good choice</font>
| Same as for the floor. Walls are part of map hull and when working with map, you ofter reconfigure your walls.  
+
| Description is pretty same as for the floor. Walls are part of map hull and when working with map, you are ofter reconfiguring your walls.  
 
|-
 
|-
| Statue
+
| align=right | Statue:
 
| <font color=red>Not a good choice</font>
 
| <font color=red>Not a good choice</font>
| Since complex models are broken into many brushes, it is hard to control texturing on them. Also texture projection is only capable of making simple UV. So you statue will be either crude or take insane amount of time to build with brushes.
+
| Since complex models are broken into many brushes, it is hard to control texturing on them. Also texture projection is only capable of making simple UV. So you statue withg be either crude or will take insane abount of time to build with brushes.
 
|-
 
|-
| Chair
+
| align=right | Chair:
 
| <font color=red>Not a good choice</font>
 
| <font color=red>Not a good choice</font>
| Same as for statue. Chair is too complex for brushes. It is easier to make it with misc_gamemodel.
+
| Actually its pretty same as for statue. Chair is too complex for brushes, and also it's pretty stock at its form. So its easier to make it with misc_gamemodel.
|-
+
| Terrain
+
| <font color=orange>May be good choice</font>
+
| Small chunks of terrain are good to make with brushes, as they can be reconfigured in editor and don't require working with exporting/importing as for models. Brushes are also part of the .map file, so they don't generate any external files. Vertex alpha should be handled by colormod brushes. The big landscapes are not good to make with brushes, because big terrain takes 5000+ brushes and per-brush works is quite ineffective for it.
+
 
|-
 
|-
| House
+
| align=right | Terrain:
| <font color=orange>May be good choice</font>
+
| <font color=orange>may be good choice</font>
| Since brush have projection texturing, its easy to move house walls/alter its height without texture breakage, which may be easy way to make villages. But house is a complex object, and making it with brushes may get hard and ineffective, depending on house design. So it's up to designer whether use brushes or triangle models for buildings.
+
| Small chunks of terrain is good to make with brushes, as they can be reconfigured in editor and dont need a works with exporting/importing as for models. Brushes also part of the .map file, so it dont generates any external files. Vertex alpha should be handled by colormod brushes. The big landscapes is not good to make with brushes, because big terrain takes 5000+ brushes and per-brush works is quite uneffective for it.
 
|}
 
|}
  
 
== See also ==
 
== See also ==
* [[Radiant/Glossary|Radiant glossary]]
+
* [[Radiant Glossary]]
 
* [[BModel]]
 
* [[BModel]]
 
* [[BSP]]
 
* [[BSP]]
  
 
[[Category:Glossary]]
 
[[Category:Glossary]]
{{grammar checked|darth}}
+
{{grammar}}
 
__NOTOC__
 
__NOTOC__

Please note that all contributions to Blood Wiki are considered to be released under the Creative Commons Attribution Share Alike (see BloodWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

This page is a member of 2 hidden categories:

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox