RadiosGL logo OpenGL logo


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.






For questions, comments, and bug reports (or if you're having trouble with the website), email jcr13@cornell.edu
Visit HardenedCriminal software to check out other open source projects:
HardenedCriminal software

since 2-11-2000