Weightmaps

by David 2. July 2010 14:55

Weightmaps are a method of deriving topological features from heightmap data.  Types of weightmaps include by-altitude, by-direction, by-slope, by-flow, and others such as convexity.  Weightmaps essentially provide masks that can be used by artists to apply textures algorithmically to specific terrain topology features, such as grass on flat-lands (low slope weightmap) or snow on mountain peaks (high altitude weightmap).  Extracting the mask data from the terrain topology is an art in itself, requiring various styles of mathematical examination of the terrain layout.

Over the past few weeks I have been working on developing the Mask and Weightmap dialogs and functions including their use in the world creation stack.
The following images show three weightmaps derived from a digital-elevation-model terrain.



-

Tags: , ,

HMES

HMES Engine

by David 14. April 2010 12:48

It has been a few months since my last post, however, work has been proceeding quite well on HMES.

Most of the last few months has been spent on code organization and refactoring classes to support all of the desired application features and future feature requests.  Development of the Properties Panel and 3D rendering engine is well underway so that HMES provides a modern tool interface.

Unlike other terrain creation and editing software, HMES also supports using geometric primitives and extruded shapes plus our own proprietary DEM Tile system for non-destructive geomorphing of the heightmap [in World Space mode].  What does this mean for you?  Easily build realistic terrains using real digital elevation model data with any layout that you desire, and flatten areas where buildings or cities will sit using geometric primitive geomorphing, or construct complex road and waypoint layouts by simply dropping primitives and splines as desired, and much more.

An early beta version will be made available this summer for closed testing to Unreal Engine Licensees at no charge, with the final version available possibly late this year for retail sale to everyone.

A recent shot of the application showing the main sun directional light indicator and the grid properties panel.


-

Tags: ,

HMES

High Resolution Terrains

by David 1. December 2009 15:47

Viewing and editing high resolution terrain files and DEMs (digital-elevation-models) is a challenge due to the large number of mesh triangles.  A 1024x1024 terrain without any LOD (level of detail) reduction is more than two million triangles that must be rendered each frame (2,097,152 triangles).
This really pushes current high-end computer hardware to the limit, especially if the terrain data must be designed to support dynamic updates at any frame with no LOD reduction.  After all, it's quite pointless to edit a terrain that is forced to a lower level of detail since then you cannot see what you are editing.  Many commercial game engine editors can drop as low as two frames-per-second on a C2Q-3GHz/8GB-1066/NV275 when editing a terrain of 1024x1024 with no LOD or materials.
TerreSculptor defaults to editing terrains in WorldSpace mode at the native non-LOD level with full terrain resolution, and includes two specialized methods of scene optimization to allow for editing higher resolution terrains.

A 3001x3001 full-resolution no-LOD digital-elevation-model terrain test in MapSpace mode:


-

Tags: ,

HMES

Altitude Coloring

by David 27. October 2009 10:42

One of the challenges of working with Heightmap based terrain is the visual rendering of the 16-bit altitude data to standard computer 8-bit displays.

When abstracted as an image, a Heightmap is essentially a 16-bit grayscale bitmap.  Unfortunately modern computers can only display an 8-bit grayscale.  This poses a number of questions regarding the optimal methods of rendering the Heightmap to provide a good visual representation of the full 16-bits of altitude data.

HMES approaches this issue in a two-fold manner, with full color gradient ramps and auto-ranging color gradient ramps.  A variety of gradient ramp styles are provided, including planet-like altitude simulations such as arctic, desert, and lush green worlds, where the colors can change from dark blue oceans to green forests to white snow-covered mountain peaks.  While other terrain software typically supply only one method of coloring, HMES supports both full color range and auto-ranging color sets, with the appropriate style set for each specific rendered 2D or 3D view.
The HMES full color range color sets always have their darkest color starting at the 16-bit absolute altitude of 0 and their lightest color ending at the 16-bit absolute altitude of 65535.  This is essentially how the standard RGB color space relates to conventional paint software, and is used in HMES when performing paint style functions such as brightness, contrast or gamma.  The limitation on using this type of colorset selection for displaying Heightmaps is the fact that most Heightmap content use such as video games is commonly limited to the central 4000 to 8000 altitude range out of the 65536 range total, resulting in an image display that is typically close to monochromatic when rendered on a 3D mesh.
The HMES auto-range color sets more closely resemble the planet-like range of colors from ocean or land up to mountain peaks.  The auto-range color sets also automatically scale to the current extents of the Heightmap altitude range, so the lowest Heightmap altitude is always the same ocean blue and the highest Heightmap altitude is always the same white mountain peak.  This type of colorset selection is excellent for displaying 3D rendered terrain meshes, and is used in most of the HMES 3D view modes.  Its limitation is that it does not work well in the 2D paint style functions, so it is typically not used in those views.

