Skip to content

Temporary Farewell - version 1.5

Compare
Choose a tag to compare
@Enigmatisms Enigmatisms released this 07 Aug 13:11
· 43 commits to master since this release
801b107

Checkout AdaptiveGallery for the lastest renderings (sports car scene and Darth-Vader collections).

This will be the final active release for AdaPT 1.x (Taichi based). The future focus of mine will be shifted to real-time global dynamic illumination. Some other reasons include: Taichi lang is currently inefficient to support a large project & the things I have been implementing and the problems I have been solving are not innovative but require heavy engineering work.

This pull request has the following updates:

More BxDFs

We can now use:

  • The full Trowbridge-Reitz(GGX)-distribution-based microfacet BRDF (microfacet). Note that microfacet introduces much new code therefore I observed a compile-time slow down due to Taichi's force inlining.
  • Oren-Nayar diffuse BRDF (oren-nayar), which is a physically-based diffusive surface model, better than Lambertian.
  • Thin coating BRDF for plastic-like material (thin-coat). The BRDF got its name due to it's kind of like it has a extremely thin layer with different index of refraction on the surface, therefore making the Fresnel' rules applicable.
  • Lambertian transmission BSDF. Now we have three viable BSDF (in addition to null and det-refraction, we have lambertian).

Bug fix for direct renderer

Real-time interactive direct illumination renderer is fixed: upgraded from the previous implementation and can now be used when ray-intersection function return an Intersection struct.

Post-processing

Simple fire-fly removal script is provided to post process the output image. This functionality is not directly incorporated into the rendering pass due to the consideration for flexibility.

Other miscellaneous fixes and modification

  • BDPT now utilizes ti.template() to avoid branching
  • BRDFTag is added for clarity and readability in BRDF implementation
  • I tried my best to use real_func of Taichi lang, but it seems that real_func might accidentally increase the GPU global memory usage and cause some unknown (and hard to debug) exception. This... shouldn't be the fault of mine.
  • Fixed the issue mentioned in #22

Branch more

This branch is previously used to implement BxDF mixture model. The result is a success but it comes at a cost: the compile-time and run-time performances degrade unexpectedly. Yet, this branch should have been merged into the master branch if it worked it out well since there had been major refactoring work done for the PathTracer class and the whole logic was quite different. Therefore, I decided to keep this branch for, maybe, future uses.

For more information, take a look at the updated [README.md](https://github.com/Enigmatisms/AdaPT).