See the PDF report for more details about implementation and correctness validation. Check the release for images and test scenes in the report.
Anisotropic volume rendering using SGGX:
medium.h, medium.cpp
- Add a HomogeneousAnisotropicMedium medium class and a SGGXPhase phase function class. These two needs to work together.parser
- Parse the new medium classvec.h
- Add a few functions that end with 3x3. They still take 4x4 matrices as input and output, but only process the top-left 3x3 submatrix. Other entries are all set to 0.
Layered material with statistical operator:
material.h, material.cpp
- Create new material class called Layered. Add a few functions for sampling and evaluating surface normal from Beckmann distributionlayered.h
- Implement FGD class that reads precomputed FGD texture fromdata/FGD.bin
and supports interpolated texture lookupparser.cpp
- Parse the new material classonb.h
- Now allows converting from world coordinate to local coordinate using ONB