JaTrac — open image synthesis framework
JaTrac is an object-oriented rendering system developed to encourage and facilitate experimentation with image synthesis algorithms. The main principles guiding system's design were extendibility and clarity, as it's also used in education. While majority of present-day renderers is written in C/C++, I chose Java for its portability and ease of debugging. Speed was not an important factor on my list of priorites, nevertheless I didn't find Java's performance problematic.
JaTrac's architecture is built around robust ray tracing core and over last year has been progressively enhanced with features covering various aspects of image syntesis. Current implementation includes:
- primitives: spheres, rectangles, cylinders, triangles and procedural objects,
- materials: spherical, planar and cylindrical mapping of multiple weighted materials,
- textures: procedural and image-based, color and bump-mapping,
- lights: point, linear and area,
- antialiasing: Monte-Carlo, stratified Monte-Carlo and adaptive,
- tone mapping operator: gamma correction,
- input formats: Integra, geom and custom (XML-based),
- reflection model: Phong with Schlick's Fresnel approximation,
- intersection testing optimization: uniform grid,
- global illumination: photon mapping with irradiance gradients and path tracing
Who's to blame?The principal (and currently the only) programmer on this project is Miloslaw Smyk (thorgal AT wfmh DOT org DOT pl). JaTrac was created as a part of the work on my PhD and my advisor is Dr. Karol Myszkowski who also contributed many valuable ideas to this software.
What to expectJaTrac is being prepared for release with full source code (GNU GPL). I am currently working on DEPT and some improvements to shader interface, although I tend to implement things at random, so soon something else may find its way into JaTrac, too.
Updated: 2002-07-20 by Miloslaw Smyk.