GithubHelp home page GithubHelp logo

studio42gmbh / jara Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 2.0 497.11 MB

JARA is a educational 100% Java based ray tracer.

Home Page: https://studio42gmbh.github.io/jara/

License: MIT License

Java 99.08% ANTLR 0.88% Batchfile 0.04%
java raytracing pathtracing educational multithreaded pbr physically-based-rendering 3d

jara's Introduction

GitHub GitHub top language GitHub last commit GitHub issues

JARA

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

Features

  • 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

Future Plans

  • 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

Examples

Example Car Car loaded as OBJ exported from Blender (see source here)

Example House House loaded as OBJ exported from Blender (see source here)

Example Spheres Example showing different materials (see source here)

Example Chair Chair loaded as OBJ exported from Blender (see source here)

Example Transparent Example showing transparency (see source here)

Heros Substance User contribution from Ondrej Wolf (Thx! :))

Example Pearls Example Pearls (see source here)

Materialdemo Metalness (Bottom 0.0 - Top 1.0) and Roughness (Left 0.0 - Right 1.0) (see source here)

jara's People

Contributors

studio42gmbh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.