Permalink
Switch branches/tags
Nothing to show
Commits on Oct 19, 2017
  1. Update .travis.yml

    mmp committed Oct 19, 2017
Commits on Oct 18, 2017
  1. Fix bogus computation of cosTotalWidth in ProjectionLight.

    mmp committed Oct 18, 2017
    This caused sampling outgoing rays to be incorrect, missing much of the
    image, which led to bogus results with e.g. BDPT.
  2. Fixed a minor bug in the warning message of sobol sampler. It errorne…

    rcythr authored and mmp committed Jul 29, 2017
    …ously claimed to have rounded up to the non-power of two. It now prints the correct rounded up samplesPerPixel variable.
  3. Fix buggy Bounds Intersect() functions.

    mmp committed Aug 5, 2017
    For non-overlapping bounds, we'd like to return an invalid bounds (min >=
    max), but the old implementation didn't do that, since it ran the extent
    through the Bounds constructor, which in turn takes the element-wise min
    and max of the Points passed to it.
  4. Fix arguments passed to Pdf_Le() in BDPT integrator.

    mmp committed Aug 5, 2017
    Time is the 4th argument, no the third (which is max t).
  5. Fix edge case in SpotLight

    mmp committed Jul 22, 2017
    If there was a zero-sized falloff region, we would very rarely divide
    0./0. and get a NaN.
  6. Add check for backwards-facing rays in RealisticCamera

    mmp committed Jun 11, 2017
    Fixes issue #92. Many thanks to @takiyu for chasing down the problem and
    proposing a solution, and @syoyo for an alternative solution, which I've
    incorporated here.
  7. Fix typo in 525a3ee

    mmp committed Jun 11, 2017
    Fixes #134, #135, and #136.
  8. Fixed imgtool diff saving.

    Mx7f authored and mmp committed May 11, 2017
    RGBSpectrum::FromRGB is a static function, not a mutator method, so we need to explicitly write into the diffImage array.
  9. Fix a documentation typo in imgtool.

    samsymons authored and mmp committed Feb 27, 2017
  10. Manual cherry-pick of b5e45e4

    mmp committed Oct 18, 2017
    Fix bug in hierarchical stats reporting
  11. Fix PBRT_FLOAT_AS_DOUBLE build.

    mmp committed Dec 22, 2016
    (And also a test that was failing.)
