1. 18 8月, 2021 3 次提交
  2. 06 8月, 2021 1 次提交
  3. 02 8月, 2021 1 次提交
  4. 31 7月, 2021 4 次提交
  5. 29 7月, 2021 3 次提交
    • M
      Update from book source. No functional changes. · 0dec8bb6
      Matt Pharr 提交于
      0dec8bb6
    • M
    • M
      Rework handling of allocators in GPU/wavefront integrator · f74d7da8
      Matt Pharr 提交于
      The previous implementation repeatedly assumed that Allocators were
      thread safe; this is not required for std::pmr allocators, but happened to
      be the case when the default allocator is used on the CPU (since new/delete
      are thread safe.) For the GPU, the CUDATrackedMemoryResource was
      also thread-safe, but it also included some per-thread caching that doesn't
      really belong in a memory resource.
      
      Therefore, the WavefrontPathIntegrator (and friends) now no longer assume
      that allocators are thread-safe, but instead explicitly use per-thread allocators
      in parallel code. CUDATrackedMemoryResource is simplified to be just a
      memory resource, and now we use a std::pmr::monotonic_buffer_resource
      when we actually want chunked allocation.
      f74d7da8
  6. 23 7月, 2021 2 次提交
  7. 22 7月, 2021 1 次提交
  8. 20 7月, 2021 2 次提交
  9. 16 7月, 2021 1 次提交
  10. 10 7月, 2021 1 次提交
  11. 01 7月, 2021 1 次提交
  12. 29 6月, 2021 1 次提交
  13. 22 5月, 2021 1 次提交
  14. 20 5月, 2021 1 次提交
  15. 17 5月, 2021 1 次提交
  16. 14 5月, 2021 1 次提交
    • M
      GPU/wavefront integrator: track per-ray depth independently of global wavefront depth. · fcc94ea0
      Matt Pharr 提交于
      This way, we can not increment the ray depth when it passes through a
      surface that markes the boundary between different media, matching the
      behavior of the regular CPU path.
      
      In particular, this fixes some undesirable noise in the wavefront
      integrator (and different behavior from the regular CPU path) that was due
      to the ray depth being incorrectly tracked in scenes with participating
      media and then Russian roulette inadvertently being applied after the very
      first surface intersection.
      fcc94ea0
  17. 13 5月, 2021 2 次提交
  18. 06 5月, 2021 1 次提交
  19. 03 5月, 2021 2 次提交
    • M
      Update from book source. No functional changes. · 292180bf
      Matt Pharr 提交于
      292180bf
    • M
      Generalize GPU rendering path to run on both CPU and GPU (#125) · e90458fb
      Matt Pharr 提交于
      * Generalize GPU rendering path to run on both CPU and GPU
      
      Now we have a WavefrontIntegrator that can both run on the CPU (backed by
      ParallelFor() for parallelization and pbrt's aggregates for ray
      intersection acceleration) and on the GPU (backed by GPUParallelFor() for
      parallelization and OptiX for ray intersection on NVIDIA GPUs.)
      
      Beyond generalizing the code, this refactor allows CPU-side debugging and
      testing of the wavefront integrator.  Doing so allows further isolation of
      the GPU-specific code into a few source files, now just ~2.5k lines of code.
      
      This includes a bug fix in the wavefront medium code to resolve MixMaterials
      to one of their constituent materials before enqueuing material evaluation
      and shading work.
      
      Note that on the CPU, the wavefront integrator runs 5-10x more slowly than
      pbrt's regular CPU integrators, so it is not recommended for regular use...
      Co-authored-by: NWenzel Jakob <wenzel.jakob@epfl.ch>
      e90458fb
  20. 29 4月, 2021 1 次提交
  21. 26 4月, 2021 1 次提交
    • M
      Improve handling of alpha-masked area lights. · faf3a4f8
      Matt Pharr 提交于
      Alpha textures now act on emission the same way they do for visibility:
      alpha masked regions of the surface do not emit illumination.
      
      Area lights with a constant alpha of zero are (begrudgingly) special cased
      so that it is still possible to specify an invisible area light source.  A
      hack in DiffuseAreaLight causes those to be sampled with light sampling
      only for direct lighting in integrators so that now they are rendered
      correctly. (Before, they would be MIS weighted accounting for the chance of
      a BSDF-sampled ray intersecting them even though it was impossible for BSDF
      sampled rays to do so...)
      faf3a4f8
  22. 25 4月, 2021 2 次提交
  23. 18 4月, 2021 1 次提交
  24. 05 3月, 2021 1 次提交
    • M
      Move division by wavelength PDFs back to Film. · 7559f4a5
      Matt Pharr 提交于
      (This basically reverts eb353742.)
      
      While this leads to an increase in color noise for scenes with dispersion,
      it simplifies all of the integrators (and, for the book's pedagogical
      purposes, lets us hold off on discussing this division until a better spot
      in the book.)
      7559f4a5
  25. 13 2月, 2021 2 次提交
  26. 08 2月, 2021 1 次提交
  27. 29 1月, 2021 1 次提交