Cornell Box similar to Henrik Wann
Jensen's.
200,000 photons. 50,000 caustic photons.
600 gather rays. 4 samples per pixel.
Triangles: 11,682
Resolution: 1024x768
Rendering time: 5 minutes

photon map
15 seconds

Seminar room  Front view. Model by Tony Giordano.
5,000,000 photons. 400 gather rays. 16 samples per pixel.
Triangles: 79,795
Resolution: 1400x466
Rendering time: 29 minutes


Mouse neuron  dendrite. Data courtesy of Dr. Ouimet, FSU Biology.
4,000,000 photons. 2,400 gather rays. 8 samples per pixel.
Triangles: 155,164
Resolution: 2048x2048 (originally)
Rendering time: 12 hours


Brain in a box  Model by Josh Grant.
1,000,000 photons. 300 gather rays. 4 samples per pixel.
Triangles: 609,718
Resolution: 1024x768
Rendering time: 23 minutes


Cornell Box similar to Per H.
Christensen's.
400,000 photons. 3,000 gather rays. 4 samples per pixel
Triangles: 14,418
Resolution: 1024x1024
Rendering time: 16 minutes


Another box scene.
200,000 photons. 500,000 caustic photons.
600 gather rays. 4 samples per pixel.
Triangles: 7,244
Resolution: 1024x768
Rendering time: 21 minutes


11/26/03
Extensive revisions (over 40 checkins to RCS):
 Multithreading  removed a bunch of static variables, added parallel random number
generators, buffered photon storing, mutexes for irradiance cache and
output. I see about a 2.25 speedup on my dual Xeon machine w/ hyperthreading.
 Diffuse transparency  looks like frosted glass, can be used for
subsurface scattering effects
 Major overhaul to photon emission  is multithreaded, buffered, the
number is controllable within a factor of 2, is completely deterministic
because of trajectory splitting using quasirandom sequences, has a bug
fix for photons bouncing infinitely against twooverlapping surfaces, limits
the use of Russian Roulette when one color component is too large, and photons
have a flag for which light source they came from
 Made several improvements to the irradiance cache based on the Radiance source code:
cache point radius reduction with min and max size, translational gradient reduction,
improved inclusion (wi>1/a) testing (speed/artifact removal), and
fixed the rotational gradient.
 Experimented with L(SD)*S+D caustic photons, went back (to LS+D) due to
noisy caustics
 Added minimum ray distance before using approximate solution, based on
scene size. Also, gather rays are specularly reflected  earlier renderings
were missing this subtle component.
 Added cubic interpolation between camera keyframes, for animations
 Experimented with Photonmap based importance sampling for indirect illumination,
went back (to stratified sampling) due to inferiority in Cornell scene.
However, for strong indirect lighting the PM IS is superior.
 Variance control  added but not really used, this allows you to limit
the variance in a pixel's samples
 Reworked ray object  various things are now stored in the ray, including
hit position, length, barycentric coordinates, and thread context
 Fixed specular reflection going into surfaces
 Fixed overlapping surfaces intersection
 Tuned raytriangle intersection code for accuracy/speed
 Easy to control Russian Roulette for recursion
 Added README file  the first inclusion of any form of documenation.
Includes the commands used to create two of the above Cornell Box renderings.
 Bibliography coming soon...

An animation of a mouse neuron that I made in July. 
10/24/03
The variance in the cornell box scene. The variance has variance, doh. 
10/23/03
I got a new workstation :)
 Dual 3.0Ghz Xeons
 4Gb RAM
 Dual 23" cinema displays
 QuadroFX 2000
 Dual boot redhat9 and windowsXP
 vmware
mouse neuron rendered as glass
(model scanned with confocal microscope
by FSU Neuroscience dept.)
1024x768 25 samples 1.3 hours 
very thin ring on wood table
1024x768 50 samples 2.5 hours 
1 light sample, according to area of luminaire
p=1/A, 1.78 seconds 
1 light sample, according to solid angle of luminaire
p=1/w, 1.89 seconds 
9/2/03
 Russian Roulette for refraction rays
 Imporantance sampling  direct lighting samples with
probability proportional to solid angle (instead of area),
from a gem by Changyaw Wang
 Stratified pixel sampling with nonuniform distribution (warped by tent
filter weighting, from Realistic Ray Tracing 2nd edition)
 More precomputation for faster direct lighting with many luminaires
 Minor component mixing fixes
 Better photon map viewing options
 Can scale textures
 Compiles on Redhat 9
