Brush

From Blood Wiki
(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
 
[[File:Radiant brush.jpg|320px|right|thumb|Brush of the crypt entrance in NetRadiant]]
 
[[File:Radiant brush.jpg|320px|right|thumb|Brush of the crypt entrance in NetRadiant]]
  
 +
= Introduction =
  
 
Brush is a simpliest geometry unit in a level. Other geometry units are [[misc_model]] and [[patch | patches]].
 
Brush is a simpliest geometry unit in a level. Other geometry units are [[misc_model]] and [[patch | patches]].
Line 9: Line 10:
  
 
* Minimum 3 sides
 
* Minimum 3 sides
* Each side is polyhedron (maximum 16-24 corners)
+
* Each side is plane forming polyhedron (maximum 16-24 corners)
* If slice brush by the plane of any of it's sides, all brush will be on one side of the plane
+
* If slice brush by the plane of any of it's sides, whole brush will be on one side of the plane
  
 
Since brushes define volume, they are used for water, lava and slime.
 
Since brushes define volume, they are used for water, lava and slime.
 +
 +
= Texture Projection =
 +
 +
Since brush internal structure dont have vertexes, it doesnt have [[texture coordinates]], it is using texture projection which follows this rules:
 +
 +
# Texture get projected from axis planes (XY, XZ, YZ) to a sides of the brush, optimal projection plane is selected by brush side orientation.
 +
# Texture is rotated by plane's ''rotate'' parameter
 +
# Texture position is scaled by plane's ''stretch'' (x and y)
 +
# Texture position is shifted by plane's ''offset'' (x and y)
 +
# Using texture dimensions, positions is converted to texture coordinates
 +
 +
This leads to a number of limitations applied for brushes:
 +
 +
* 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 work fine)
 +
* There are number of texture projection commands to make life easier on brush texturing
 +
* Texturing may broke if texture resolution is changed (there is material trick to bypass that)
 +
 +
With limitations, there is a number of benefits:
 +
 +
* No texture coords = no UWV unwrap work
 +
* A little easier to control texture detail
 +
* No texture breakage when model is sliced
 +
* Can scale model with keeping original textures detail
 +
* Can modify brush in various ways with no texture breakage (make wall longer for example)
 +
 +
= Working with Brushes =
 +
Net radiant allows several ways to work with brushes:
 +
* Move/Rotate/Extend (default tool)
 +
* Slice (2d and 3d plane)
 +
* Drag components (only of resulting brush is valid)
 +
** Vertexes
 +
** Edges
 +
** Planes
 +
* Creating new brush primitives
 +
** Cube (Default)
 +
** Prism
 +
** Cone
 +
** Sphere
 +
** Rock (random sliced cube)
 +
* CSG operations
 +
** Make hollow (makes brush hollow inside with wall thickness = grid point)
 +
** Substract ("cut out" or "subtract" one brush with another)
 +
** Merge (merges multiple brushes into one brush)
 +
* Scale
 +
* Flipping
 +
* Arbitrary rotation
  
 
[[Category:Glossary]]
 
[[Category:Glossary]]

Revision as of 21:41, 16 July 2012

Template:Article unfinished

Brush of the crypt entrance in NetRadiant

Introduction

Brush is a simpliest geometry unit in a level. Other geometry units are misc_model and patches.

Brush is consecutive solid geometry. It defines a form made of it's sides and a volume which is anyting inside. Brush is using this rules:

  • Minimum 3 sides
  • Each side is plane forming polyhedron (maximum 16-24 corners)
  • If slice brush by the plane of any of it's sides, whole brush will be on one side of the plane

Since brushes define volume, they are used for water, lava and slime.

Texture Projection

Since brush internal structure dont have vertexes, it doesnt have texture coordinates, it is using texture projection which follows this rules:

  1. Texture get projected from axis planes (XY, XZ, YZ) to a sides of the brush, optimal projection plane is selected by brush side orientation.
  2. Texture is rotated by plane's rotate parameter
  3. Texture position is scaled by plane's stretch (x and y)
  4. Texture position is shifted by plane's offset (x and y)
  5. Using texture dimensions, positions is converted to texture coordinates

This leads to a number of limitations applied for brushes:

  • 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 work fine)
  • There are number of texture projection commands to make life easier on brush texturing
  • Texturing may broke if texture resolution is changed (there is material trick to bypass that)

With limitations, there is a number of benefits:

  • No texture coords = no UWV unwrap work
  • A little easier to control texture detail
  • No texture breakage when model is sliced
  • Can scale model with keeping original textures detail
  • Can modify brush in various ways with no texture breakage (make wall longer for example)

Working with Brushes

Net radiant allows several ways to work with brushes:

  • Move/Rotate/Extend (default tool)
  • Slice (2d and 3d plane)
  • Drag components (only of resulting brush is valid)
    • Vertexes
    • Edges
    • Planes
  • Creating new brush primitives
    • Cube (Default)
    • Prism
    • Cone
    • Sphere
    • Rock (random sliced cube)
  • CSG operations
    • Make hollow (makes brush hollow inside with wall thickness = grid point)
    • Substract ("cut out" or "subtract" one brush with another)
    • Merge (merges multiple brushes into one brush)
  • Scale
  • Flipping
  • Arbitrary rotation
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox