Up

Introduction



About Lightflow

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.

This manual describes a Python module that will let users take advantage of the Lightflow Rendering Tools power without having to acquire a deep insight into them. This means it is only a partial wrapping of the underlying interface, which does not provide access to all of its functionalities, such as extension, but that makes possible the description of the most complex scenes using the built-in tools.
Python is an effective high level object oriented programming language that has been choosed because of its simplicity, that allows non-programmers to learn it in a few days, though guarantying an immense flexibility to the expert ones.
So if you do not know Python do not despair, take its manual and read it carefully, and you'll see that things will go on by themselves.


Requirements

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, if not with python. 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