Skip to content
Snippets Groups Projects
  1. Jan 06, 2017
  2. Jan 05, 2017
    • David Gobbi's avatar
      Merge topic 'getincrements-method' · b78a6d26
      David Gobbi authored and Kitware Robot's avatar Kitware Robot committed
      
      0f2b56e4 Prefer GetIncrements(incs) over getting a pointer
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2325
      b78a6d26
    • Alexis Girault's avatar
      Implement vtkPolygonalMeshPointNormals · 600e728d
      Alexis Girault authored
      vtkTriangleMeshPointNormals is a filter that computes point normals for
      a triangle mesh to enable high-performance rendering. It is a fast-path
      version of the vtkPolyDataNormals filter in order to be able to compute
      normals for triangle meshes deforming rapidly.
      
      The computed normals (a vtkFloatArray) are set to be the active normals
      (using SetNormals()) of the PointData. The array name is "Normals", so
      they can be retrieved either with `output->GetPointData()->GetNormals()`
      or with `output->GetPointData()->GetArray("Normals")`.
      
      The algorithm works by determining normals for each triangle and adding
      these vectors to the triangle points. The resulting vectors at each
      point are then normalized.
      
      @warning
      Normals are computed only for triangular polygons: the filter can not
      handle meshes with other types of cells (Verts, Lines, Strips) or Polys
      with the wrong number of components (not equal to 3).
      
      @warning
      Unlike the vtkPolyDataNormals filter, this filter does not apply any
      splitting nor checks for cell orientation consistency in order to speed
      up the computation. Moreover, normals are not calculated the exact same
      way as the vtkPolyDataNormals filter since the triangle normals are not
      normalized before being added to the point normals: those cell normals
      are therefore weighted by the triangle area. This is not more nor less
      correct than normalizing them before adding them, but it is much faster.
      
      @sa
      If you do not need to do high-performance rendering, you should use
      vtkPolyDataNormals if your mesh is not only triangular, if you need to
      split vertices at sharp edges, or if you need to check that the cell
      orientations are consistent to flip inverted normals.
      
      @sa
      If you still need high-performance rendering but your input polydata is
      not a triangular mesh and/or does not have consistent cell orientations
      (causing inverted normals), you can still use this filter by using
      vtkTriangleFilter and/or vtkCleanPolyData respectively beforehand. If
      your mesh is deforming rapidly, you should be deforming the output mesh
      of those two filters instead in order to only run them once.
      
      
      This filter was implemented for a real-time simulation application
      where a mesh vertices are deforming at every frame. With 110k points,
      the framerates were the following:
      - 100 fps with no normals computation
      - 5 fps with vtkPolyDataNormals with default options
      - 15 fps with vtkPolyDataNormals with SplittingOff & ConsistencyOff
      - 80 fps with vtkPolygonalMeshPointNormals
      This is an improvement of 5 to 16 times faster for that use case.
      
      Note: for high-performance rendering of deformable meshes, two
      other improvements can be made to boost the performance:
      - skip frustrum culling
      ```
      renderer->RemoveCuller(renderer->GetCullers()->GetLastItem());
      ```
      - skip auto shift & scale of VBO:
      ```
      openglmapper->SetVBOShiftScaleMethod(vtkOpenGLVertexBufferObject::DISABLE_SHIFT_SCALE);
      ```
      Those two changes allow to skip calling `GetBounds()`, which requires
      to recompute the bounds at each frame. This brings the framerate from
      80 fps to 200 fps.
      600e728d
    • Ken Martin's avatar
      Merge topic 'fix_threading_issue' · a1c62234
      Ken Martin authored and Kitware Robot's avatar Kitware Robot committed
      
      ba4813f2 fix unsafe memory write in vtkImageGradientMagnitude etc
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2320
      a1c62234
    • David Gobbi's avatar
      Prefer GetIncrements(incs) over getting a pointer · 0f2b56e4
      David Gobbi authored
      The GetIncrements() method calls ComputeIncrements(), and if you do not
      supply your own array, then the vtkImageData::Increments ivar is modified
      and returned.  This means that the signature of ComputeIncrements() that
      returns a pointer is not thread safe.
      0f2b56e4
    • David C. Lonie's avatar
    • David Lonie's avatar
      Merge topic 'pv17088-surfacelic_fxaa_fix' · 0758b4b1
      David Lonie authored and Kitware Robot's avatar Kitware Robot committed
      
      17d4747e Restore FBO bindings after SurfaceLIC rendering.
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2313
      0758b4b1
    • David Gobbi's avatar
      Merge topic 'cppcheck-performance-prefix' · 19a3e523
      David Gobbi authored and Kitware Robot's avatar Kitware Robot committed
      
      70bd204f Fix off-by-one error in TestGLS2PSTextOpacity
      2c51d6fe Prefer prefix increment/decrement on iterators
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2323
      19a3e523
    • David Gobbi's avatar
      Fix off-by-one error in TestGLS2PSTextOpacity · 70bd204f
      David Gobbi authored
      This error was found by cppcheck.
      70bd204f
    • David Gobbi's avatar
      Prefer prefix increment/decrement on iterators · 2c51d6fe
      David Gobbi authored
      This fixes performance warnings for cppcheck.
      2c51d6fe
    • Ken Martin's avatar
      add generic report capability code into OpenGLRenderWindow · c63e304e
      Ken Martin authored
      Some subclasses did not have it implemented and
      it makes sense to provide a generic implementation
      by default.
      c63e304e
    • Ken Martin's avatar
      add two more valid images for gl2ps failures · 143bb211
      Ken Martin authored
      Two more images that appear to be driven by pixel
      level size changes
      143bb211
    • Ken Martin's avatar
      fix unsafe memory write in vtkImageGradientMagnitude etc · ba4813f2
      Ken Martin authored
      The class was writing to a memory location from
      multiple threads bro. Also fix thread issues in
      the TestAtomic and TestConditionVariable tests.
      ba4813f2
    • Ken Martin's avatar
      Merge topic 'fix_type_conversion_warnings' · fa53a52d
      Ken Martin authored and Kitware Robot's avatar Kitware Robot committed
      
      d461040c fix type conversion warnings on new dashboard machine
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2317
      fa53a52d
    • Ken Martin's avatar
      Merge topic 'fix_cmp0020_issue' · d931ab56
      Ken Martin authored and Kitware Robot's avatar Kitware Robot committed
      
      07d84f48 fix CMP0020 issue for Examples/Widgets
      
      Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2316
      d931ab56
    • Ken Martin's avatar
      fix type conversion warnings on new dashboard machine · d461040c
      Ken Martin authored
      fixing dashboard issues
      d461040c
    • Mathieu Westphal (Kitware)'s avatar
      Fix NULL socket crash · f0729750
      Mathieu Westphal (Kitware) authored
      In some cases, when server closes unexpectendly
      the client may try to send data to the server
      while it's socket has already been destroyed,
      provoking a segfault.
      This fixes it.
      f0729750
  3. Jan 04, 2017
  4. Jan 03, 2017
Loading