Skip to content

A pathtracer written in scala for rendering somewhat realistic images.

Notifications You must be signed in to change notification settings

Kaloffl/Scala-PT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Scala-PT

A pathtracer written in Scala for rendering somewhat realistic images.

This project was originally inspired by https://github.com/Harha/JPath. I read through the source of one of the first commits and then decided to try writing a pathtracer myself.

Pretty Example Pictures!

20*20 colorful glass spheres colorful glass spheres

10*10 red glass spheres with varying light absorbtion and refractivity index red glass spheres with varying light absorbtion and refractivity index

colored lights adding up to create neutral lighting colored lights adding up to create neutral lighting

The Stanford Dragon with subsurface scattering and refractive surface The Stanford Dragon with subsurface scattering and refractive surface

A rendering of the Power 8 Mandelbulb. This took ages to render... A rendering of the Power 8 Mandelbulb. This took ages to render...

Features

A probably incomplete list of features this pathtracer currently supports:

  • Rendering:
    • Distance based light absorbtion in volumes
    • Scattering of light rays in participating media (fog)
    • Refraction and reflection of light on surfaces according to the refractivity indices
    • Sky material for rays that hit no geometry
  • Materials:
    • Fully Diffuse
    • Reflective material with optional roughness
    • Refractive material with roughness parameter
    • transparent material with light absorbtion and ray scattering
    • simple light emitting material
    • directional light emitting material
    • delegating material that chooses between two different materials based on the location in space
  • Basic Shapes:
    • Trangles
    • AABBs
    • Spheres
    • raymarched (depth estimated) shapes
      • Sphere
      • Mandelbulb
  • Other:
    • Depth of Field effect controlled by aperture size and focus length
    • the programm will try to use all CPU cores for rendering
    • the scene is stored in a BVH during rendering
    • simple and incomplete importer for PLY model files

Plans

Plans are currently found in this file. I will go through that list and put a redone version here later.

Links

Here is an unordered list of resources I came across while researching for this project. If you are interested in ray/pathtracing you might want to check them out.

About

A pathtracer written in scala for rendering somewhat realistic images.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages