|
 |
Procedural
Landscape and Tree Generation: Hora
(Land in Greek)
Anirban
Deb & George Stathis
|
|
Project Overview |
Due to a temporary lack of space I removed the images and source code/executable from this page. This page is also mirrored here
This project attempted
to create a real time landscape and tree generation application.
The terrain was achieved by using a height field generated procedurally
using the Diamond-Square Method whereas the trees were based on
an Lsystem algorithm combined with a turtle graphics inspired drawing
method.
This application allows
you to generate your own random terrain up to a high degree of
detail (nine Diamond-Square iterations), make it more or less
rough or even apply erosion to it. The degree of customization
is even higher for the trees since the very same Lsystem seed
files that were used in the program are available to you for editing
and experimentation. The trees can use any desired textures for
the bark and leaves (as can the terrain and water for their own
textures) and can have a custom level of spread, twist and balance.
You will find all the information necessary to experiment with
creating your own tree definitions in the Configuration Manual
available for download below.
If you'd like to keep
the default terrain provided with the application, make sure to
backup all the TER, CAM and SCN files in the project. To load
the default terrain, trees and camera animation, simply paste
the backup files back into the executable folder. The application
saves over the existing files and loads the last saved terrain
and trees on startup (sorry, we didn't have time to implement
a load feature, we only had four weeks for this after all
;-)
).
Depending on your machine
configuration, this application may or may not run in real time.
You can try to experiment with the settings such as enabling the
low resolution textures or disabling the textures all together,
using a low iteration terrain (less polygons), disabling the water,
disabling the terrain tiling or keeping the number of trees in
the landscape to a minimum. This application ran in real time
on a PIII 600MHz, 512MB, GeForce 256 system. It even managed to
run on a PIII 700 Thinkpad laptop with a mere 8MB S3 card but
it was barely moving. Hint: to test how fast it runs, press the
'c' key as soon as you run the application. If the ensuing fly-by
camera animation looks fast and smooth, you should be OK. Enjoy!
|
|
Screen Shots |
|
|
|
README and Code |
|
|
- Visual C++ Project
and source files - Download
- Visual C++ Project
instructions and content description - Download
- Required Libraries
and Headers - You'll find the required OpenGL libaries, headers
and DLLs (GLUT and GLU). The PNG loader header is also included
as is the GLUI interface header and library - Download
- User Guide README
file - Download
- Code Documentation
- this document discusses the main C++ objects in the Hora application
as well as the techniques used to create the trees (Lsystems)
and the terrain (Diamond-Square Method) - Download
- Configuration Manual
- for those interested in creating their own Lsystem based trees
or adding their own terrain and tree textures, this document explains
how to use the ASCII based configuration files that come with
the application. They allow for considerable customization without the need to recompile the project in Visual C++ - Download
- Hora compiled executable
- if you don't have Visual C++ to compile the source, write to [email protected] for the executable. Put the executable
and all files with the following extensions into one folder: PNG,SCN, CFG, TER, CAM. Then simply run the executable.
|
|