The Lightflow Rendering Tools are a powerful set of tools
made to create photorealistic images from three-dimensional
scene descriptions.
These tools implement the Lightflow Rendering Interface,
an object oriented programming interface to synthetic rendering,
which provides a common environment and description language to
treat light distribution in three-dimensional spaces.
The Lightflow Rendering Tools are actually implemented as a standard ANSI C++ library, since this language has the necessary class-based control structures together with a fast code production and a good popularity. However the interface is not based on C++, but it is rather represented with its formalism. Any class based language could be used instead.
The aim of the Lightflow Rendering Interface is complete control over geometry and lighting,
that is to say appearence. This is why it adopts an object oriented approach: the rendering
realm is composed by abstract classes, the main of which are objects, light sources and materials.
All these class entities are not well defined, but they represent the structure and functionality
of each instance that belongs to them. For example objects are made up of surfaces which have some
materials associated to them, and materials are procedures that control the appearence of each surface
point in relation to the light that reaches it.
Lightflow allows to describe in an efficient way new instances and subtypes of those fundamental
classes, giving to them a consistent and flexible interface.
Flexibility is actually the main source of power of this innovative system that will mantain
its consistency even after major developments and changes in the Computer Graphichs world.
The Lightflow Rendering Interface is divided into two
parts:
the Client Side and the Server Side.
The first part is a high level interface that allows the users
to set up scenes using proxies of the underlying classes, the
ones that really do the work. This concept is fundamental: any
scene element is only an image of the real one.
This allows an extreme flexibility, since the construction of a
scene can be redirected to various outputs. For example one
could redirect it to a file for future reuse, or even to a remote
computer for network rendering. All of this can be made
transparently, without any effort from the user, simly using the
correct proxies (e.g. the file or the network proxy).
On the contrary, the Server Side is the concrete
implementation of the abstract interface, that is to say the set
of classes and procedures that provide the functionalities
required by the users to render their images. Extension is
performed at this level only.
This manual covers the Client Side API of the Lightflow Rendering Tools, concentrating on the real making of new scenes and on the set of extension classes already available inside the current implementation.
This manual is aimed to teach how to use the Lghtflow Rendering Tools, while it is not meant as a three-dimensional computer graphics reference book. The reader is supposed to be already expert in this field and to have some acquaintance with object oriented programming and C++. As regards the necessary mathematical knowledge, the reader should have at least familiarity with vectorial math, that is to say geometry. If any of these requirements is not satisfied he could consult one of the many texts on the subjects before starting reading this book.
Next