Scape: 5. Overview and downloads

June 28, 2012 Graphics

Finally, the Scape terrain editor prototype is now officially open sourced and freely available for download! This article on Scape is meant to provide an aggregated collection of links to previously published documentation and downloads, as well as to the new source code and binary package downloads.

Panoramic canyon terrain in Scape

Introduction

Originally developed as a research thesis project at Vanguard Games, Scape is a prototype application allowing the user to apply a number of brushes with complex procedural effects to manipulate heightfield terrain in real time. For the more complex procedural brush types, much of the work is offloaded to the GPU to speed up the editing process. For a more in-depth introduction, visit Scape: 1. Rendering terrain or scroll down to watch a short real-time demonstration.

Even though I personally intent not to actively work on this project any longer, I hope it will already be useful to other people as-is, and that it may continue to evolve through the work of volunteers on Scape’s public repository or on other projects willing to integrate (parts from) Scape.

Screenshot of Scape 0.1.1

Binary release

Scape 0.1.1 for Windows binary [ZIP, 7.7 MB]. This standalone Scape binary for Windows is free and may be used for both commercial and non-commerical purposes, if and only if you agree to its terms. The full license agreement can be found under /Docs/ScapeLicense.txt. Please read the brief instructions in /Docs/UserGuide.html to learn how to start Scape, control the camera and brush size, set the terrain size and more. The current version supports importing and exporting heightfields to BMP, PGM, PNG, TGA and RAW images, using a 8-bit, 16-bit, 32-bit integer or a 32-bit float per greyscale pixel, although not all modes are supported by all file formats. Again, see the User Guide for details.

Source release

Scape 0.1.1 source code for Visual Studio 2008 (Express) [ZIP, 1.5 MB]. This latest official release of the Scape’s source code, which has been released under the Simplified BSD License. You are only allowed to use the source code if you agree to the terms found in /Docs/ScapeLicense.txt. Please read the instruction in /Docs/ProgrammersGuide.html to build the binary using the included Microsoft Visual C++ 2008 solution.

Official Mercurial repository for Scape. Instead of the above Scape source code release, you can also get the latest (unstable) version of the source code from this public bitbucket Mercurial repository. The repository also comes with a Wiki of its own.

Procedural FX Composer project [ZIP, 0.5 MB]. Besides the source code of Scape, the source code of all algorithms explained in the procedural basics & extensions articles on Scape has been released as seven ready-to-use CgFX & FX techniques with different pixel shaders in this NVIDIA FX Composer project.

Articles

Scape: 1. Rendering terrain. Introduces the project and explains the terrain geometry rendering and shading techniques used by Scape, including Geomipmapping, texture layering and texture multi-projection.

Scape: 2. Procedural basics. A detailed introduction into the common Perlin-based procedural noise-summing algorithms that can also be found in Scape, including normal/rigded/billowy turbulence. It also covers the more complex ‘IQ Noise’ noise summing technique.

Scape: 3. Procedural extensions. A step-by-step explanation of novel procedural noise-summing algorithms, using the noise’s analytically calculated derivatives to achieve erosion-like effects. (The described jordan turbulence function is actually not available in the current version of Scape. The swiss turbulence, however, is).

Scape: 4. Brush pipeline. A description of Scape’s full editing pipeline, using the CPU and GPU to locally edit the terrain using on of the many different (procedural) brush types. It also describes Scape’s procedural directional noise.

Research

Interactive GPU-based procedural heightfield brushes [PDF, 3.5 MB]. ACM paper on the GPGPU brush techniques in Scape. © ACM, 2009. This is the author’s version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 4th International Conference on Foundations of Digital Games, Pages 55-62, http://doi.acm.org/10.1145/1536513.1536532.

Effective GPU-based synthesis and editing of realistic heightfields [PDF, 10.6 MB]. MSc. thesis on brush-based editing of heightfield, researching the application of common and novel procedural algorithms as GPU-based brushes to offer users both better control and iteration speeds. The thesis presentation is also available [PPT, 12.8 MB].

Interactively synthesizing and editing virtual outdoor terrain [PDF, 6.0 MB]. Extensive survey on modern terrain editor requirements, procedural terrain algorithms, ‘terrain’ texture synthesis, terrain editing tools, terrain texturing and foliage placement.

Support

Both the source code and binary of Scape come without any form of support, guarantees and warranties, as explained in the license agreement. Please see the User Guide and Programmer’s guide for basic information on how to install/build Scape and how to use it. Furthermore, experiences have been shared on this Ogre forum, which may aid in any troobleshooting.

Demo

Comments (30)

Wolfos
June 29, 2012

How about an OS-X version, or at least one that’s easily portable? Hell, rewrite it in Unity or something! I’d buy it.

Giliam
June 30, 2012

Hi Wolfos. Currently, I have no plans for porting it to other platforms. However, the source code itself is pretty much platform independent as its built on top of the multi-platform Ogre3D engine and wxWidgets library, which both support OS X. So, I’d imagine it wouldn’t be too hard to do so if someone would want to give that a try.

vonpixel
June 30, 2012

Thanks for this! Im always looking for options to expand terrain generation and this looks pretty awesome.

Anonymous
July 2, 2012

This looks a lot like ZBrush.

Brian
July 3, 2012

Looks great, too bad it will not install on my XP pc.

Giliam
July 3, 2012

Hi Brian. Thanks. Btw, I’ve not tested it recently, but i’ve seen an older version run on an XP machine with an ok graphics card (Shader Model 3), but it did require installing a newer version of DirectX. No guarantees, but perhaps that might do the trick for you as well. See the user manual under /Docs for a link.

Vylee
July 3, 2012

