|
A new radiosity implementation featuring an OpenGL-based realtime viewer.
(free and open-source, of course)
This free package contains two pieces of software:
RadiosGL-- command line, non-realtime radiosity renderer.
RadiosGLView-- realtime OpenGL radiosity scene viewer.
Screenshots
These unretouched screenshots were taken while exploring a test environment with the OpenGL viewer. This test scene was designed to showcase some of the environmental features the radiosity method does well with, e.g., diffuse surfaces, soft shadows, and non-point light sources.
(click to enlarge)
Features
The non-realtime radiosity renderer has the following features:
-- dynamic and non-dynamic triangular patch subdivision with a variable threshold
-- form factor calculation using the hemicube method
-- variable hemicube sizes
-- radiosity equation solved using an iterative method with a variable threshold
-- texture generation from patch radiosities using projection, triangulation, and linear interpolation
-- dynamic texture sizing
-- texture smoothing
-- texture blending between neighboring, coplanar patches
-- gamma correction
The realtime viewer has the following features:
-- OpenGL-based rendering, which supports the majority of available hardware 3D accelerators
-- Windowed and fullscreen modes
-- Stochastic texture dithering (for 16-bit accelerators like Voodoo2/3)
Utilities are included to support the following operations:
-- Generating custom precalculated hemicube files of arbitrary size
-- Converting between .vrml and .mdl (RadiosGL model) files
Downloads
Command-line renderer
|
Unix
|
RadiosGL.tar.gz -- Source code (app and utils) and demo files tarred and gziped. (144 k) (ver. 1.0)
All implementations of Unix can download and install from this archive, which includes a script for compiling RadiosGL using standard g++ development tools.
Quick instructions:
Download, and then de-gzip by typing:
gzip -d RadiosGL.tar.gz
Then de-tar by typing:
tar -xf RadiosGL.tar
You should now see a new directory, RadiosGL. Switch to this directory and compile RadiosGL by typing:
compile
To test whether RadiosGL is installed properly, execute the test run script by typing:
run
|
Mac
|
RadiosGL.sit -- MacOS PPC application, utilities, and demo files in a stuffit archive. (151 k) (ver. 1.0)
Quick instructions:
Download and unstuff. Run RadiosGL.app. Since the MacOS has no command line, 0 arguments are passed into the program,
which causes it to read arguments from the file RadiosGL.ini instead. The included RadiosGL.ini file has parameters
suitable for rendering the small test scene included.
|
Windows 95, 98, NT
|
RadiosGL.zip -- Win32 (Win95, 98, NT) executable, utilities, and demo files in a zip archive. (131 K) (ver. 1.0)
Quick instructions:
Download and unzip. Run RadiosGL.exe from the command prompt with appropriate arguments. The included RadiosGL.ini file has parameters
suitable for rendering the small test scene included.
|
|
OpenGL realtime viewer
A 3D accelerator card is recommended, though OpenGL software rendering will work...
|
Mac
|
RadiosGLView.sit -- MacOS PPC application and demo file in a stuffit archive. (191 k) (ver. 1.0)
Quick instructions:
Download and unstuff. Run RadiosGLView.app. Settings are in the RadiosGLView.ini file. The included test file (test.rgl) is a rather boring scene
which includes several lighted pyramids, generated by RadiosGL with low-quality settings.
Note:
The viewer requires that OpenGL is installed on your system. You can download the MacOS version of OpenGL from the
Apple OpenGL site. The Apple install includes OpenGL and GLUT.
If you have a Voodoo2/3 3D card, you'll need Mesa to use it for OpenGL.
|
Windows 95, 98
|
RadiosGLView.zip -- Win32 (Win95, 98) executable and demo file in a zip archive. (81 K) (ver. 1.0)
Quick instructions:
Download and unzip. Run RadiosGLView.exe. Settings are in the RadiosGLView.ini file. The included test file (test.rgl) is a rather boring scene
which includes several lighted pyramids, generated by RadiosGL with low-quality settings.
Note:
The viewer requires that OpenGL is installed on your system. You can install the Win32 version of OpenGL using
GLSetup.
You will also need to install GLUT. You can download this from the Nate Robins' OpenGL page.
(You may be wondering why this doesn't come in one nice package...)
|
|
Nicely rendered scenes
Scene featured in the above screenshots:
gallery.sit ( 283 k )
gallery.zip ( 269 k )
Sample MDL files that you can try rendering yourself:
sampleMDL.tar.gz ( 4 k )
sampleMDL.zip ( 5 k )
If you've got a nice scene that you've designed and rendered, please
contact us by email and we'll post it here.
Documentation
Using RadiosGL (the command-line renderer)
Using RadiosGLView (the OpenGL viewer)
Using the RadiosGL utilities (MakeHemicube and vrml2mdl)
The MDL file format specification
The RGL file format specification
An off-site page describing the principles behind radiosity
Code Acknowledgements
Triangle
Triangulation code by Jonathan Richard Shewchuk at Carnegie Mellon University. Visit the
Triangle website for details.
Triangle was used to find a Delaunay triangulation of sub-patch centers when projecting
sub-patches to produce patch textures. Linear interpolation was then performed along
edges found by Triangle to produce smoothly shaded patch textures.
The needed Triangle source files are included with the RadiosGL source below. For up-to-date
versions of this source, please consult the Triangle website.
Source
Browse the source directory.
Modeling tools
The MDL format
|
The MDL format is a very simple text format for triangle scenes, basically listing 3 floating point vertices
and a color for each patch in the scene. It's simple enough that you can edit it with a text editor. However,
developing complex scenes with a text editor is very tedious.
|
The VRML format
|
The VRML format is "partially" supported by RadiosGL. The included "vrml2mdl" utility can be used to convert
certain VRML files to MDL files. VRML files must contain only colored triangles, and only one VRML file making
application, Stomp3D has been tested. Fortunately, Stomp3D is powerful, free, and written in Java: it should suffice
for most of your modeling needs.
|
Stomp3D
|
After evaluating several different free 3D modeling packages, Stomp3D was found to be the best. It can be used to export
VRML files which can then be converted to MDL files. Full details on modeling with Stomp3D can be found on the
official website.
Download stomp.jar from our archives. It's a Java application that should run on VMs that
support 1.1 or later.
Quick Stomp3D instructions:
After modeling a 3D scene with Stomp3D, separate it into two separate scenes: the light-emitting patches, and the non-emitting
patches. Convert all polygons to triangles using the "triangulate" function in Stomp3D. Then, flip all polygon normals using the
"flip" function in Stomp3D. Export each scene, the light and non-light patches, as a separate VRML files. Keep track of the total
number of patches (triangles) in the scene.
Run vrml2mdl on the two VRML files, which will merge them into one MDL file. You can now run RadiosGL on the MDL file to
do the radiosity calculation.
|
A call for help
|
If you read through the above procedure, you'll discover that it's a pain in the neck! Most users will want to use
their favorite 3D modeler and a format more flexible than VRML. However, RadiosGL, being a radiosity implementation,
only supports planar patches, and to simplify the code, only supports triangles. This rules out many popular 3D formats,
unless heavy conversion is implemented (e.g., converting primitives like spheres to triangle patches).
Help is needed from those of you familiar with various 3D file formats. The MDL format is extraordinarily simple, and we
need utilities that can convert between popular formats and MDL. However, we would like the utilities to work with all the
nuances of the popular format, converting unsupported primitives into triangles, etc. If you think you can do this (using Std C/C++
for portability) please do. Email us, and we will post your utilities for download.
|
|