TerreSculptor HMES on an Atom 330 PC with Windows 7 displaying the auto-range desert colorset.  The axis icon and grid are hidden, the water level is visible.



-

Tags: ,

HMES

Custom Controls

by David 21. October 2009 11:28

The design of HMES has required the development of a large number of custom controls that provide input and visual feedback beyond what the standard Windows interface controls provide.  This effort has been both tiring and rewarding.  The biggest challenge has been to develop controls that function well with all of the supported Windows versions and their individual themes.

The current set of custom controls includes Glass Button, Color selection Button, Color selection ComboBox, Numeric TextBox, Angle and Direction indicator/selection controls, Spline graph editor, Altitude graph display, Histogram graph display, 3D border container, Text label with separator line, horizontal and vertical gradient panels, plus the massively featured 2D/3D preview rendering control and the main 2D/3D viewport control.
A future version design idea is to incorporate a better toolbar ribbon system that replaces the current standard toolbar.
-

Tags: ,

HMES

The "Graphical" in GUI

by David 12. October 2009 18:40

I once was told that good software design is 95% user-interface.  In trying to live up to that, the design goals of HMES have been to provide a strong interface with a lot of features and flexibility.
Instead of only providing input controls on many of the dialogs, HMES provides graphical displays for instant visual feedback.  For example, the various editing dialogs such as for changing the altitude or size, or applying filtering or smoothing, provide large preview images of the operation.  Taking this even one step further, the preview image display is an interactive control that allows for 2D top, front and 1:1 panning views, and 3D wire, solid and shaded views with lighting and camera movement.  Many of the dialogs utilize two of these preview controls, one for the original view and one for the function preview.  The supported interactivity varies accordingly with each dialog to provide a strongly intuitive user experience.  Numerous settings and options are available, either in the main application Options dialog or on a preview control contextual menu.




-

Tags: ,

HMES

Interface

by David 3. October 2009 08:41

The most important part of any software application, in my opinion, is the user interface.

A well designed interface will provide better and faster productivity, with a lower learning curve for new users.  To this end, the interface on HMES has been tweaked a number of times to create a better user experience.  The interface is very visual, with most of the editing dialogs including large customizable 2D and 3D preview windows, and graphical state displays.

The software operates in two independant modes, Map Space and World Space, with the capability of passing the current heightmap between the modes.  Map space is similar to using high-end paint software and provides import, export, conversion, and editing of heightmaps with dimensions up to 32768x32768.  World Space is similar to using high-end modeling software and provides a wide variety of terrain creation, terraforming and geomorphing functions.
-

Tags: ,

HMES

Threading

by David 30. September 2009 09:21

One of the requirements in the design of HMES has been to incorporate support for multi-core processors.

The Windows Threading API is being used extensively throughout the software, increasing performance and providing a smoother user experience.  The increase in software complexity is well worth the effort.
The various editing dialogs are using a number of threads to provide faster response to user input, with each dialog typically supporting up to three or four threads.  So persons using a quad-core or better computer will notice a faster and smoother application response.
The use of threading also benefits smaller hardware setups, as this software is also testing on Intel Atom processor based computers, and the Atom 330 1.6GHz dual-core dual-thread still performs exceptionally well.
-

Tags: ,

HMES

Welcome!

by David 29. September 2009 07:51

This blog will contain posts regarding the current state of my company's software development.

Currently under development is the TerreSculptor heightmap editing software, or HMES for short.

This software provides a massive number of features for creating and editing heightmap-based terrain systems.  It features support for heightmaps up to 32768x32768, it can import and export almost fifty different file formats and sub-formats, and includes a large number of creation and editing functions.

While this software is targetted for video game developers, it may also find a niche with any other business working with heightmap or geo systems.
-

Tags:

Blog

About David

IT Professional
Hardware Designer
Software Developer

Category list

Calendar

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent anyone else's views.

The contents of this site are copyrighted and may not be duplicated without permission.

Copyright © 2010 David R. Green