| Home Page | Recent Changes | Preferences

Brush Transformation

Brush transformations changes the position, scale or skew of a brush.

Brush Transformation Modes

  • Brush Scaling is used to increase or decrease size
  • You can brush rotate around all 3 axis
  • Mirroring, also known as flipping or reflecting, is done through the Brush Context Menu
  • Brush sheering, also known as skewing, is also done through the Brush Context Menu
  • Moving a brush is technically a transformation

These transformations do not change the coordinates of the vertices that define the brush; the transformation is applied internally to the brush. This allows you to make revert back to the original transformation at any time.

How to Transform

Transforming a brush can be achieved in two ways:

  1. Graphically using the transform modes found in the toolbox
  2. Numerically using the brush properties window.

Two sides to Every Coin

Transforming a brush instead of vertex editing into a new position or shape allows you to:

  • easily make big changes
  • undo
  • experiment

However:

  • errors can occur when combining transformations
  • vertex editing and brush clipping do not always work correctly on a transformed brush

Make it permanent

Applying Transform permanently to a brush

  • applies the transformation
  • resets all numerical entries (except for location).
  • is accessible from the Brush Context Menu.

Brush clipping, vertex editing or further transformations can be applied with impunity, but it's no longer possible to read the previous transformation numbers.

Related Topics

Comments

Sobiwan: I admit it; I'm a butcher. :)

Tarquin: Yeah... I'd like to save some of my overview stuff, so I'll shove it down here for now. But this thing is that brush transformations are completely different under UEd 3. Rotations, at least, now transform immediately. I think this is a step back in terms of usefulness; I have no idea why they've changed it.

Sobiwan: Fair enough. I dont use UEd3, so I dont learn about it and didnt know about it. That overview is one hell of a read though! There is probably a way to losslessly compress the verbage. :)

bmw5002: UEd3 doesn't have the numerical brush scale property (or im stupid)! Arrrg!

Tarquin: no, you're not stupid. They've removed brush scaling. There's still a numeral scaling dialog somewhere, but it's now an immediate transformation of vertex co-ordinates.

{X-dArKwUn-X} I thought it would be a cool idea to take a well known level, and jack-up the total size, to make it look like your bug-sized, but every time I use the scaler OR edit the MainScale/PostScale, all the brushes end up inside eachother, creating hell and bsp holes galore. How do I do this?

Wormbo: To resize a map properly, you not only have to rescale the brushes (preferably with an integer scaling factor or one that can be written as 1 divided once or several times by 2 so everything stays on the grid) but also have to update the brush positions accordingly.


Category Mapping
Category To Do


Brush transformations are mathematical operations carried out on a brush. Quick high-school geometry refresher: matrix transformations of 3D space can be classified into:

  • rotations
  • scaling in 1, 2 or 3 axes
  • reflections, which are secretly a scaling of -1 in one axis
  • skews

UnrealEd can perform all these operations on a brush (though skewing is a little bizarre). The following actions are brush transformations:

  • Scaling with Brush Scaling mode
  • Rotations with Brush rotate mode or [camera mode]?
  • Reflections commands in the Brush Context Menu
  • Brush sheer mode (possibly)
  • Numerical scaling in the Properties.Brush properties: scale and sheer
  • Numerical rotation in Properties.Movement.Rotation
  • simply moving a brush is in fact also (technically) a brush transformation

All of these changes to a brush do not change the actual co-ordinates of the points that make up the wireframe. Here's a rough analogy: suppose you're making a cartoon and animating a famous mouse. You have a cel with Mickey on a background. Suppose you want to rotate the mouse for some reason: you could erase the picture on the cel and redraw it at an angle. Or, you could just rotate the sheet of celluloid.

UnrealEd's brush transformations are the same: they keep the wireframe fixed internally and apply numerical transformations to the object that you see and the BSP compiler processes. To extend the Mickey analogy, the cel can also be stretched, flipped or skewed.

The following properties of the brush are involved:

  • MainScale & PostScale (need to figure out exaclty how these work)
    • Scale
    • SheerAxis
    • SheerRate
  • Rotation
  • Location

Each brush effectively has its own 'local' axes and co-ordinates. The upshot is that this approach has advantages and disadvantages:

Advantages

  • undoing or reversing a transformation restores the brush's previous state perfectly. There's no possibility of round-off errors, the way that performing 1 / 3 * 3 on a calculator can give 0.999999.
  • it's easy to determine the orientation of a brush, to then apply it other brushes when making complex geometry

Disadvantages

  • combining transformations can produce unexpected results, for example gimbal lock when rotating in several axes, or when scaling and rotating
  • vertex editing and brush clipping can have unexpected results on a scaled or rotated brush.

Transforming permanently

This command in the Brush Context Menu resets all transformations (except location) and keeps the brush shape the same by applying the transformation calculations to the wireframe coordinates. The brush can then be clipped, vertex-edited or have further transformations applied with impunity, but at a cost: it's no longer possible to read off what transformations got it into the current state.

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

FAQs

Help Desk

Mapping Topics

Mapping Lessons

UnrealEd Interface

UnrealScript Topics

UnrealScript Lessons

Making Mods

Class Tree

Modeling Topics

Chongqing Page

Log In