1. 08 Jan, 2019 1 commit
  2. 04 Dec, 2018 1 commit
  3. 21 Nov, 2018 1 commit
  4. 17 Sep, 2018 1 commit
  5. 14 Sep, 2018 1 commit
  6. 28 Aug, 2018 1 commit
  7. 18 Jun, 2018 1 commit
  8. 17 Jun, 2018 2 commits
  9. 15 Jun, 2018 1 commit
    • Ken Martin's avatar
      use shared noise texture and cleanup tests · 5e629b86
      Ken Martin authored
      Now when jittering is on it uses a shared noise texture
      from the renderwindow for all mappers and is 64x64 in size.
      This cleans up a lot of code and has a smaller memory footprint
      etc.
      
      A bunch of tests included OpenGL2 headers when they didn't
      need to, so fixed those.
      
      Other tests need OpenGL2 but are in RenderingVolume so moved
      them into RenderingVolumeOpenGL2 where they should be.
      5e629b86
  10. 29 May, 2018 1 commit
    • Allison Vacanti's avatar
      Fix volume clip bug and add regression test. · 5c6bde06
      Allison Vacanti authored
      When clipping a volume using in-shader clipping planes, it was possible
      for the starting point of the ray cast to lie beyond the data volume.
      The raycast code is written such that the first sample is always taken
      before testing termination criteria, and in these cases we would always
      take a single sample outside of the volume, leading to artifacts.
      
      Fixed this behavior by checking that the starting position calculated
      by AdjustSampleRangeForClipping is indeed inside of the volume bounds and
      aborting the raycast if it is not.
      
      The existing TestGPURayCastClipping test would have caught this, except
      that the vase.vti volume used for testing has all 0's at the boundaries,
      so the rendering was correct even with the edge-clamp repetition outside
      of the volume (the faulty samples always computed RGBA=vec4(0)). I
      replaced the vase.vti of this test with a wavelet with finite boundary
      values that will catch this problem if there's a regression.
      5c6bde06
  11. 18 May, 2018 1 commit
    • Kitware Robot's avatar
      ExternalData: Convert content links from MD5 to SHA512 · d6d05b2a
      Kitware Robot authored
      Populate a script with `map_<md5>=<sha512>` variable settings and
      then run the following to convert the content link files:
      
          git ls-files -- '*.md5' | while read f; do
            md5="$(cat "$f")"
            sha512="$(eval echo \${map_$md5})"
            rm "$f"
            echo $sha512 > ${f%.md5}.sha512
          done
      d6d05b2a
  12. 19 Apr, 2018 1 commit
  13. 12 Apr, 2018 1 commit
  14. 04 Apr, 2018 1 commit
  15. 03 Apr, 2018 1 commit
  16. 29 Mar, 2018 1 commit
  17. 28 Mar, 2018 3 commits
    • Allison Vacanti's avatar
      Update baseline. · 93fb3d57
      Allison Vacanti authored
      93fb3d57
    • Allison Vacanti's avatar
      Ensure that the dual depth peeling algorithm samples consistently. · 410f9799
      Allison Vacanti authored
      We were starting/stopping ray casts at the exact locations prescribed
      by the depth values and fragment coordinates, but this caused sampling
      inconsistencies.
      
      This patch ensures that all sampling is performed at locations that
      are an integer multiple of the step distance from the entry point.
      410f9799
    • Allison Vacanti's avatar
      Refactor in-shader volume clipping to be depth-peeling-friendly. · f1442053
      Allison Vacanti authored
      Refactor the volume clipping code so that it is compatible with the
      volume peeling implementation in vtkDualDepthPeelingPass. At a high
      level, the new version adjusts the sampling ray so that it won't sample
      clipped areas, rather than check for clipping at each sample location.
      
      This should give better performance (less work during casting) and
      allows the clip calculations to be aware of the depth-peeling sample
      range.
      f1442053
  18. 20 Mar, 2018 3 commits
  19. 08 Mar, 2018 2 commits
  20. 28 Feb, 2018 1 commit
    • Ken Martin's avatar
      update glsl code to 140 standards · 3c999de5
      Ken Martin authored
      While maintaining backwards compatibility at least
      update our code to use the more modern in/out
      qualifiers as opposed to attribute/varying  Also
      remove old glsl 120 if statements as we no longer support
      it and also remove a performance issue in querying the
      gl major minor version on every shader test.
      3c999de5
  21. 20 Feb, 2018 1 commit
  22. 14 Feb, 2018 1 commit
  23. 29 Jan, 2018 1 commit
  24. 23 Jan, 2018 1 commit
  25. 08 Jan, 2018 2 commits
  26. 07 Jan, 2018 2 commits
  27. 04 Jan, 2018 1 commit
  28. 02 Jan, 2018 1 commit
    • Alvaro Sanchez's avatar
      Added support for multiple volume inputs in GPUVolumeRayCastMapper · a632f77e
      Alvaro Sanchez authored
      When multiple inputs are rendered through the same mapper, it is possible to
      composite overlapping areas correctly. Inputs are connected directly to
      the mapper and their parameters (transfer functions, transformations, etc.) are
      specified through standard vtkVolume instances. These vtkVolume instances are
      to be registered in a special vtkProp3D, vtkMultiVolume.  vtkMultiVolume
      represents a 3D space containing a set of vtkVolume instances which could be
      but are not necessarily overlapping, this instance computes the bounding-box
      containing all of its registered vtkVolumes.
      
      vtkGPUVolumeRayCastMapper prepares and keeps track of the inputs as they are
      allowed to be disconnected at any time. vtkOpenGLGPUVRCMapper's internals
      particular to an input (vtkVolumeTexture, OpenGL helper instances, etc.) have
      been promoted to a separate class vtkVolumeInputHelper. Other internals (such as
      ComputeBounds, ComputePointToCellMatrix and related variables) have been moved
      into vtkVolumeTexture as they are inherent to the texture definition (or
      some of its blocks during streaming).
      
      A separate code path is used when rendering multiple-inputs in order to
      facilitate the co-existance of these two modes (single/multiple), due to current
      feature incompatibilities with multiple inputs (e.g. texture-streaming, cropping,
      etc.). Splitting DoGPURender into various smaller routines improves code
      reusability between these two paths.
      
      A limited set of the mapper features are currently supported for multiple
      inputs:
      
        * Transfer functions: these are defined separately for per input.
          + 1D color
          + 1D scalar opacity
          + 1D gradient magnitude opacity
          + 2D scalar-gradient magnitude
      
        * Point and cell data
          + With the limitation that all of the inputs are assumed to share the same
          name/id.
      
        * Composite blending (front-to-back)
      
      Test cases:
      
        * TestGPURayCastMultiVolumeOverlapping
        * TestGPURayCastMultiVolumeTransfer2D
        * TestGPURayCastMultiVolumeAddRemove
        * TestGPURayCastMultiVolumeCellData
      a632f77e
  29. 31 Dec, 2017 1 commit
    • Hans Johnson's avatar
      COMP: Add more C++11 override instrumentation · bcf798e7
      Hans Johnson authored
      Providing override key work allows for extra checking
      that the function signatures are correct.
      
      https://stackoverflow.com/questions/39932391/virtual-override-or-both-c?answertab=active#tab-top
      
      In the derived class the function is virtual by way of having the ¹same
      type as the base class function.
      
      However, an override can help avoid bugs by producing a compilation
      error when the intended override isn't technically an override. E.g.
      that the function type isn't exactly like the base class function. Or
      that a maintenance of the base class changes that function's type, e.g.
      adding a defaulted argument.
      
      In the same way, a virtual keyword in the derived class can make such a
      bug more subtle, by ensuring that the function is still virtual in
      further derived classes.
      
      The general advice is,
           -Use virtual for the base class function declaration.
            This is technically necessary.
      
           -Use override (only) for a derived class' override.
            This helps maintenance.
      bcf798e7
  30. 27 Dec, 2017 1 commit
    • luz.paz's avatar
      More Misc. typos · ae6668d1
      luz.paz authored
      includes grammar and uniformity fixes as well.
      ae6668d1
  31. 20 Dec, 2017 1 commit
  32. 19 Dec, 2017 1 commit