Welcome to the world of terrain editing and creation, which previously had been plagued with unintuitive and featureless tools. TerrainEd is designed to aid mappers in the creation and editing of terrain geometry, both natural and artificial in design. Sporting a variety of features and a design focus of the end user, You, TerrainEd will quickly prove itself an extremely handy tool in the area of terrain editing and creation.
TerrainEd's origins come from two separate demo programs, actually. A long while back, before my excursion into UnrealScript, I was attempting to design a 3d engine based solely off the Windows GDI (which is what handles all of Window's drawing, and is incredibly slow, to boot). During this time, I wrote two small, quick demo programs - one was a half-finished utility for creating special meshes of my own design, and the other was a quick implementation of a random terrain generator. It was much time between then and when I started work on TerrainEd. One night, while attempting to map, I found myself struggling and disappointed in my options for terrain creation. I was struck with an inspiration - create the definitive tool for terrain editing/creation for mappers, period. Taking both demo programs as templates, TerrainEd was built from the ground up with the mapper in mind.
Random Terrain Generator with configurable parameters for smoothness of terrain, initial terrain height, random seed value (for getting a random terrain you previously liked), and Sea Level.
Many terrain editing methods, such as multiple methods of smoothing, random noise addition and filtering, and relational manipulation.
Fully configurable 100% OpenGL rendering engine
Intuitive point / tri-align selection and manipulation
Different window view layouts for interface of choice
Supports native, bitmap, and UnrealEd file formats
New Terrain - wipes the terrain patch clear for a fresh start
Open Terrain - opens a previously saved terrain file (TED format only)
Save Terrain
Full - saves the entire terrain patch to file
View - saves only the currently viewed terrain to file
Import
Terrain - opens up a saved terrain file and imports the terrain into the current terrain
Bitmap - opens up a bitmap file (of any color depth) as a heightmap and imports the interpreted terrain into the current terrain
Export
Bitmap
Full - exports the entire terrain as a heightmap to an RGB gray-scale bitmap file
View - exports only the currently viewed terrain as a heightmap to an RGB gray-scale bitmap file
Unreal Text
Full - exports the entire terrain to UnrealEd's T3D brush format, for use within UnrealEd
View - exports only the currently viewed terrain to UnrealEd's T3D brush format, for use within UnrealEd
Exit - exits TerrainEd
Edit Menu
Undo - reverses the last change you made. Undo will save up to 10 changes
Redo - reverses the last undo you did. Redo will save up to 10 Undo changes, but is reset once a change is made to terrain other than an Undo operation
Copy - copies the currently viewed terrain to a buffer
Paste - pastes the contents of the copy buffer to the current view area and allows the user to change the location to paste the copy buffer to. See the Importing section for controls and process information on pasting
View Menu
Render Mode
Points - renders only the vertices of the triangles
Wireframe - renders the terrain as triangle wireframe
Shaded - renders the terrain as shaded triangles
Bottom See-Through - tells the engine to not draw the backside of triangles. When not checked, TerrainEd renders the backside of shaded triangles as wireframe
Smooth Shade - tells the engine to interpolate the color of the terrain, resulting in a smoothly shaded appearance. When not checked, TerrainEd renders the terrain as flat colors (applies to both wireframe and shaded views)
Shadow - tells the engine to apply a shadow effect on terrain as it is gets farther from the user, resulting in lighter terrain in front and darker terrain which is farther away, bringing out terrain surface detail. When not checked, terrain is rendered at full color brightness
Keep Terrain Centered - ensures that the terrain is always centered in all window views. When not checked, the user can move the terrain around in the view at will
Show Overhead - opens up an overhead shot of the terrain, giving an overall view of how the terrain looks as if a heightmap. Unchecking this will close the overhead window
Change View Area - allows the user to change the size of the view area to be able to work on more or less terrain at a time
Options Menu
Terrain Generation
New Random Terrain - generates a completely new, random terrain, based on existing parameters
Fill In with Random Terrain - generates random terrain wherever the terrain height is at the minimum in the current terrain
Change Terrain Parameters - allows the user to specify their own parameters, affecting how random terrain is generated
Add Random Noise - adds a configurable amount of random height across the entire terrain
Filter Noise - reduces height differences (within a configurable amount) to the same height
Smooth Terrain - offers two methods of smoothing the terrain, flatten and average
Raise / Lower Terrain - can either raise or lower terrain by a configurable height or move the entire viewed terrain to a specific height
Change Colors
Change High Color - allows the user to change the color used for the maximum terrain height
Change Base Color - allows the user to change the color used for the average terrain height
Change Low Color - allows the user to change the color used for the minimum terrain height
Change Sea Color - allows the user to change the color used for the sea level
Change Import Mode - allows user to change the method terrain is imported
RM Options
Peak Method - affects neighboring terrain in the manner of a mountain peak
Dome Method - affects neighboring terrain in the manner of a hemisphere
Ripple Method - affects neighboring terrain in the manner of a sine wave
Freeze Selected - when checked, the selected points by which RM is being applied will not move during RM movement
Update Tris
Full - TerrainEd will set the triangle alignment across the entire terrain
View - TerrainEd will set the triangle alignment across only the currently viewed terrain
Window Menu
Layout
Standard - consists of the 4 standard 3d views - the XY plane (upper left), the XZ plane (upper right), the YZ plane (lower left), and the Free Rotate window view (lower right)
All In One - a single window view, in the manner of the Free Rotate window view of the Standard Layout. Allows point manipulation restricted to either the XY plane or the Z axis, as well as free rotation
Reset - resets the current window views to their default position, and centers the terrain in the window views
Help Menu
Help - this readme document
About TerrainEd - see the About and Copyright sections for further information
The Status Bar provides quick visual access to certain state information of various parts within TerrainEd. From left to right, here are the descriptions of each pane :
View Area Dimensions : in Width,Height format
View Area Location : in X,Y format
Grid Snap Setting : either 2, 4, 8, 16, or Off
All In One Layout Point Manipulation Mode : either XY Plane or Z Axis
Import Mode : in Mode - Percentage% format. Percentage does not apply to Replace mode, only Add and Subtract
Current Mode Indicator : displays "Importing" if the user is currently importing, "Pasting" if the user is currently pasting, or blank if neither
Mass Selection Mode : displays Select for selection, and Deselect for deselection modes, respectively
Relational Manipulation State : displays whether Relational Manipulation mode is on or off
It may initially seem that there are many controls to remember, but given a little experience with TerrainEd, and when compared to far more expansive programs such as 3d Studio MAX, you'll find that it's not difficult both remembering and getting used to the controls.
Controls can be broken down into two groups, Simple and Advanced. Point moving occurs along only the plane of view in the Standard View (which depends on which window view you clicked in), or along specifically the XY plane / Z axis (mode pending) in the All In One Layout
Simple controls are those for the basic editing and manipulation functions.
Point Manipulation - these cover the basic controls for selecting and moving terrain grid points
Left Click - selects the point clicked on. A selection box will appear around the selected point. Selecting a point in this manner while having other points already selected will deselect previously selected points
Control + Left Click - select/deselect points without deselecting previously selected points
Shift + Left Click - deselects all selected points
Moving Selected Points - simply click any selected point (or a non-selected point, which will deselect all other points and select the just clicked one) and drag to the desired position
For the All In One Layout only - movement on the XY plane or Z axis are two separate modes. Switching between them is simple - the 'X' key switches to XY plane, while the 'Z' key switches to the Z axis
Window Views - these cover moving the terrain in the window, rotation, zooming, and changing the view area
Left Click + drag - when performed on window area (not a selected/selectable point), this will move the terrain about the window view (only if the Keep Terrain Centered menu option is not checked)
Right Click + drag - rotates the terrain about the X and Y axis. Only valid in the Free Rotate window view in the Standard layout (lower right) and the All In One layout. Rotation about the X-axis is limited to a 180 degree range.
Shift + Right Click + drag - rotates the terrain about the Z axis. Only valid in the Free Rotate window view in the Standard layout (lower right) and the All In One layout
Shift + Left Click + drag - zooms the window view
Left Click + Right Click + drag - moves the view area over the entire terrain patch
Advanced controls cover the more advanced features of TerrainEd.
Point Manipulation
Control + Right Click + drag - selects/deselects all points that pass under the mouse position (though hidden)
'S' key - toggles between Select and Deselect
Grid Snap - allows the user to more easily make sure that points line up where they should
'G' key - cycles through the different grid snap lengths, as well as turns it off
Triangle Alignment
Control + Shift + Left Click - flips the triangle alignment within the clicked grid
Relational Manipulation - method of manipulating multiple points in a related manner by directly manipulating very few points
'R' key - toggles on/off RM.
Point Information
'I' key - when points are selected, brings up a dialog box with location in the grid and world space location information on all the selected points
TerrainEd provides methods of displaying terrain information and interface through layouts. There are currently two layouts in TerrainEd.
Standard - provides a common view and interface for 3d editing programs. Includes an XY plane view (upper left), an XZ plane view (upper right), a YZ plane view (lower left), and a free rotate window (lower right)
All In One - consists of a single, freely rotating window view. The advantage to this is that point movement is limited to either the XY plane or the Z axis (via toggle keys)
In addition, every window view (in all layouts) has a rotation indicator in the center of the window view
Red line - this is the X axis
Green line - this is the Y axis
Blue line - this is the Z axis
Terrain
TerrainEd's random terrain generation algorithm provides a very fast method of generating natural looking terrain. Couple this with configurable generation parameters and a host of terrain adjustment tools, and you have the power of TerrainEd to turn boring, flat maps into something truly exciting.
The following is a description of the parameters for generating random terrain, and how they affect the terrain generated
Random Number Generator Seed - this value is used to seed the random number generator. By using previously used numbers, the same exact terrain can be recreated
Dampening Value - this value is used to soften or sharpen the difference in heights of neighboring points during generation. 2.0 is the default value, with higher values giving smoother terrain and lower values giving less smooth terrain
Initial Height - used only as the base height for all points before terrain height is added
Sea Level - strictly an aesthetic setting, sea level is viewable in point rendering mode, and will draw the sea level in the Sea Color in the window views
TerrainEd supports two different methods of generating random terrain : generate a whole terrain patch, overwriting what was there before, and generating terrain only where the current terrain height is at the minimum (0)
Random noise is a way to turn smooth terrain to slightly to very bumpy, using a configurable height range to work from
Noise Filtering is not the same effect as smoothing, and produces very different results. Noise Filter uses a configurable max height value to flatten terrain that's near the height of its neighbors. This produces a step effect at mid to high values
There are three methods of Relational Manipulation. The concept behind RM is to be able to make large (organized) changes in terrain with very few movements. Keep in mind that all movements with RM are reversible, in the sense that if you pull a dome up, you can also pull an inverse-dome down. All methods have configurable variables for changing their area of effect
Peak - moves points with it in the manner of a mountain peak
Dome - moves points with it in the manner of a hemisphere
Triangle Alignment refers to the breakdown of a grid into two triangles. Internally, TerrainEd keeps the triangle information separate from the terrain grid in order to simplify a lot of things, but that is all transparent to the interface. TerrainEd allows both manual and automatic setting of tri-alignment. TerrainEd takes a least difference approach when it sets the tri-alignment, meaning that the end geometry will tend to look more vertical than horizontal (where the difference would have been noticed, that is)
To further aid in the editing/creation process, TerrainEd has an Overhead View window which displays the terrain as a color coded heightmap, giving a general overall view of the entire terrain patch and where the current view area is (as well as how large it is). Clicking in the Overhead View will move the view area to be centered where the user clicked
TED - this is the native file format for TerrainEd. It can be saved to and imported from
BMP - the standard bitmap file. TerrainEd can export to and import from any color depth bitmap
T3D - this is a text file format used by UnrealEd for brushes and level geometry. TerrainEd can only export this format. For instructions on how to use the exported brush, see Using TerrainEd with UnrealEd
Importing and pasting follow the same interface/procedure for completing the action. The only difference is that pasting does not involve opening a file first.
There are three import modes. Only the Replace mode doesn't use a configurable percentage parameter
Add - adds the importing terrain to the existing terrain. The percentage parameter limits how much is added to the existing terrain
Subtract - subtracts the importing terrain from the existing terrain. The percentage parameter limits how much is taken away from the existing terrain
Replace - replaces the existing terrain with the importing terrain
When importing and a file has already been opened, the terrain to be imported will appear in solid white in the immediate view area. The view area can be moved around independantly of the importing terrain, but to move the importing terrain's import location, use the arrow keys. When the importing terrain looks satisfactory in its destination, press Return to finalize the import, or hit Escape to cancel the import procedure
Exporting is a quick and painless process. See the menu description for the differences between Full and View options. When exporting to Unreal Text, see Using TerrainEd with UnrealEd
Visuals
TerrainEd offers various ways to render the terrain
Point - terrain points are drawn only. Bottom See-Through and Smooth Shade options have no effect in this mode
Wireframe - terrain triangles are drawn by edges only
Shaded - terrain triangles are rendered as solid colored triangles. When Bottom See-Through option is not on, terrain facing away is rendered as wireframe.
There are three toggleable options that affect how the terrain is rendered as well.
Bottom See-Through - tells TerrainEd not to draw terrain that faces away from the viewer, allowing an unobstructed view of the rest of the terrain
Smooth Shade - tells TerrainEd to smoothly interpolate the color across the terrain. When toggled off, terrain is rendered in solid colors
Shadow - tells TerrainEd to depth cue the terrain in a manner similar to a shadow effect. Terrain farther away will appear darker than terrain closer to the user. When toggled off, all terrain is rendered at full brightness
TerrainEd also allows the user to change the colors used to render the terrain. All terrain is colored by ramping the height against the color ranges set
High Color - the color of the highest height terrain can be
Base Color - the color of the middle height, serves as a cross-over point for color
Low Color - the color of the lowest height terrain can be
Sea Color - the color used to render sea level
Using TerrainEd with UnrealEd
TerrainEd does not interact with UnrealEd directly. Instead, it supports exporting terrain to a file format recognized by Unrealed, the T3D format. When you've exported your terrain to T3D file, and as you read through this section, keep in mind that the generated T3D file is intended to be imported as a brush.
Design your terrain and export it as Unreal Text. When the Export Scale box comes up, remember that a scale of 1 means each terrain grid is 16 Unreal units, scale of 2 is 32 Uus, and so on. Also, you can either add the terrain in UnrealEd, or subtract it, creating rooms and such, so design your terrain accordingly
Open up UnrealEd. Once open, go to the Brush menu, and select Import at the bottom of the menu. This will bring up a find file dialog box - go to where you exported the terrain from TerrainEd and select the file
You should see be able to see the brush as a pinkish outlined object in all the views, with a corner of the brush base at the origin of the grids. Clicking on the brush will select it, and holding down Control while you hold down the left mouse button will move the brush around in the window
Once the terrain brush is in place, you can at this point either add the brush geometry to the world geometry, or subtract the brush geometry from existing geometry
If you do not know the basics of using UnrealEd, and are confused by the above instructions, please visit one of the nice online sites on UnrealEd and editing, as a how-to document for UnrealEd is far out of the scope of this one.
Revision History
v1.0 - official public release
- fixed AIO window not extending full area
- made rotation indicator easier to see direction
- enhanced undo to include intelligent multi-level undo/redo
- added distance shadowed cue to aid in distance/orientation determination by user visually
- added Copy and Paste
- added Noise Filter
- added Raising / Lowering Terrain
- added generation of random terrain around pre-existing terrain
- added point info box
- added export time scaling of t3d geometry
v0.96 - final public beta test
- added Relational Manipulation methods
- a lot of internal code cleanup
- added single-level undo features
v0.94 - private beta update
- implemented polygon rendering, entailing :
- did away with export mode window - now tri cross alignment can be flipped at any time by holding down Shift+Control+Left-click
- exporting now happens like importing - immediately from menu selection
- tweaked the menu a bit
- added option to either not draw poly's facing away, or to draw them wireframe (shade mode only)
- added option for flat or smooth shading (applies to wireframe and shade mode, not point)
- cleaned up a lot of outdated code, decreased size of executable nicely
v0.92 - private beta update
- changed view area moving to Left&Right+Click+Drag
- fixed issue with cursor disappearing when let go off the edge of the window
- added add random noise option
- added two terrain smoothing methods - Flatten and Average
- fixed bug where resetting windows would cause terrain to jump to last unlocked position
v0.90 - private beta udpate
- fixed many bugs and issues
- ported to OpenGL
- changed selection boxes to fade in color the farther they are from the current view area center
- enabled all render modes to display in fully ramped color scheme
- tweaked the way tri determinates (the diagonals that split a quad into two tri's) are calculated
v0.8 - initial public beta test
About the Author
I am currently 21, employed in the US Army and stationed in Germany. My hobbies include (and in order of importance, for better or worse) :
Music - I play piano (have since age 6) and compose both on the piano and computer.
Computers - both gaming and programming. I dabble a little in art, but I have about as much art sense as I can throw it. I play FPS', RPGs, logic and puzzle games. Oh, and nothing beats a good LAN Party
(Rollerblading & Hockey) - that's a C programming joke, if you don't get it =)
Paintball - need I say more?
Women are not hobbies, so don't send me e-mail asking why it wasn't listed here. Have some respect, would you?
Use of TerrainEd in any way, shape, manner, or form indicates that the user fully agrees to the statements below.
All referenced software and products not explicitly created and copyrighted by Martin "Pfhoenix" Actor are copyrighted and protected under their prospective owners and creators.
TerrainEd is sole intellectual property of Martin "Pfhoenix" Actor. TerrainEd may not be mass distributed (defined as distribution via CD or other demo disk) without prior expressed consent by Martin Actor. TerrainEd may not be sold by anyone without explicit permission and agreement by, and from only, Martin Actor. Any damage, either physical or mental, which may or may not be directly or indirectly resulting from the use in any way, shape, manner, or form of TerrainEd is solely the responsibility of the User.
This site is not made by, and is in no way sponsored by, Legend Entertainment or GT Interactive. If you are looking for the official Wheel of Time site, please visit WheelofTime.com.