may use other methods: store in rgbe (Ward, 1991),
or store textures with multi-exposure levels (Cohen
et al., 2001). Note that these two methods are not im-
plemented in the framework, only floating point an
byte textures are supported at the moment. Program-
mable shading describes a new paradigm of real-time
computer-graphics: Instead of a configurable fixed
function pipeline, parts of the pipeline are replaced by
programmable shaders (Mark et al., 2003). Shaders
are extensively used in the framework, as the only
way to enable flexible precalculated GI combinations.
The third area is the process of tonemapping: Phys-
ically plausible GI methods produce images with
an high dynamic range of the output luminance.
This high dynamic range has to be compressed to
fit the dynamic range of monitors. This process
is called tonemapping, refer to (Artusi, 2004) for
a good overview. Note that the described frame-
work is orthogonal to the problem of tonemapping,
as this framework creates source images to be used
with tonemapping. Therefore tonemapping is not in
the scope of this paper, however in Section 2.4.2 a
speed-up technique applicable to all luminance-based
tonemapping operators is described.
1.2 Organization of this Paper
This paper is structured in the following way: In Sec-
tion 2 the basics and the parts that make up the frame-
work are described. Section 3 shows performance
evaluations and screenshots obtained using the frame-
work. Section 4 serves as a conclusion.
2 METHODS
In this section we will at first describe the extension
to view independent GI precalculation in more de-
tail. Then an overview of the framework is provided
in Section 2.2, followed by a discussion of hardware
specific issues in Section 2.3. Finally, Section 2.4 will
provide details on implementation of specific parts of
the framework.
2.1 Method Details
The basic idea of the extension is simple: At first, the
GI precalculation are not created for the scene with
all light sources, instead they are calculated for each
light source (or group of light sources). After this step
multiple preprocessed GI data is now present for the
scene, one data set for each light source group. This
data can then be combined in Realtime, with arbitrary
scaling applied to either GI solution set. This way the
intensities of every group of lights can be changed in
real time without expensive precalculations.
There are some points to note. For this method to
be not only perceptually correct but physically plau-
sible, the light source interactions in the scene have
to be linear and thus separable for later combination.
Furthermore the combination of the multiple GI data
has to be performed in a linear space. This implies
following restriction on the format of the GI data: The
data must be stored either directly in a linear space, or
it must be stored in a way that can be decompressed
to a linear space for realtime combination. As actual
scenes may have a dynamic range of up to 1:400000
(Drago et al., 2003), the only way to directly store the
data in a linear space is by using floating point num-
bers.
2.2 Framework Overview
Figure 1 displays the components of the framework.
The framework takes n light-source descriptions as
input, and further splits them up into m ≤ n user
defined light-groups. An external GI solver is now
called for each light-group, this solver then creates
a GI-solution set for each light-group. After all GI-
solutions are calculated, there are two ways to apply
these solutions to the scene in real-time.
The first method is the fully hardware accelerated
path: Here a shader is generated based on parameters
determined during light-source splitup, as described
in Section 2.4.2. This shader is then applied during
scene-rendering and combines all GI-solutions. Af-
terwards tonemapping is performed on the combined
result.
The second method uses a software-fallback to
combine the solutions, the combined solution can
then be used during scene rendering. This approach
is described in Section 2.4.3.
2.3 Hardware Considerations
The linearity requirement described in Section 2.1
combined with the high dynamic range of actual
scenes, is the reason why this approach only works
straightforward on current graphics hardware, and can
not directly implemented into older hardware. To ex-
plain why this requirement poses a problem for older
graphics hardware, let us be more specific on how
view independent GI methods can be implemented
using current graphics hardware.
GI Implementation Let us assume a GI solution
that creates textures containing the lighting informa-
tion for the scene. These textures, called lightmaps,
contain the precalculated GI solution. Following the
previously described approach, multiple textures must
be created, one set for every light group. Those tex-
tures are used as source textures for a realtime frag-
GRAPP 2006 - COMPUTER GRAPHICS THEORY AND APPLICATIONS
336