Panorama README
===============

  Panorama is part of the GNU project. For more information about it, visit
 the URL 'http://www.gnu.org'. It is released under the GPL license, that you
 can read in the file 'LICENSE' in this directory.
  
  Panorama is a framework for 3D graphics production. This will include
 modeling, rendering, animating, post-processing, etc. Currently, there is no
 support for animation, but this will be added soon.

  Functionally, it is structured as an API, composed by two dynamic libraries,
 and several plugins, that you can optionally load in runtime. A simple
 console mode front-end for this API is included in the package, that can load
 a scene description in one of the supported scene languages, and then outputs
 a single image file in any of the supported graphic formats.

  A graphic front-end to this API has been started, and it is waiting for
 people to help develop it. This GUI will initially be only a basic interface,
 but may be extended with a full modeller in the future. Anyway, this interface
 will not be mandatory, and other interfaces or modelers can be used, as long
 as they use Panorama API or outputs some scene language that Panorama can
 read.

  The idea of an integrated framework, instead of a bunch of little programs,
 is to allow better interaction of modules. This way better and faster code can
 be done.

  Panorama can be easily extended with plugins. Plugins are simply dynamically
 linked C++ classes. You can add plugins without recompilation, and even in
 runtime, when this option is added to the graphic interface.

  Its main features are:

   - Plugin architecture. Most elements in the system are plugin's. This means
     components are loaded as needed, and can be substituted, added, etc
     without recompiling anything. This will let third parties distribute their
     plugins outside the main distribution.

   - Object oriented scene description language, with classes, inheritance,
     etc. It's easy to use, and has a simple syntax.

   - Scene language is a plugin itself, so any other scene language can be
     used instead.

   - Several rendering methods are possible without any other change in input
     scene file. Currently supported methods are raytracing and zbuffer, but
     other methods are being tested and will be incorporated in the future.

   - A postprocessing system lets you apply filters to the whole image after it
     has been generated by renderer.

   - Similarly, there are object filters, that you can apply to an object in
     the rendering process. This means a new class of effects  (e.g. a
     cartoon-like object in a photorealistic scene).

   - Materials have a BSDF (Bidirectional Scattering Distribution Function)
     that encapsulates its properties with respect to the light. Now, only
     Lambertian and Phong BSDF's are implemented, but more sophisticated ones
     will follow, like Schlick's, Ward's, etc.

   - Many others I don't remember right now :)
   
  The project is still in alpha form. It can already be used, but lacks some
 important features, and has not been thoroughly tested by users. So it is not
 intended to be used in any serious project, but by users who want to test it
 and help it to become stable.

  In its present form, it is more oriented for developers, who want to try
 their own algorithms, implement needed features or help debugging the program.
 If you are interested, please read the file 'PROJECTS' in 'doc/developers'
 directory.

  You can find more information about Panorama, or download latest distribution
 at:

   http://www.gnu.org/software/panorama/panorama.html

  For bug reports you have a mailing list, bug-panorama@gnu.org. To subscribe,
 send an email to bug-panorama-request@gnu.org with the word 'subscribe' in the
 subject.

  There are two other mailing lists, help-panorama@gnu.org for questions about
 the use of this package, and devel-panorama@gnu.org, for developers.
  
  For other questions you can email ajimenez@vnet.es

===

 Angel Jimenez Jimenez  (ajimenez@vnet.es)
 Carlos Jimenez Moreno  (carlosj@leader.es) (carlosj@vnet.es)
