1. 13 Sep, 2013 4 commits
    • Burlen Loring's avatar
      Surface LIC : parallelization & fine tuning features · ad4dddfc
      Burlen Loring authored
      * Parallelization:
      Support for Multiblock datasets and MPI parallel usage. Three compositing
      strategies are provided, with a heuristic to automatically make a reasonable
      selection between them. [1] INPLACE, [2] INPLACE_DISJOINT, [3] BALANCED.
      The inplace strategy processes data where it falls given its parallel domain
      decomposition and projection to the screen. For simple surfaces such as
      slices where ranks/blocks data does not overlap in screen space this is the
      most efficient approach. However where ranks/blocks data have large amount
      of screen space overlap, this approach has high communication/compositing
      and overhead and a large amount of redundant computation that's discarded.
      The inplace-disjoint strategy was designed to address these issues. It
      leaves data inplace as much as possible but will assign pixels to ranks
      uniquely eliminating redundant computation. The communication costs are
      the same as the inplace strategy however they are split into two temporally
      disjoint parts with computation in between which tends to reduce congestion
      and contention. The balanced strategy divides the screen into equally sized
      disjoint regions and assigns each rank a region. This strategy can suffer
      from load balancing issues, and because no account is made of the initial
      data distribution it may have higher communication/compositing costs than
      the others. The parallel implementations have been tested with IceT in
      ParaView. The compositors uses non-blocking mpi communications, MPI
      subarrays for describing non-contoguous memory extents, and communicates
      efficiently by pasing mpi gpu mapped memory via extensions made to
      vtkPixelBufferObject. An object factory is used to override the serial
      objects with their parallel counterparts  when the parallel module is
      linked.
      
      * Contrast and Color Contrast Enhancement:
      The new contrast enhancement feature increases both dynamic range contrast
      while preserving patterns in the LIC. Contrast enhancment is implemented using
      histogram stretching. The color contrast enhancement is made in HSL space on
      the L channel to minimize color distortions. During the "enhanced" LIC mode
      contrast enhancement is also applied after the first pass of LIC compution.
      This helps strengthen streaking patterns.
      
      * Enhanced scalar color shading:
      A new mode has been added to the shader that shades surface geometry combining
      both LIC and scalar colors. The new shader produces bright colors without
      diminishing the visibility of the LIC by multiplying colored lit surface with
      computed LIC texture. The original blending implementation is left in place
      as it works well in many situations.
      
      * Noise texture customization:
      A new noise texture generator has been added to improve control over "streaking"
      in the convolved texture. The noise textures produced are fully customizable over
      9 degrees of freedom. [1] Noise distribution (Gaussian, Uniform, Perlin); [2] Noise
      texture size [3] Noise grain size [4,5] Min/max noise values [6] Number of noise
      levels; [7] Impulse noise probability; [8] Impulse noise background color; [9]
      Noise generator seed
      
      * Fragment masking controls:
      The new fragment masking provides controls over the color and intensity of masked
      fragments and their blending with scalars. Fragments are masked by threshold |V|<t,
      where t is a user specified threshold value, and V are mask vectors. Masking vectors
      can be optionally projected onto the surface or passed through un-modified so that
      threshold is provided in the original vector units and matches scalar color shading.
      
      * Vector Normalization Control:
      The new vector normalization control lets the user turn on and off normalization
      in the integrator. Disabling normalization can help highlight relative strengths
      in strongly varying regions of a flow field by making the amount of smoothing that
      occurs during convolution proportional to the flow strength.
      
      * Antialiasing:
      An optional anti-aliasing stage was added. In some cases the CE and EE stages
      produce streaks with sharp jagged transitions from black to white. The AA stage
      can be used to soften the result and smooth sharp transitions.
      
      * Optimizations:
      The implementation has been split into 8 major steps with the result of each stage
      cached in a texture.[1] Vector projection and lighting calculation; [2] Gather;
      [3] Compositingand guard pixel generation; [4] LIC Computation; [5] Scatter;
      [6] Scalar coloring; [7] Color contrast enhance; [8] Depth test. During user
      interaction stages that do not have modfied paramters or input data can be skiped
      using the cahced result instead.  This can save large amount of time for expensive
      operations such as projecting vectors, computing the LIC etc. Classes
      were added to simplify monitoring of various system paramters that would trigger
      an update, such as changes to lights, modelview or projection matrices, background
      color, etc. A new framebuffer object has been introduced, designed specifically
      for efficient buffer ping-pong, as well as efficiency improvements for setting
      shader unfiorms on inner parts of buffer ping-pong loops.
      
      * Porting and Testing:
      The code has been ported to Apple + ATI systems, and to OS Mesa with the gallium
      llvmpipe state tracker. A number of ctests have been introduced to excersize the
      new features. Parallel features have testing coverage in ParaView.
      
      Change-Id: I26f90a4e1e4e204289d38993d1e32fe5493b7a0d
      ad4dddfc
    • Sebastien Jourdain's avatar
      Merge topic 'fix-java-source-target-args' into master · ace2258e
      Sebastien Jourdain authored
      ec63dd64 Fix javac command line to only use -source 1.5
      ace2258e
    • Sebastien Jourdain's avatar
      Fix javac command line to only use -source 1.5 · ec63dd64
      Sebastien Jourdain authored
      Change-Id: Icedc9748e2fca201a53cd797ce89129e4541dffe
      ec63dd64
    • George Zagaris's avatar
      Merge topic 'remove-cosmo' into master · 66a77ae4
      George Zagaris authored
      03ae8259 Remove legacy ThirdParty/Cosmo and Filters/Cosmo
      66a77ae4
  2. 12 Sep, 2013 9 commits
  3. 11 Sep, 2013 8 commits
  4. 10 Sep, 2013 3 commits
  5. 09 Sep, 2013 15 commits
    • George Zagaris's avatar
      Merge topic 'fix_cosmo_64' into master · 2645061a
      George Zagaris authored
      1749bb03 Fix 64bit types in cosmo reader.
      2645061a
    • Utkarsh Ayachit's avatar
      Fix 64bit types in cosmo reader. · 1749bb03
      Utkarsh Ayachit authored
      Cosmo64 doesn't use 64 bit velocities or grids. Fixed that.
      
      Change-Id: I712b1bf7cc07f45add8a87dd6e92795520e4f475
      1749bb03
    • Sebastien Jourdain's avatar
      Merge topic 'fix-java-package' into master · 1a8ba84c
      Sebastien Jourdain authored
      d1e502e0 Add CMake options to allow proper Java Packaging of the VTK libraries
      1a8ba84c
    • Sebastien Jourdain's avatar
      Add CMake options to allow proper Java Packaging of the VTK libraries · d1e502e0
      Sebastien Jourdain authored
      In order to properly build a Java package of the VTK libraries you
      will need to configure CMake with at least he following options:
      
       -DCMAKE_BUILD_TYPE:STRING=Release
       -DVTK_JAVA_INSTALL:BOOL=ON
       -DCMAKE_INSTALL_PREFIX:PATH=/.../install
       -DVTK_WRAP_JAVA:BOOL=ON
      
      Eventually you can customize the following ones for Maven but by
      default they will be filled with a valid local configuration.
      
         -DMAVEN_LOCAL_NATIVE_NAME:STRING=Win32
      
         # By default it will contain only the local setup but can be override
         # for release in order to provide the full set of native artifacts
         -DMAVEN_NATIVE_ARTIFACTS:STRING=Win32;Win64;Linux32;Linux64;OSX
      
         # Path where the local repos should be stored.
         # The listed value is the default one.
         -DMAVEN_LOCAL_REPOSITORY:STRING=${user.home}/vtk-maven-repos
      
         # Group id artifact for the generated VTK
         -DMAVEN_VTK_GROUP_ID:STRING=kitware.community
      
      Then do a "make install"
      
      Once VTK is installed inside the install directory you can rely
      on Maven to deploy/install the generated package.
      For that please read the README.txt file that has been pushed
      to the install directory.
      
      Change-Id: Ie552f80398c122832e153cf52813099967e1d7c6
      d1e502e0
    • Bill Lorensen's avatar
      Merge topic 'BadToolTip_PlotPie' into master · e52a8d17
      Bill Lorensen authored
      e3025f5a BUG: ChartPie tooltip is wrong
      e52a8d17
    • Bill Lorensen's avatar
      BUG: ChartPie tooltip is wrong · e3025f5a
      Bill Lorensen authored
      ChartPie's tooltip is formatted in
      vtkChartPie::LocatePointInPlot. This method relies on
      PlotPie:::GetNearestPoint, but the plotpos vector was not being
      computed by GetNearestPoint. Consequently, the tooltip always reported
      a 0 value for the dependent variable.
      
      In this patch, PlotPie:::GetNearestPoint computes the dependent
      variable and return it in plotpos[1]. In addition, plotpos returns the
      independent vaiable in plotpos[0]. ChartPie now uses plotPos.GetY() to
      obtain the dependent variable. This seems consistent with other
      charts.
      
      To reproduce the problem (before the patch) and verify (after the
      patch) run:
      
      vtkChartsCoreCxxTests "TestPieChart" -I
      and move the mouse of each pie chart segment.
      
      Change-Id: I5c3d56a79c3ceca6616bae2b0a7a85f9c15f2293
      e3025f5a
    • Zack Galbreath's avatar
      Merge topic 'MemoryLeak_TanglegramItem' into master · fa8f73e3
      Zack Galbreath authored
      a8660cb9 COMP: Must delete strings
      fa8f73e3
    • Bill Lorensen's avatar
      Merge topic 'Charts_OverloadVirtual' into master · 4eddbb5f
      Bill Lorensen authored
      fd255a85 COMP: Bad signature for GetTooltipLabel
      4eddbb5f
    • Utkarsh Ayachit's avatar
      Merge remote-tracking branch 'pvvtk/pv-master' into HEAD · 964a7faf
      Utkarsh Ayachit authored
      * pvvtk/pv-master:
      
      Change-Id: Ia3a4f444aed1cdefbcbc6579da8e9ac65fa9a41a
      964a7faf
    • Utkarsh Ayachit's avatar
      Merge topic 'forward-to-vtk-master' into pv-master · 7f20416e
      Utkarsh Ayachit authored
      59eda4fa Merge topic 'fix-plot-points-bounds-bug' into master
      6f7d3a61 Fix off-by-one error in ComputeBounds() for vtkPlotPoints
      cef2c0f7 Merge topic '14238-fix-ensight-crash' into master
      edcc69bb Merge topic 'fix-python-cmake-rules' into master
      14e73bd9 Add CMake cache option for VTK_BUILD_PYTHON_MODULE_DIR
      2f1d480d Merge topic 'fix_set_get' into master
      5a30ad86 fix failing SetGet test
      4f25c6a1 Merge topic 'tanglegram' into master
      f1532fe7 Merge topic 'vtk-web-flush-start-factory' into master
      af9cb388 Fix flushing issue in vtkWeb process at startup
      145696e4 Merge topic 'charts-double-precision' into master
      1b6bed08 Additional base line for double prevision test
      5d7436f3 Merge topic 'charts-double-precision' into master
      4544175e Merge topic 'new-fontconfig-baselines' into master
      f63d1ba8 Merge topic 'fix_delete_without_new' into master
      5de0ed66 fix Delete without New in vtkOpenGLGPUVolumeRayCastMapper
      ...
      7f20416e
    • Utkarsh Ayachit's avatar
      Merge topic 'add_cosmo_reader' into pv-master · 53e02627
      Utkarsh Ayachit authored
      1011cb96 Adding adaptive-cosmo reader.
      271999ad Fix various windows build issues.
      e89d7280 Update Cosmo library.
      6f7e36b9 ENH: Add byte-swapping capability to CosmoReader
      53e02627
    • Utkarsh Ayachit's avatar
      Merge topic 'add_cosmo_reader' into master · 85f895c4
      Utkarsh Ayachit authored
      1011cb96 Adding adaptive-cosmo reader.
      271999ad Fix various windows build issues.
      e89d7280 Update Cosmo library.
      6f7e36b9 ENH: Add byte-swapping capability to CosmoReader
      85f895c4
    • Utkarsh Ayachit's avatar
      Merge topic '14238-fix-ensight-crash' into pv-master · e6af2e80
      Utkarsh Ayachit authored
      cac24ae3 Fix crash in EnSight reader
      e6af2e80
    • Bill Lorensen's avatar
      COMP: Must delete strings · a8660cb9
      Bill Lorensen authored
      The strings Tree1Label and Tree2Label were not being deleted.
      
      Change-Id: Iabace00e11f2b49fe414f70e38d37d93ab0141b3
      a8660cb9
    • Bill Lorensen's avatar
      COMP: Bad signature for GetTooltipLabel · fd255a85
      Bill Lorensen authored
      Derived class method signature differs from superclass signature.
      
      GCC compilers warn (-Woverloaded-virtual)
      virtual vtkStdString vtkPlot::GetTooltipLabel(const vtkVector2d&, vtkIdType, vtkIdType)' was hidden by
      virtual vtkStdString vtkPlotHistogram2D::GetTooltipLabel(const vtkVector2f&, vtkIdType, vtkIdType
      
      vtkPlot contains the correct signature for the method. Replaced
      vtkVector2f with vtkVector2d.
      
      Change-Id: Id10b0630660a3babb9662add2e98defa18494ad3
      fd255a85
  6. 06 Sep, 2013 1 commit
    • George Zagaris's avatar
      Adding adaptive-cosmo reader. · 1011cb96
      George Zagaris authored
      This commit adds the adaptive cosmo reader, initially contribued by Jon Woodring
      that used the older streaming framework. The reader has been modified when the
      update multiblock dataset streaming framework in VTK.
      
      Change-Id: Iec1daff4e8fed7495e0cba21ae1956480f83b60c
      1011cb96