Home

Courses

Resume

CSCIE234 Homepage

 

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.

 

 
Hosted by www.Geocities.ws

1