Requirements
In order to run the render cache you must have the following
requirements. Please do not send me mail complaining that it
doesn't run if you
don't have all of these (e.g., if you have a Pentium III or an Athlon,
the
render cache will not work). For other systems, the brave and/or
foolish can download the full source code (under GPL) and adapt
it. Regardless you can still look at the sample images on the activities pages to get some idea of what
the
system looks like, even if you can't run the render cache yourself.
- Pentium 4 processor or better. Because the render
cache uses SIMD instructions including the SSE 2 SIMD extension, you
must
have a processor that supports these. Currently that means you
must
have a Pentium 4 or equivalent. I wrestled with this decision for
a while but,
the
SIMD extensions do make the code run faster, and
essentially all future x86 processor (including AMD) have announced
support for the
SSE 2 extension.
- Microsoft Windows OS. I have no great fondness for
Microsoft or Windows, but it happens that my desktop machine and most
of the machines that I have access to run Windows. I'd like to
make other versions available (e.g., linux, Mac OS X), but it would
require port the code (synchronization primitives and SIMD rewrite for
non X86 processors). The code has been tested under Windows
2000, but should run under most versions of Windows.
- Java Web Start. This is a free download from Sun's Java Web Start
page. While the render cache itself is written in C++ and
included as a dll (dynamic linked library), the demo program (GUI) and
ray tracer are written in Java. This just made it easier for me
to create and
deploy the sample application. You must have Java version 1.3 or
later
(can be installed as part of the web start installation).
- A willingness to run potentially unsafe code.
Although I have had no problems with this render cache
implementation and it seems to be quite stable, use at your own risk.
The installer will warn
you that you are running unsafe code. Because the render cache is
implemented in a dll, it potentially has access to your full machine
and
could theoretically cause problems. As I said, I have had no
problems,
and render cache is not programmed to access anything on your computer
or
hard drive, except those files included in the download. But you
should
use the same caution that you would for any executable that you
download
from the web.
Contents
The downloadable software consists of three components;
- The Render Cache library. This library implements
the render cache as described by the references in the bibliography.
This is highly optimized implementation written in C++.
This is the heart of the system and the reason this web site
exists. The rest is just enough of a wrapping around this library
to allow you to try out the render cache quickly. I also
encourage people to try connecting their own rendering
systems (must be
ray based) to the render cache library. This release does not
include the source code to the render cache library, as
I do not currently have permission to release that, but does include
source for the GUI and demo application (in Java).
- A Simple Java Ray Tracer. Since the render cache is
designed to work with an underlying renderer, I put together a rather
minimalist
ray tracer to use for the sample application. It contains just
enough
code to be functional, but it is neither particularly optimized (just a
standard regular grid acceleration structure) nor fully-featured (for
example, it
does not support textures). It is intended to be just enough to
demonstrate the basic abilities of the render cache. If you like
what you see (as I hope), then I encourage you to try configuring your own rendering software to
work with the render cache.
Note: the current license
does not allow commercial use or redistribution of the render cache
library, but you can use it for evaluation purposes.
Source code is included for the ray tracer.
- A Sample Java Application with user interface. Just
an interface for configuring and manipulating the render
cache and demonstrating how easy it is to connect the render cache to
any ray-based renderer. It provides: key and mouse controls for
manipulating the camera, ability to configure various render cache
options including disabling several of the recent extensions, and three
simple environments for you can walk around in. Source code is
included for the sample application.
Java Source Code and Render
Cache
library - This file contains the Java source code for the
example application and ray tracer as well as the compiled native
library (dll) for the Render Cache (plus new C bindings). You can
use it to modify the
application or to learn
how to connect the Render Cache to your own rendering system. You
can expand this file using the command "jar xf
rendercachejavasource.jar" or any program that knows how to expand jar
files (this is not an executable jar, just an archive of source files).
C++ Source Code - We have now
also released the C++ source code for the render cache library under
the GNU Public License. You can use this to get and modify the
render cache and adapt it to run on other systems.
Bibliography
- Bruce Walter, George Drettakis, Steven Parker, Interactive
Rendering Using the Render Cache, in Rendering Techniques '99,
G.
Larson, D. Lichinski (eds), Springer-Verlag, (Proc. 10th Eurographics
workshop on Rendering,
Granada, Spain.)
- Bruce Walter, George Drettakis, Donald P. Greenberg, Enhancing
and Optimizing the Render Cache,
in Rendering Techniques 2002, (13th
Eurographics Workshop on Rendering. Pisa, Italy),
Springer-Verlag, pp. 37-42, 2002.