Skip to content

Latest commit

 

History

History
64 lines (54 loc) · 3.4 KB

README.md

File metadata and controls

64 lines (54 loc) · 3.4 KB

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.