| |
Z Ray Tracer
About
Z Ray Tracer (ZRT) is a physically based
general-purpose ray tracer developed by
Hongzhi Wu as an effort to learn the
theories and practices of physically based rendering. Z stands for "zhui", a
Chinese character whose meaning is "trace".
R&D Log
07/13/2007 Implemented tone
mapping using bilateral filtering [3]. Some of the pictures below are adjusted
using tone-mapping.
05/06/2007 Used
flex and
bison to generate a parser for
our own scene description. Now ZRT is a completely data-driven command line
tool.
04/29/2007 Added 2d MIP-MAPed textures and cube map.
04/24/2007 Added
isotropic BRDF shaders for
both analytical(Ward) and measured-data (MERL dataset) models.
04/03/2007 Added support
for triangular meshes; Added a BSP tree based intersection accelerator for
meshes and a kd tree acceleration structure for the entire scene.
03/27/2007
Summary of previous progress: Established the overall general
purpose offline renderer architecture. Features area light, soft
shadows, indirect lighting (global illumination) shader and perfect
mirror shader.
Screenshots
Please click on the thumbnails to see the
original pictures.
|
 |
 |
 |
 |
 |
|
Point light.
direct diffuse illumination shader, 2x2x2 samples per pixel,
tiny area
light to approximate point light, 1 shadow ray. |
Soft shadows.
direct diffuse illumination shader,
3x3x4 samples per pixel, area light, 16 shadow rays. |
Indirect lighting.
global diffuse illumination shader,
3x3x4 samples per pixel, area light, 6 shadow rays, recursion depth = 4. |
Perfect mirror
perfect mirror and
global diffuse illumination shader, 3x3x4 samples per pixel, area light,
6 shadow rays, recursion depth = 4, mirror reflectance = 0.9. |
Two
mirror balls
perfect mirror and global diffuse illumination shader, 3x3x4 samples per
pixel, area light, 4 shadow rays, recursion depth = 4, mirror
reflectance = 0.9. |
 |
 |
 |
 |
 |
|
Three mirror balls
perfect mirror and global diffuse
illumination shader, 3x3x16 samples per pixel, area light, 4 shadow
rays, recursion depth = 4, mirror reflectance = 0.9. |
Mirror bunny and diffuse ball
perfect mirror and global diffuse
illumination shader, 3x3x4 samples per pixel, area light, 4 shadow
rays, recursion depth = 4, mirror reflectance = 0.9. |
Diffuse bunny and mirror ball
perfect mirror and global diffuse
illumination shader, 3x3x4 samples per pixel, area light, 4 shadow
rays, recursion depth = 4, mirror reflectance = 0.9. |
Silver bunny and
orange ball
measured isotropic BRDF global illumination shader, 5x5x6 paths per
pixel, 4 shadow rays, recursion depth = 4
BRDFs[2]: silver-metallic-paint, orange-paint |
Textured scene
global diffuse illumination shader, 10x10 paths per
pixel, 4 shadow rays, recursion depth = 4 |
 |
 |
|
|
|
Diffuse scene in a
lightprobe
global diffuse illumination shader, uffizi light probe, 10x10 paths per
pixel, 64 shadow rays, recursion depth = 4 |
Silver-metallic-paint ball
measured isotropic BRDF global illumination shader, 10x10 paths per
pixel, 64 shadow rays, recursion depth = 4 |
|
|
|
References
[1] Matt Pharr
and Greg Humphreys. Physically based rendering. Morgan Kaufmann Press, 2004
[2] Wojciech
Matusik, Hanspeter Pfister, Matt Brand, and Leonard McMillan. A data-driven
reflectance model. ACM Trans. Graph. 22(3):759-769, 2003
[3] Fredo Durand and Julie
Dorsey. Fast Bilateral Filtering for the Display of High-Dynamic-Range Images.
Proceedings of the 29th annual conference on Computer graphics and
interactive techniques : 257-266, 2002
Back to Cool Stuff
Last Updated
2007-07-13 23:01:02 |
|