1024x768 16 samples 4.3 hours 
1024x768 16 samples 1.8 hours 
1024x768 16 samples 2.4 hours 
8/21/03
 fixed irradiance gradients
 stratified light source sampling
 separate pass for precomputing indirect illumination
 attempt at fixing edges (needs more work)
 bugfix for axisaligned octree traversal (7% speed hit)
 octree traversal optimization (3% speed gain)
 fixed photon bouncing through glass
8/13/03 (6 minutes)
 Irradiance Caching
v
 Irradiance Gradients
 Photon Filtering
 No sametriangle intersection
800x600 500 paths/pixel, 5.8 hours (2.4GHz CPU) 
1280x960 16 samples, 30 paths/sample 6.7 hours (2.4GHz CPU) 
8/7/03
 stratified sampling in multiplediffuse component
 two sided lighting for both point lights and area lights
 new raytriangle intersection code (from Moller) is 1030% faster
 binary PPM output
 fixed caustics (was using precomputed solution  wrong!)
 fixed precomputed irradiance estimate (now finds nearest photon,
so less noise)
 bug fix plus new trianglecube intersection (again from Moller),
octree creation is 10x faster (~3 seconds for seminar room scene)


800x600 500 paths/pxel 6.5 hours (1.7GHz) 
1280x960 440 paths/pixel 4 hours (2 2.4GHz CPUs) 


1280x960 200 paths/pixel 4 hours (2 2.4GHz CPUs) 
1280x960 200 paths/pixel 4 hours (2 2.4GHz CPUs)
Glitch in intersection with the chairs

7/23/03 
 Importance sampling multiple luminaires (Shirley)
 Check to prevent repeated triangleintersection tests
7/22/03 (100,000 photons fired / 100 in estimate for Global map,
20,000,000 photons fired / 200 in Caustic map, 50 paths/pixel, 10 minutes)
 Precomputed irradiance stored at each photon (Christensen)
 Fixed color bleeding
 Separate global and caustic photon map sizes/estimates
 Model made even more similar to Jensen's
7/21/03 (1,000,000 scattered photons, 100 in estimate, 50 paths/pixel, 5
minutes)
 Raytracing with Jensens's 4component scheme in his book
 Automatic maximum search radius (Suykens)


Direct illumination only (100 samples/pixel, 3 minutes) 
Global photon map (70000 photons in map, 30 seconds) 
7/20/03 
 Radiometry values all computed accurately in metric units (W, m)
 Storing photon map using Jensen's book implementation
 Global photon map visualization
 Fixed specular and refractive recursion bug
 Fixed refraction attenuation
7/18/03 (85000 scattered photons, 3 seconds)
 Spectral photon emission, scattering, absorption
 Photon map visualization


10,000 paths/pixel, 35 hours 
Example octree 
7/13/03 
 Rendered with Monte Carlo Path Tracing with OUT quasirandom sampling


1000 paths/pixel 5.7 hours 
sobol seq. vs. uniform random seq. 
7/13/03 Maximum depth=5 


10 paths/pixel 4 minutes 
100 paths/pixel 24 minutes 


1000 paths/pixel 4.1 hours 
100 paths/pixel 40 minutes (interesting error occurred) 
7/12/03 Maximum depth=5 
 Halton sequence for quasiMonte Carlo integration
 Higher computation times but better results (in 1000 paths case)


Larger light, less noise 
Smaller light, more noise 
7/11/03 Maximum depth=5 1000 paths/pixel 1.5hrs (each) 


1 paths/pixel 14 seconds 
10 paths/pixel 2 minutes 


100 paths/pixel 33 minutes 
1000 paths/pixel 6.1 hours 
7/2/03 Maximum depth=4 
6/23/03 (6 hours 40 minutes 800x600)
6/23/03 (13 minutes)
6/21/03 (5 minutes 26 seconds)
 Area light sources (100 rays per source)
6/21/03 (1 hour 17 minutes, fullsize image is 1024x768 15samples/pixel)
6/21/03 (65 seconds)
6/21/03 (18 seconds)
6/14/03 (78 seconds)
 interpolated normals
 grazing reflected angles fixed
 25 samples per pixel
6/09/03 (9 hours)
6/09/03
6/09/03 (51 hours)
6/09/03
6/02/03 (3 seconds)
5/23/03 (2 seconds)
5/22/03 (Debugging image >60fps)
 Debugging traversal (obviously broken)
5/20/03 (Debugging image >60fps)
5/11/03 (1 second)
 Point lights (multiple)
 Shadow rays
5/11/03 (4 seconds)
5/08/03 (4 seconds)
4/23/03 (4 seconds)
 Loads scenes, stores triangles in linear list
 Shows Preview (using Inventor)
 Performs raytriangle intersection (using Moller's code)
 Does raytracing
 Saves to file
 