Skip to content
/ Crystal2 Public

The second version of Crystal ray tracing engine

Notifications You must be signed in to change notification settings

CXUtk/Crystal2

Repository files navigation

Crystal 2

An offline physically-based ray-tracing renderer, based on my old project Crystal Engine. The architecture of this project is largely based on PBRT-v3, but specific implementations are done by myself. The goal of this project is to build a physically-based renderer from scratch, learn and practice various global illumination algorithms, and can even be used as pre-processing tool for real-time rendering.

How to compile

$ mkdir build
$ cd build
$ cmake ..
$ make

Useage

$ ./Crystal2 <config file> <scene file>

Features

  1. Integrators
  • Path Tracing
  • Path Tracing + MIS Lighting
  • Photon Mapping
  • Bidirectional Path Tracing
  1. Materials
  • Diffuse Material
  • Mirror Material
  • Glass Material
  • Microfacet Glass Material
  • Microfacet Material (GGX)
  • Microfacet Material (Anisotrophic)
  • Phong Material
  1. Samplers
  • Random Sampler
  • Stratified Sampler
  • Halton Sampler
  1. Textures
  • 2D Texture
  • Skybox Texture
  • 3D Texture
  • Binlinear Interpolation
  • Mipmap
  1. Geometry
  • Sphere
  • Triangle Mesh
  • Triangle
  • Disk
  1. Acceleators
  • Brute force
  • BVH with SAH
  • K-D Tree
  • ?
  1. Lights
  • Point Light
  • Area Light
  1. Volume Scattering
  • Volume Path Tracer
  1. Scene Loader
  • JSON Loader

Demos

Physically Based Rendering

About

The second version of Crystal ray tracing engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published