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. There are
several models: Lambertian, Phong, Ward, Schlick, Cook-Torrance, 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)