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):
- Multi-threading - 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 speed-up 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 multi-threaded, buffered, the
number is controllable within a factor of 2, is completely deterministic
because of trajectory splitting using quasi-random sequences, has a bug
fix for photons bouncing infinitely against two-overlapping 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(S|D)*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 Photon-map 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 ray-triangle 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 non-uniform 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 axis-aligned 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 same-triangle 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 multiple-diffuse component
- two sided lighting for both point lights and area lights
- new ray-triangle intersection code (from Moller) is 10-30% 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 triangle-cube 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 triangle-intersection 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)
- Ray-tracing with Jensens's 4-component 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 quasi-random 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 quasi-Monte 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 ray-triangle intersection (using Moller's code)
- Does raytracing
- Saves to file
| |