Skip to content
Branch: master
Commits on Jun 24, 2018
Commits on Jun 16, 2018
Commits on Jun 5, 2018
Commits on Jun 2, 2018
  1. Replace randomUnitDiscPoint from vector.h with Random::unitDiscSample()

    anrieff committed Jun 2, 2018
    The latter uses the multithreaded implementation of the random generator
    and the underlying random generator is better for Monte-Carlo simulations,
    especially on Windows (Mersenne Twister, instead of the LCPRNG rand()).
  2. Data files for Homework9.

    anrieff committed Jun 2, 2018
  3. Add Code::Blocks project file for Windows, update scripts

    anrieff committed Jun 2, 2018
    There's one central script, which lets you
    choose whether you want to develop using Code::Blocks for Windows,
    or using Visual Studio, and downloads the respective SDK files.
    Also the script copies the relevant project file to the root dir.
  4. Update Linux CodeBlocks project with Lecture 13 compiler options

    anrieff committed Jun 2, 2018
    Compared to what was shown on the lecture, I'm using `-march=native`
    instead of `haswell`, as it's unwise to assume everybody has AVX2
  5. Change the default scene (forest.fray) to NOT use fullscreen.

    anrieff committed Jun 2, 2018
    While it is fullscreen it is quite hard to debug...
  6. Merge pull request #6 from anrieff/cmake_win_fixes

    anrieff committed Jun 2, 2018
    Cmake win fixes
Commits on May 30, 2018
  1. Merge pull request #5 from anrieff/small_build_fix

    anrieff committed May 30, 2018
    Fix build on Windows
  2. Merge pull request #4 from anrieff/win/build_fixes

    anrieff committed May 30, 2018
    Fix build on Windows with MSVS 2017
Commits on May 29, 2018
  1. Eliminate some divisions in BBox intersection methods.

    anrieff committed May 29, 2018
    Since divisions by ray.dir.(x|y|z) happen a lot, it's beneficial to
    compute the reciprocal of ray.dir before the intersection calculation.
    This is made with a special, augmented Ray class (RRay).
    The same kind of optimization can be implemented in other parts of the
    raytracer, but doing it globally makes no sense: RRay::dir and rdir have
    to be kept in sync, which is too much work to do (esp. through
    model-view transformations).
    This optimization sheds about 1.5% of the render time.
  2. Optimize triangle intersections (~12% speedup)

    anrieff committed May 29, 2018
    - Precompute AB, AC and AB^AC in members of Triangle, to avoid
      calculating them each time in intersectTriangle.
    - Reorder exit checks a bit, to enable quicker culling of
      triangles we don't intersect.
    - Precompute 1/Dcr to avoid divisions.
  3. A few small improvements:

    anrieff committed May 29, 2018
    - change the Checker class so it matches the scene files' intended
    - change the default scene to 'forest.fray';
    - use the prescribed max trace depth specified in the scene;
    - do the scene rendertime measurement in main(), and display the
      result in the window's title bar.
  4. Several SDL-related features and enhancements.

    anrieff committed May 29, 2018
    - Render the scene in a thread. This allows the main thread to
      run an event loop and detect buttons being pressed (which is used
      to abort the rendering at any time).
    - Pressing "F12" takes a screenshot
    - Clicking on the rendered image traces a special "debugging" ray
      (can be used to debug issues).
  5. Add the "SmallPT" scene.

    anrieff committed May 29, 2018
  6. Forbid paths like camera -> diffuse -> light that happen due to chance

    anrieff committed May 29, 2018
    Only allow these with explicit light sampling, as this is a better
    method with lower noise.
  7. Fix the issue with explicit light sampling

    anrieff committed May 29, 2018
    It was just that the light's are wasn't taken into account.
  8. Other part of code written during Lecture 12: path tracing

    anrieff committed May 29, 2018
    This contains a bogus implementation of path tracing with
    explicit light sampling, which doesn't work at the moment (same
    as what was presented during the lecture).
  9. Scene reading, Random class and part of Path tracing.

    anrieff committed May 22, 2018
    Partial code written during Lecture 12.
Commits on May 22, 2018
  1. Data for Path tracing

    anrieff committed May 22, 2018
Commits on May 15, 2018
  1. After lecture 10: fix scene creation code.

    anrieff committed May 15, 2018
    Now both scenes are available and render as expected.
You can’t perform that action at this time.