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)