JPBRT 0.5

JPBRT is a partial Java port of pbrt-v2, the physically-based rendering toolkit presented in the book "Physically Based Rendering, 2nd Edition; From Theory To Implementation" by Matt Pharr and Greg Humphreys; Copyright 2010; Morgan Kaufmann.

See:
          Description

Packages
org.jpbrt.accelerators Provides acceleration structures for ray intersection tests with a scene.
org.jpbrt.cameras Provides cameras for the projection of a scene onto a film.
org.jpbrt.core Defines the framework of jpbrt and provides implementations of its core classes.
org.jpbrt.film Provides films for storing the sampled 2D projections of a scene.
org.jpbrt.filters Provides filters for blending together multiple samples taken near a pixel into the final pixel value.
org.jpbrt.integrators Provides integrators for evaluating rendering equations over a scene.
org.jpbrt.io Provides a reader for the PBRT file format.
org.jpbrt.lights Provides light sources for a scene.
org.jpbrt.materials Provides materials for describing the surfaces of primitives in a scene.
org.jpbrt.renderers Provides renderers for projecting a scene onto a film.
org.jpbrt.samplers Provides a variety of sampling strategies.
org.jpbrt.shapes Provides a variety of geometric shape descriptions.
org.jpbrt.textures Provides a variety of texturing functions.

 

JPBRT is a partial Java port of pbrt-v2, the physically-based rendering toolkit presented in the book "Physically Based Rendering, 2nd Edition; From Theory To Implementation" by Matt Pharr and Greg Humphreys; Copyright 2010; Morgan Kaufmann.

I created this port for scientific purposes. The port currently only encompasses a few core classes of pbrt-v2 and a small number of implementation classes. The only thing JPBRT can do right now is rendering spheres, cylinders, cones, disks and paraboloids with a matte material and constant texturing using the "Whitted" integrator.

For most parts, the port closely follows the book. The biggest deviations are in the parser for the PBRT file format (which is a "hand-made" parser in this port and not a generated one), and in the avoidance of global states (such as avoidance of api.cpp), allowing to render multiple scenes simultaneously in the same Java virtual machine.

References to book pages are given in many places in the code, which should help you to find your way around this Java port. References are given to both edition of the books, where applicable.

The source and binary distributions of this port include a graphical user interface which is not part of the original pbrt-v2. I built the user interface on top of the JHotDraw 7 application framework and the Quaqua Look and Feel.

References

Links

License Terms

Like the original code of pbrt-v2, JPBRT can be licensed under the GNU General Public License, either version 2 or (at your option) any later version.

The additional user interface code, JHotDraw 7 and the Quaqua Look and Feel can be licensed under the same terms or alternatively under one of the following terms:


Copyright 2010 © by the authors and contributors of the JPBRT project.
Some rights reserved.