Codebase list fracplanet / HEAD
HEAD

Tree @HEAD (Download .tar.gz)

ABOUT
=====
Fracplanet generates random planets and terrain areas with oceans, 
mountains, icecaps, lakes and rivers.  Parameters are specified interactively 
and the results displayed using OpenGL.  The generated objects can be
exported as Pov-Ray or Blender models, or as textures.

It uses C++ (with STL and boost), Qt and OpenGL.  

Home page: http://www.bottlenose.demon.co.uk/share/fracplanet

Author: timday at timday dot com

LICENSE
=======
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

[The license should be in the LICENSE file in this directory]

BUILDING
========

Either
  qmake VERSION_NUMBER=x.x.x && qmake
or
  ./BUILD.sh
will do the same thing using the version number from ./VERSION.
(BUILD.sh assumes a Debian qt setup where a -qt=5 option can be used to select qt version; -qt=4 should also work).

This should give you a "fracplanet" executable which you can run with
  ./fracplanet
or copy to wherever you like (see INSTALL section below).

Besides the basic manual page in man/man1/fracplanet.1. there's some usage documentation in fracplanet.htm.
This is processed into a usage_text.h included in the build by the builtin-docs-update.sh script.
But usage_text.h is under version control and bundled in the release tarball so there shouldn't be any need to run builtin-docs-update.sh unless you edit fracplanet.htm.

BUILD OPTIONS
=============
Qt's qmake builds the Makefile used to build the application
so to change compile options you should mess with the fracplanet.pro
(if you do change it, do a "make distclean" before 
you rebuild to make sure Makefiles are rebuilt)
or provide overrides on qmake's command line. 

USAGE
=====
User documentation is contained in fracplanet.htm and accessible
from the ABout tab of the application while running.

If you just want to dive in all you need to know is this:
  
After changing ANY of the terrain generation parameters, you must 
hit "regenerate" to create and display a new model.
This keeps the random seeds for terrain and river generation the same.
There are a couple of extra buttons which also change the random seed 
for the terrain or river network before regenerating,
Most of the parameter entry fields have tooltips on them which 
give an idea of what they're about.
To begin with it's best to start by making small changes
to most parameters, especially the number of subdivisions.

PERFORMANCE
===========
The biggest factor influencing performance (both generation and 
display) is the degree of subdivision.  For 9 subdivisions
(for a planet) around 260MB of memory is required.  10 subdivisions
needs just over a gigabyte.  Needless to say, if it starts swapping,
it's not pretty.
Generation of rivers and lakes can also be time consuming.

FSAA/MULTISAMPLING
==================
In the past, fracplanet has been got to run nicely antialiased on NVidia hardware and drivers simply by doing
  __GL_FSAA_MODE=7 ./fracplanet
Check your graphics card's documentation for current relevant options.

INSTALL
=======
Doing 
  make install
no longer attempts to do anything useful.
The only build product is the executable "fracplanet";
simply copy it wherever you like.

Other files of interest are:
  man/man1/fracplanet.1
  fracplanet.htm fracplanet.css
  BUGS TODO THANKS NEWS

OTHER STUFF
===========
Probably only of interest to those actively developing the code:

 - mktgz builds the tarballs released on sourceforge.

 - mkdeb builds .deb binary installables for Debian systems.
   (It probably assumes you have things pbuilder set up in a certain way).

 - mkdoc (in the CVS, not distributed) builds source-code
   documentation using doxygen.