Commits on Dec 8, 2016
  1. Fix normal calculation in Triangle::Sample().

    mmp committed Dec 8, 2016
    We used to interpolate a shading normal and return that, which doesn't seem
    like the right thing to do. As in intersect, we do use the shading normal
    to orient the geometric normal, if shading normals are present.
    
    Also made the handling of 'reverse orientation' and 'transform swaps
    handedness' consistent with elsewhere: only flip the normal for these if
    there is no shading normal (and check the transform handedness stuff, which
    wasn't being done before.)
    
    Checked a number of pbrt-v3-scenes: no meaningful difference in san miguel,
    measure one, contemporary bathroom, barcelona pavillion (night), or crown,
    all of which have triangle area lights with per-vertex surface normals.
    bathroom does change, due to the expectation that 'reverse orientation'
    applied even if there were per-vertex normals (now no longer the case). A
    fix for this will be pushed to the scenes distribution.
  2. Improve consistency of parameter names.

    mmp committed Dec 7, 2016
    numlevels -> levels
    nsamples -> samples
    Which better matches parameter naming elsewhere.
    
    Old names are still supported for backwards compatibility.
Commits on Dec 7, 2016
  1. Fix bug in Sphere::Sample().

    mmp committed Dec 7, 2016
    Because the sampling coordinate system is in world space, the surface
    normal computed by SphericalDirection() is itself already in world
    space. However, we were treating it as being in object space, which in turn
    led to errors if the sphere's object-to-world transformation involved
    anything more than translations.
    
    The following scene illustrates the bug: the rotation applied to the sphere
    should have no effect on the final image, since the sphere starts out at
    the origin, but without this bug fix, the image changes substantially if
    it's there.
    
    WorldBegin
    
    AttributeBegin
      Translate 0 2 0
      Rotate 180 1 0 0
      AreaLightSource "diffuse" "color L" [40 40 40]
      Shape "sphere" "float radius" .5
    AttributeEnd
    
    Material "matte"
    Shape "trianglemesh" "point P" [-5 -1 0  5 -1 0   0 -1 5]
      "integer indices" [0 1 2]
    
    WorldEnd
  2. Standardize on "eta" for specifying IOR in materials.

    mmp committed Dec 5, 2016
    Some have been using "index" and others "eta". Now all support "eta", which
    is also consistent with the pbrt-v3 file format documentation. "index" is
    still supported for backwards compatibility.
Commits on Dec 4, 2016
  1. Fix default for KdSubsurfaceMaterial "mfp" parameter.

    mmp committed Dec 4, 2016
Commits on Nov 25, 2016
  1. Improvements to Windows build.

    mmp committed Nov 22, 2016
    Add the missing zlibstatic dependency.
    Remove hack from appveyor.yml that explicitly built zlib first.
    May fix issue #89?
Commits on Nov 17, 2016
  1. account for adjoint BSDF when evaluating Vertex::f()

    wjakob authored and mmp committed Nov 16, 2016
Commits on Nov 10, 2016
  1. Fix inadvertent race condition in ProgressReporter.

    mmp committed Nov 9, 2016
    It’s important to make a copy of the shared_ptr for the Barrier rather
    than pass it by reference to the lambda that launches the thread.
    Otherwise, it was possible that the worker thread could access the
    Barrier while it was in the process of being destroyed.
  2. Fix bug in SeparableBSSRDF::Sample_Sp().

    mmp committed Nov 10, 2016
    In rare cases, it would compute a zero value for the |l| variable,
    which in turn led to pTarget being equal to the intersection point,
    which in turn led to a ray with a (0,0,0) direction vector, which
    in turn led to NaN values being computed in Triangle::Intersect().
    (It’s surprising that it got to Triangle::Intersect() in the first
    place with such a ray.)
    
    Fixes issue #93.
  3. Use PBRT_L1_CACHE_LINE_SIZE for alignment of MemoryArena

    mmp committed Nov 6, 2016
    Also, move PBRT_L1_CACHE_LINE_SIZE #define from pbrt.h to port.h
    Should finish up issue #86.
  4. Fix crash due to normalize of (0,0,0) vector.

    mmp committed Oct 29, 2016
    In Sphere::Sample(), don’t normalize the vector from the reference point
    to the sphere center until after checking for whether the point is
    inside the sphere.
    
    The SpatialLightDistribution was creating Interactions at the origin
    (under a certain set of circumstances) in a scene with a sphere
    centered at the origin, which led to an assertion failure.
Commits on Oct 26, 2016
  1. Add missing #include

    mmp committed Oct 26, 2016
  2. Fix rare infinite loop bug in SampleFourier().

    mmp committed Oct 26, 2016
    In very rare circumstances, the while(true) loop in that function would
    continue forever. What was happening was that we'd get stuck on a
    particular bracketing interval [a,b], wherein loop iterations would
    alternately just so happen to compute phi=a and then phi=b.  In turn, no
    progress would be made and the loop would continue forever.
    
    This is easily fixed by choosing the bisection step when phi exactly equals
    one of the endpoints.
    
    (Though this bug hasn't yet been seen in SampleCatmullRom() or
    InvertCatmullRom(), there is similar logic in those functions, so also
    updated the logic there similarly.)
  3. Fix rare deadlock in profiling system.

    mmp committed Oct 26, 2016
    In rare circumstances, where one thread was in the middle of allocating
    memory when it received the timer signal for the profiling system, and if
    the thread accessed a thread-local variable for the first time in the
    signal handler, it also would try to dynamically allocate memory, which
    could lead to a deadlock in malloc().
    
    Now, things are organized so that the thread-local variable, ProfilerState,
    that is needed in the signal handler, is initialized in all threads before
    the profiling system starts up.
    
    Also cleaned up a bit how worker threads are launched and how they merge
    their per-thread stats to the stats system.
    
    Issue #85.
Commits on Oct 25, 2016