HQR developer's part

1 - Structure of the platform

To develop a high quality rendering platform, many data structures and algorithms must be coded. The code development is organized into a framework consisting of several components. A component is a binary unit of well defined and tested behaviour. The components of the HQR framework can be classified in six categories:

HQR structure - Components

Input data

This category concerns components which are able to read and decode the input data.

X3DTKRealReflect

The X3DTKRealReflect component is an extension of the X3DToolkit library which takes into account new nodes designed for the specific RealReflect data (material are described by BTF representation and light sources by IESNA or EULUMDAT formats).

X3DParser

The X3DParser component is a parser which reads X3D files (with the additional RealReflect X3D component) and translates it to an internal data format specific to the HQR platform (see the Internal data category). The reader must be robust in order to avoid crash on bad X3D files.

Internal data

Geometry

The Geometry component handles object representations like sphere, cylinder, box, ... and more complex geometries like indexed face sets. In order to associate a material to an object an additional structure linked to the geometry is supported: a parametrization, which may take the form of an analytic function, or a list of texture coordinates. Additionally, the component implements fast and robust intersectors between those objects and rays (3D half-lines), taking into account a linked parametrization. This component handles many classical tools like basic manipulations on points and vectors or geometrical transformations.

Material

The Material component handles representation of classical material properties described in the X3D specifications (Phong model) and a representation of specific BTF models. It computes interaction between photons and material using appropriate methods.

LightSource

The LightSource component handles a representation of the light (a packet of photons with an energy described by a RGB spectrum), a representation of classical light source properties as it is described in the X3D specification (directional light and point/spot light) and a representation of specific light source properties (based on IESNA or EULUMDAT formats). Furthermore, it provides a method for emitting photons from a light source according to its characteristic.

Output data

This category concerns components which are able to export data from simulations.

StillImage

The StillImage component handles two image formats: a standard image format (PPM) and a High Dynamic Range (HDR) format using the free OpenEXR format. It allows to export (write) into those formats.

SLF

SLF The Surface Light Field (SLF) component handles a representation for SLFs which are an approximate solution of the light equilibrium a scene equation given on each surface. It allows to export (write) into this format.

Data management

DataManager

The DataManager component is essential and have a central position in the framework. It manages all internal data i.e. controling the coherence between the different data and supervising access (read/write) to those data.

Rendering kernel

Scene

The Scene component handles representation of a scene graph. Its main goal is to provide a data structure able to compute fastly ray-objects (surfaces) intersection computations. Particularly we use a Kd-Tree to define a spatial localization of objects in a scene.

RenderingKernel

The RenderingKernel component is the implementation of the photon mapping. It handles data structures (particularly photon maps) and algorithms to perform the two passes (buliding photon maps and reconstructing information).

Common tools

Tools

The Tools component handles several tools like uniform random generator or mathematical tools.


Valid XHTML 1.0! Valid CSS! Last modified on Thursday, March 16, 2005.