1. 24 Nov, 2020 1 commit
  2. 23 Nov, 2020 4 commits
  3. 21 Nov, 2020 1 commit
  4. 19 Nov, 2020 4 commits
  5. 18 Nov, 2020 1 commit
    • Ken Martin's avatar
      Fix point picking with render points as spheres · 456b097c
      Ken Martin authored
      Addresses issue #17223
      The issue was that when points were rendered as spheres
      during point picking. The zbuffer could be initialized with
      the spheres. Then in the next pass the coincident code is supposed
      to move the zbuffer values a bit closer to make sure they show up
      but the zbuffer calc code in render as spheres was overriding
      the coincident code (all the time actually)
      This change makes it so that the coincident code still has
      an impact even with render points as spheres.
  6. 16 Nov, 2020 3 commits
    • Sean McBride's avatar
      Replaced vtkCriticalSection, vtkMutexLock, vtkConditionVariable with STL · c43435ec
      Sean McBride authored
      Replaced usage of vtkCriticalSection, vtkMutexLock, and vtkSimpleMutexLock with std::mutex.
      Relpaced usage of vtkConditionVariable ad vtkSimpleConditionVariable with std::condition_variable_any.
      Marked the those VTK classes as deprecated.  Also deprecated vtkThreadMessanger, which was already unused.
      Biggest change is to vtkBlueObeliskData, which publicly exposes a vtkSimpleMutexLock as part of its public API with Get/SetWriteMutex. Made it deprecated and replacing it with new public LockWriteMutex() and UnlockWriteMutex() methods.
    • Ken Martin's avatar
      Turn off multisamples on intel OSX · 49ccafef
      Ken Martin authored
      This fixes an issues with volume rendering on oSX intel
      In the past multisamples were turened off for all OSX
      graphics, not just intel.
    • Ken Martin's avatar
      Report when program exceeds texture buffer limit · a1583857
      Ken Martin authored
      Texture buffers are used for cell scalar coloring
      but there is a hardware limit of typically 134 million
      cells. Report when a program exceeds this limit. In the
      past it would silently fail producing unexpected results.
  7. 13 Nov, 2020 1 commit
    • Ken Martin's avatar
      Fix three issues with picking on large datasets · 43cfc0ac
      Ken Martin authored
      The first issue was that the high24 cellid pass was
      never invoked. Very simple fix in a for loop.
      The second issue was more complicated. With large datasets
      the algorithm break the attribute id passes (point and cell)
      into two 24 bit passes. That way it can handle larger datasets.
      The algorithm does low24, high24 and then low24 a second time.
      Recall that these values can be remapped by data arrays
      on a dataset and the raw opengl values have to be converted
      to vtk values. During the first low pass, when the high data is
      not yet available, those conversions can easily underflow
      or overflow as the numbers we are working with are not correct.
      They are missing their top 24 bits. This patch fixes those
      cases to avoid those issues (which often result in a segfault)
      The third issue was that for composite datasets the check
      for high point or cell ids was only done for the first
      dataset of a given "type" in the composite dataset. This
      could cause the high24 pass to be skipped when it should not.
      At the same time the old code was adding 1.0 to all the
      values written to the framebuffer and then later subtracting 1.0
      to account for it. This added some complexity to a number of
      places in the code. This change removes that logic for all passes
      except for ACTOR and PROCESS. The actor pass does use 0 to indicate
      a miss. The process pass uses 0 to indicate no process information.
      One additional change is to replace some of the ++, --, code
      with += or -= ID_OFFSET to make it more clear where these
      +1 offsets are being used in the HardwareSelector.
  8. 10 Nov, 2020 2 commits
    • Sankhesh Jhaveri's avatar
    • Sean McBride's avatar
      Fixed #18047: modified Cocoa drawRect: to push/pop OpenGLState before Render · 57cc6bd4
      Sean McBride authored
      Patch from Ken Martin:
      We think macOS is doing stuff in OpenGL as part of its process for getting the image on the screen. Which is reasonable. But it means that macOS may change the OpenGL state in a way that VTK is not aware of. And likewise VTK could change state in a way that screws up what macOS is expecting. So the added code tries to avoid all that by making some extra OpenGL calls to protect both sides of the equation.
      Superficially, this fixes "Error in cache state for GL_SCISSOR_BOX" logs that were previously spewed while resizing a window.
  9. 07 Nov, 2020 1 commit
  10. 06 Nov, 2020 1 commit
    • Paul Lafoix's avatar
      Enhance text and border representation · 80b158fb
      Paul Lafoix authored
      It is now possible to have round corners on the border representation,
      and more cosmetic customization like border color, thickness, background
      color, opacity..
      The round borders are created by computing, in each corners, a fixed
      number of points (defined by BorderResolution) in a circle of radius
      Update also TextRepresentation to handle a top or right padding.
  11. 03 Nov, 2020 2 commits
  12. 02 Nov, 2020 1 commit
  13. 28 Oct, 2020 2 commits
  14. 26 Oct, 2020 3 commits
    • David Gobbi's avatar
      Fix SpecialColors for vtkWindowLevelLookupTable · 9197a2f4
      David Gobbi authored
      When the AboveRangeColor and BelowRangeColor were added to the
      vtkLookupTable several years ago, the vtkWindowLevelLookupTable
      was not similarly modified.  As a result, the values of the
      beyond-range colors were left uninitialized and generally had
      a value of (0,0,0,0) when the vtkWindowLevelLookupTable was used.
      I also took the opportunity to have vtkWindowLevelLookupTable
      implement the ForceBuild() method instead of the Build() method.
      This allows ForceBuild() and Build() to work for this class in
      the same way as they do for vtkLookupTable.
    • Paul Lafoix's avatar
      Fix warning in PolyDataMapper2D when PointSize or LineWidth equals 0 · 1e1a670a
      Paul Lafoix authored
      openGL warnings were encountered when PointSize or LineWidth equal zero
      "vtkOpenGLState.cxx:741   WARN| Error glLineWidth1 OpenGL errors detected"
    • David Thompson's avatar
      Allow X11::Xcursor to be absent. · 533cac7f
      David Thompson authored
  15. 22 Oct, 2020 1 commit
  16. 19 Oct, 2020 3 commits
    • Vicente Bolea's avatar
    • Thorsten Liebig's avatar
      depth peeling: fix volume written pixel initialization, #18027 · e8b6d198
      Thorsten Liebig authored
      if volume rendering is off, the previously initialized
      "VolumetricWrittenPixels" never gets updated and thus always
      stays above the abort threshold
      Signed-off-by: Thorsten Liebig's avatarThorsten Liebig <Thorsten.Liebig@gmx.de>
    • Paul Lafoix's avatar
      PBR: Clear coat layer implementation · 5a481068
      Paul Lafoix authored
      Update PBR shader in vtkOpenGLPolyDataMapperNode to simulate a clear
      coat layer (upside layer on the material). This layer is supposed
      dielectric and with low roughness, so it adds only a specular lobe to
      the previous diffuse and specular parts of the base material.
      The specular BRDF model of the coat layer is a Cook-Torrance specular
      microfacet model,
      with a GGX normal distribution function, a Smith visibility function,
      and a Schlick
      Fresnel function. Notice that it uses the exact same specular microfacet
      model as the base layer specular BRDF.
      It adds multiples parameters to vtkProperty :
      * CoatStrength : [0-1], default to 0.0. Control the strength (0 means no layer)
      * CoatRoughness : [0-1], default to 0.0. 0 means smooth layer (high specular
      * CoatIOR : [0-4], default to 2.0. Define the material IOR of the layer.
      * CoatColor : Default to white.
      * CoatNormalScale : Scale the normal map (if present). Default is 1.0
      * BaseIOR : the base material index of refraction, default to 1.5.
      	When we add a coat layer, we need to recalculate the reflectance of the interface between
      	the base material and the exterior, as the new exterior is now the coat
      	layer. The precomputation of the reflecance is done in
      It is possible to define a normal map for the coat layer. If not
      presents, we assume the layer has the same normal map as the base
  17. 15 Oct, 2020 9 commits