Extensions:Uni-Verse/Radiosity

提供: wiki
移動先: 案内検索

Introduction

The radiosity module contains the functionality to calculate and perform necessary operations for realistic light simulation. The input must be colored polygons and light sources. Then, then radiosity module calculates the light distribution in the given scene and outputs the new colored polygons. This library can be integrated into other rendering systems to enable the computation of global illumination. The Radiosity Module was defined to be a rendering preprocessor within the High Performance Rendering Client, allowing a more physical based lighting then the standard rendering modes.

Description

The radiosity module was developed using C++, Visual Studio .NET 2003. Every time the scene is modified, the radiosity module processes the complete scenes, subdividing patches and distributing energies. The result of the processing is an illuminated subdivided view of the scene-patches. The module does not rely on coherences. It processes each scene change as if it is a complete new scene, so big changes in the scenes are allowed without time penalties. This allows the processing of fully dynamic scenes as they are described by Verse. The actual system processes the incoming data in 3 Steps:

  • In the first step a preprocessing is done which subdivides the single patches of the scene and calculates areas for the patches in a hierarchical way.
  • The second step does the energy distribution. This step uses the hierarchy to speed up the distribution process by merging far patches to illuminate them together.
  • The third step uses the information from the energy distribution stage to illuminate the patches and returns the illuminated polygon list.

Because Verse scenes are heavily dynamic the calculation time should be at least approximately to real-time. Using the combination of these three steps enables the library to achieve this goal.