This looks amazing! I did find one odd bug though. If you have multiple displays and start the application on one monitor and drag it to the second…the entire 3D scene disappears.

Keep up the great work though. I’ve been really enjoying it.

Irfan
August 6, 2012

Great stuff, you heelpd me out so much!

Froyok
November 3, 2012

This tool looks really awesome. Unfortunately it crash every time I try to do a single brush hit. (I’m running on an nVidia GTX 470)
By the way I’m left-handed, is there a way to inverse the mouse buttons ?

Nice work anyway ! =)

Giliam
November 3, 2012

Thanks Froyok. Have you tried installing the DX9 runtime? If not, check the user guide for instructions. Also, all input definitions are defined in /Bin/Settings/ButtonDefinitions.xml. Simply find and replace ‘MB_LEFT’ to ‘MB_RIGHT’ and vice versa to inverse the mouse buttons. Good luck!

Froyok
November 5, 2012

I finally got it working with your help, thank you ! That’s totally awesome ! :D

lklleb
September 3, 2013

WOW this software is AWESOME !

zam
September 15, 2013

Could I import my mesh at startup?

Giliam
September 16, 2013

Hi zam,
you can only import a heightmap (image), from which the terrain mesh is then generated. So if you want to load up a terrain defined as a mesh, you somehow have to convert that into a height image first (using a proper tool, or maybe even a topdown depth/fog render of the terrain mesh in your favorite model tool). If you’re talking about loading non-terrain meshes, there is no support for that at all (although hacking that wouldn’t be to hard for a coder, as Ogre supports mesh loading and rendering already).

pon
May 15, 2014

Hi,

Is it still alive? I’ve downloaded from the link you provided.
It starts but I can’t do anything with it.
Heigthmap downloading fails with any type of image.

Toolsa
June 21, 2014

Hi!

It works fine!
But don’t export 3D obj !!!
So WTF can I do with this??????? Just a pic????
I lost my time here!!!

Giliam
June 21, 2014

Hi Toolsa. Exporting a 3d obj doesn’t make much sense for most applications, as rendering hi-res terrain as one big mesh is never a good idea for performance. Many/most game engines have the option to use the heightfield ‘pic’ as input to a terrain system. And in Maya/Max you can use it as input to a displace modifier/displacement map on a plane.

CAPTNCAPS
July 27, 2014

It works fine, but is there a way to use like an image overlay?
I need to make a real world environment, but the area is too small for SRTM 90m to be useful…

Giliam
July 27, 2014

Hi captncaps. You can use the material system for that. For example, double click on the ‘Grey’ material preset under the first checkerboard tool icon, set the ‘Detail texture’ in the ‘Layer 1’ property section, and scale it any way you want using the ‘Detail texture UV scale’ under the ‘Projection’ property section. Hope this helps!

user
February 6, 2015

well if someone want to get a image of 4096 by 4096 just open the document in a photo editor tool like krita that is free for anyone to use and scale up the image saving as 16 or 32 bits if you like than export to a real time enviroment or engine that you may like or water ever you want to do. it work very fine to me.It a very nice programm .I hope that the creator of this app just go ahead and continue devolupement . it nice a lot

Paaatreeeck
October 21, 2015

Amazing stuff!

allenford
December 11, 2015

Simple but powerful!

taddison
February 4, 2016

Giliam, I really appreciate this tool that you have made available and put so much work into.
Can you recommend what settings to use on the Water Erosion tool?

Giliam
February 4, 2016

Hi taddison. Thanks. Sadly, I don’t think I can be of any help, as I don’t recall which settings I used when I was working on it. In any case, the real-time erosion was kind of an experimental feature that was never really satisfactory to me, so use at your on risk :-). Good luck!

Morty
November 14, 2016

Hey Giliam. I am working on a terrain editor project and when I saw the demo it blew my mind. What a fantastic approach to make boring noise functions become real terrain shapes! In the past year I saw many many articles about procedural terrains but this is the first one which really killed it. The quality of source code is excellent, the project setup worked as promised, and the choices you made are also really really good like using geomipmaps for LOD, cg as shader language at the time, optimizations, brush batching and many others. I loved it all. This is a simple yet incredible way to create variations in terrain. Nice job Sir.

Nicholas Manuel
December 16, 2016

Gil, let me start right off the bat by saying this. This program could be a major boon for Topographers, especially if they plan to use Scape as the bones for planetary heightmaps in Space Engineers.

Seriously, this is, by far a free alternative to World Machine Pro. However, the big picture requires six heightmaps for the planet’s overall topography.

I’m thinking for the next major update, can you allow the import and arrangement of multiple heightmaps in cutout form? As well as enable configuration for seamless editing?

I understand if such an update seems infeasible, to you. But, it’s up to you.

Dead Man
December 5, 2017

Hey, is there a way to export the layer weightmaps from this?

GearBreak
June 11, 2018

Hi, I really like your tool and used it to design worlds for my animations and games. A few weeks ago, I got a new tablet and wanted to install scape. I downloaded the .zip and extracted it. When I now start the Scape.exe file I get the error:

“OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library RenderSystem_Direct3D9. SystemError: The module could not be found in DynLib::load at ..\..\..\..\OgreMain\src\OgreDynLib.cpp (line 91)”

Can someone please help me?

Giliam
June 11, 2018

Hi GearBreak. Are you missing the DirectX9 runtime perhaps. Please see the User Guide for instructions on how to install this. Good luck. Giliam

GearBreak
January 27, 2019

Thanks Giliam!
I somehow managed to fix it on my own. Does anyone know how to get heightmaps from scape properly to UE4? When I import it into the Unreal Engine, the terrain somehow gets spiky. Any suggestions? I exportet it as a 32bit PNG.

Leave a comment