TerrainScape has been in development for several months now, and I
feel it is mature enough to share with the general public. Let's
start off with a few questions:
What is TerrainScape?
TerrainScape is a Terrain construction and object placement program. TerrainScape Utilizes TGC's Advanced Terrain system to provide high-quality terrain which is modifyable via a greyscale heightmap, a supertexture and a detail texture. TerrainScape allows it's users to develop fantastic looking terrain within minutes, using fractals, layer modifiers and a user-friendly interface for texturing, script-based object placement and real-time matrix deformation for quick, responsive results.
How large of a terrain can TerrainScape create?
A single terrain generated in TerrainScape can easily span tens of miles when utilized properly. This can be done at little to no detriment to performance. Heightmap resolutions have been created and tested from 64x64 to 2048x2048. Theoretically it could work with larger heightmaps, however it currently makes no sense to utilize heightmaps which are larger than this.
How do you modify the terrain's shape?
In TerrainScape you have your choice of either modifying the terrain in a 2D or 3D environment. The 2D environment allows you to select a brush type, it's density/opacity and flow/speed. With this brush you can then paint on the greyscale heightmap in an additive, subtractive or multiplicative manner, making areas lighter or darker with an easy photoshop-like toolset. The 2D brushes are also user modifyable, scalable from 1 to 128 pixels in width/height and users can even create their own brushes and import them at application launch for a fully-customizable experience.
The 3D environment allows the user to fascet, raise or lower a terrain by modifying individual or group vertex data which is represented in real time by a deformed matrix. Once the user is finished making his/her changes to the terrain, the option to rebuild/refresh the terrain is given which then re-renders the terrain and displays the recent changes. The matrix is contour-fitting to the Terrain and demonstrates (through a little math) what the Advanced Terrain counterpart would look like after the changes have been applied.
Can you place objects on the terrain with TerrainScape?
Yes. This can be done by individual object loading or objects can be place en-masse using it's nifty script-based autoplacement UI. Objects can be individually moved, rotated and scaled or they can be categorized in groups which can be modified with group-based effectors such as dispersion, rotation, scaling etc. Like terrain construction, object's existence can be modified in either 2D or 3D via a 3D eraser/placement tool or a 2D point/spray/draw tool. The 3D tool is kinda cool, it is like you are scrubbing the terrain with a huge erraser, wiping out everything in it's path
What does the output of TerrainScape look like?
Unlike most other terrain editors, TerrainScape offers a What You See Is What You Get (WYSIWYG) interface, meaning what you seen in TerrainScape is EXACTLY what you will see in any application utilizing Advanced Terrain. You don't need to screw with lighting levels, wondering why lightmapping won't work, nothing.
Ok, enough talk, here are some screenies:
Some General Screenies demonstrating the countour tool:
Zooming out a bit:
Fundamentals of a Layer Editor:
2D Layer Editor with Brushes:
SuperTexture Editor:
Real-time Matrix deformation :
The 3D Color Pickers:
Script-based object placement:
Scripted object placement interface (Ceiling/Floor):
20 integrated skyboxes, modifyable and user-creatable:
ToDos:
SuperTexture programatic texturing
Colormap object placement exportation
Advanced Camera Controls
Multiple Layer and Stack Control UI
LUA implementation
Directional light definition/UI
Clipboard Utilization
LiT's Limb Culling which is currently being DLL'ized by Cash Curtis II
And about 32438093E234098^17 other things
In Development:
85% - Real-Time AT sculpting WITHOUT the use of matrices.
70% -Real-Time SuperTexture Painting (3D)
60% -AT "Hole" generation (Make holes in AT for building basements, wells, etc.)
20% -Diamond-Square Image Pre-Seeding
35% -Multiple, Simultaneous AT Manipulation
20% -Ceiling/Roof Autoscript Falloff
30% -Event Transaction Recording
30% -ReDo/UnDo controls
Completed:
Real-Time SuperTexture Painting (2D)
Slope-placement UI
Fractal Terrain Generation (Thanks Green Gandalf, your example was a great starting place
)
Direct Heightmap painting
Real-Time display of heightmap changes via matrices
Brush importation and implementation and Scaling UI
Object placement and scripting
Terrain Scaling
Automatic re-placement of objects on terrain scaling
Distance Culling of objects
File I/O
Camera Navigation
Object selection and deletion
Dynamic Array Shifting for increased vector picking performance
Integration of Sparky's
(PJ - you totally rock dude)
Distance Alpha Dithering
Terrain rebuilding and calculations feedback
Timer-based movement
These aren't closing credits, but I would like to Thank my buddy Cash Curtis for his undying support, unique approaches to problem solving, and insightful concepts which made this project possible. I would also like to thank Xenocythe for his enthusiasm and constructive ideas. And none of this could not have been done without the staff at TGC, I thank each and everyone of you.
I have accomplished a lot over the course of development of TerrainScape, but I still have quite a road ahead of me. I will be publishing updates, screenies and videos as I make further progress.
I am happy to hear your comments and suggestions! Brainstorming is welcome!
Videos Section:
http://www.youtube.com/watch?v=kotJpGxvg10 - This is an old video demonstrating automatic object placement.
http://www.youtube.com/watch?v=9KPJglzX4B0 - Really cool demo of real-time painting on AT
http://www.youtube.com/watch?v=JYk1e8WUWjo - Real Time AT morphing
Visit the Wip!