Skip to content

4.0.0

Latest

Choose a tag to compare

@sh-coursework sh-coursework released this 19 Jun 06:54

Release 4.0.0

6/18/2019 sh-coursework

Optimization

  • 2/26/2019 BVHRoot optimization from 1.3.1 -> 2.0.0 - remove extraneous layer.
    Initially, when I converted to smart pointers, my render of the book 2 test
    scene jumped from 20921 sec to 21211 sec - so approx a 1% hit. But I think it
    was from imposing an extraneous redirection of the hit function in bvh_root.
    Correcting that brougt the time back down to 20825 sec.
  • 5/21/2019 Got rid of scatter_record and defining pdfs inside the materials
    themselves. Still preparing for brdf, but in Peter's book 3, the later
    architecture with the scatter record creating pdf objects on the heap
    (using "new" to allocate) significantly slowed things down. The book 2
    test scene went from about 20825 sec (see above bvh optimization) to
    about 24028 sec. Refactoring to avoid most of the allocating/destroying
    the pointers that were happening per-ray-bounce and removing the whole
    scatter record brought the time down to 22389. Still not all the way back,
    but at least clawed back some time.
  • 6/1/2019 Added scene for rotate test - a bunch of rotated cubes.
    • Moved rotate to template.
    • Rotate-X, rotate-Z
  • 6/9/2019 move light list definition from main to scene generation.
  • 6/9/2019 Implement Random for XY, YZ
  • 6/9/2019 Refactor scene generation to modify incoming render context.
    No longer has return values.
  • 6/18/2019 Audit for smart pointers to manage ownership in materials.
    Note that this does not mean the elimination of raw pointers. For instance,
    materials and textures are managed by lists in the render context, so
    those use smart pointers. But in geometry, I consider the material
    binding to be just a reference, and is not managing lifetime.A
  • 6/18/2019 Expanded on the render context for material and texture lists.
  • 6/18/2019 Added skydome to support old tests
  • 6/18/2019 Added check to lambertian - make sure hitable list is populated
    to use HitablePdf.