-fsave-optimization-record
- [ ] Implement https://belcour.github.io/blog/research/2017/05/01/brdf-thin-film.html
- [ ] Evaluate difference to existing thin-film Fresnel
Investigate dedicated cloth material with alternative BRDF (e.g. Ashikhmin, or Hanrahan-Krueger)
Consider adding support for separate samplers per different textures in a single material. E.g nearest neighbor filter for albedo color and bilinear for normal map.
Currently (some) random numbers are seeded per worker. This leads to indeterministic behavior as the workers render varying parts of the frame per run. For a deterministic result the seed should always be the same per pixel/tile in any run. Of course, this should have no impact on the converged result and only affect noise.
Implement in Fourier domain to increase performance
- [X] Use normal DFT to transform to Fourier domain and back
- [ ] Investigate decreased quality, lattice like artifacts
- [ ] Use FFT to improve performance
- [X] Canopy/Half-sphere
- [X] Intersection
- [X] UV sampling (works all of a sudden?)
- [ ] Cylinder
- [X] Consider concurrent loading during lengthy processing steps (e.g. building BVH)
- [-] Consider embedding json and binary data in single file
- [X] Proof of concept
- [ ] Support different vertex layouts
- [ ] Investigate performance of std::stream vs. fread() etc.
There is a very simple mechanism for asynchronous BVH construction now. It seems to work reasonably well in cases where BVH construction is followed by lengthy reads from disk. A typical example is when texture data is being loaded during BVH construction.
Proof of concept for binary files showed good improvements in loading time. File size on disk generally seems to be higher, though (somewhat surprisingly for me).
Investigate opportunities to parallelize some parts of scene update
- [-] Calculation of distribution LUTs for light sources
- [X] Image
- [ ] Mesh
- [ ] Updating of entity transformations
The results are disappointing so far (e.g. less than 2x speedup for 12 threads).