Skip to content

romainaugier/RomanoRender2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RomanoRender2

RomanoRender2 is the second iteration of a pathtracer written in C++ and OSL which aims to help me learn rendering, maths, C++, software engineering and more about computer graphics in general (and also because I want to make beautiful images).

It relies on Embree for geometry intersection and its common library, Open Shading Language for shading, TBB for tasking and multithreading and ImGui for the interface.

Soon there will be a building system with CMAKE and Vcpkg.

Roadmap

(Still in construction, I'm not sure of what I want to implement or not)

  • Embree :

    • ✔️ Triangle geometry :
      • ✔️ Smooth Normals
      • ✔️ Uv coordinates
    • ❌ Curve geometry
    • ❌ Quad geometry
    • ❌ Subdivision surface
    • ❌ Instances
    • ❌ Displacement
    • ❌ Opacity handling
  • OSL / Shading :

    • ✔️ Lambert Diffuse Brdf
    • ❌ Sheen Brdf
    • ❌ Microfacet GGX Brdf/Btdf
    • ❌ Microfacet Beckmann Brdf/Btdf
    • ❌ Dielectric (with Microfacet Btdf)
    • ❌ Thin Dielectric
    • ❌ Random Walk SubSurface Scattering Bssrdf
    • ❌ Normal mapping
    • ❌ Displacement mapping
    • ❌ Transparency
  • Lighting :

    • ✔️ Environment light
      • ✔️ Constant
      • ❌ OSL Environment Shader
    • ❌ Square Area Light
      • ❌ OSL Square Light Shader
    • ❌ Sky Light (I haven't choosen yet which model I want to implement)
  • I/O / Data :

    • ✔️ Obj File format
    • ❌ USD (I know that's a big boy)
    • ❌ Custom scenefile format to save/load scenes
    • ❌ Output to any image file format with OpenImageIO
    • ...
  • Interface :

    • ❌ Node-Based RenderGraph
    • ❌ Text Editor with syntax highlighting for OSL Shaders
    • ...

Showcase

First OSL shader running first osl shader

About

Interactive CPU Path Tracer written in C++ and OSL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published