JARA is a educational 100% Java based ray tracer.
The primary focus of this package is to teach and help explore path tracing graphics not performance. Altough certain systemic performance measures like spatial partitioning are put in place to teach these concepts.
If you are interested in some fundamentals about path tracing you can download this presentation: Basic Path Tacing PDF
If you like JARA or have constructive critique dont hesitate to write us directly on [email protected]. We are always happy for qualified feedback!
Have a great day!
Benjamin Schiller
"Look up to the stars not down on your feet. Be curious!" Stephen Hawking 1942 - 2018
- PBR Materials with Textures
- Transparent Materials
- Custom Procedural Materials
- Load OBJ Files (using own lightweight ANTLR based parser)
- Camera with depth of field
- Spatial Optimization (ongoing)
- Primitives: Sphere, Plane, Triangle, Disc
- Lighting by either ambient and directional light (creating algorithmic background) or 360 backgrounds
- Support for .HDR file format for backgrounds
- Optimize spatial optimization
- Optimize handling of high intensity differences in rendering by allowing non linear mappings into RGB space
- Add configurable denoising
- Add configurable post FX
- Allow dynamic settings and camera in app
- Provide file based scenes either using default file format or little own format
- Allow dynamic texture handling for supporting more materials in the same scene
- Split materials (data) from shaders (algorithms) to allow easier customization
- Add tutorials
Car loaded as OBJ exported from Blender (see source here)
House loaded as OBJ exported from Blender (see source here)
Example showing different materials (see source here)
Chair loaded as OBJ exported from Blender (see source here)
Example showing transparency (see source here)
User contribution from Ondrej Wolf (Thx! :))
Example Pearls (see source here)
Metalness (Bottom 0.0 - Top 1.0) and Roughness (Left 0.0 - Right 1.0) (see source here)