1. 16 Apr, 2019 1 commit
  2. 28 Mar, 2019 1 commit
    • Ben Boeckel's avatar
      Revert "Merge topic 'vtkShaderProperty'" · 717c542d
      Ben Boeckel authored
      This reverts commit 075f7997, reversing
      changes made to a7add686.
      This change was causing issues in ParaView and since ParaView is in its
      release cycle, reverting it is easier than fixing it right now.
      See !5345 for discussion.
      Merge-request: !5096
  3. 22 Mar, 2019 1 commit
  4. 08 Jan, 2019 1 commit
  5. 20 Dec, 2018 1 commit
  6. 29 Oct, 2018 1 commit
  7. 11 Dec, 2017 1 commit
  8. 05 Dec, 2017 2 commits
  9. 15 Nov, 2017 1 commit
  10. 02 Oct, 2017 1 commit
  11. 26 Sep, 2017 1 commit
    • Alvaro Sanchez's avatar
      Using flat-index attribute map for legacy OpenGL. · ded7a95c
      Alvaro Sanchez authored
      Given that different vtkPainter instances rely on different shallow copies of
      the multiblock data object, it was not simple to map attributes by dataObject
      pointers. Because of this, the flat-index mechanism is still used in legacy
      GL code.
  12. 18 Sep, 2017 1 commit
  13. 03 Aug, 2017 1 commit
    • Ken Martin's avatar
      rearchitect the 3D interaction code · 27cf958f
      Ken Martin authored
      Now that 3D picking is implemented as core methods
      of th epickers the specific PropPicker3D is no longer
      needed. Many 3d interaction methods moved down into
      OpenVR style for now. This topic may reduce functionality
      with OpenVR temporarily. A subsequent topic containing
      many OPenVR specific changes will follow.
  14. 18 Jul, 2017 1 commit
    • Utkarsh Ayachit's avatar
      Cleanup offscreen rendering support in VTK. · d0e7aab3
      Utkarsh Ayachit authored
      This commit cleans up offscreen rendering support in VTK. This includes
      several changes.
      1. It makes EGL support independent of onscreen GL
         support. It's now possible to enable EGL and GLX in same build of
         VTK, for example, so long as the two use shared GL-dispatch
         mechanism.  Previously, EGL could not be enabled together with GLX
         (i.e.  `VTK_USE_X` set to ON). These changes allow for that
      2. `VTK_USE_OFFSCREEN_EGL` is replaced by `VTK_OPENGL_HAS_EGL`.
          This is consistent with `VTK_OPENGL_HAS_OSMESA` flag. And also
          in similar vein to changes to `FindOpenGL.cmake` where EGL
          becomes a component of `find_package(OpenGL)`.
      3. `VTK_EGL_DEVICE_INDEX` has been replaced by
         `VTK_DEFAULT_EGL_DEVICE_INDEX` since it only affect the default
         value, and doesn't preclude users from manually specifying the
         device index.
      4. `VTK_USE_OFFSCREEN` has been replaced by
         `VTK_DEFAULT_RENDER_WINDOW_OFFSCREEN`, since similar to `3`
         this option was only intended to affect the default value.
      5. Simplified `FindEGL.cmake`. Apps don't need to link against
         `gldispatch` library and hence removed it and created an
         imported target to simplify use.
      6. For all changes to CMake variables, we put out `DEPRECATION`
         messages if old variables are used.
      7. When `VTK_USE_X` and `VTK_OPENGL_HAS_EGL` or
         `VTK_OPENGL_HAS_OSMESA` in ON, following things happen:
         i.   The object-factory simply returns the X-based (or
              onscreen) render window i.e. `vtkXOpenGLRenderWindow`.
         ii.  To create one of the offscreen render windows, one can
              manually instantiate them e.g. by explicitly
              instantiating `vtkEGLRenderWindow`.
              `vtkXOpenGLRenderWindow` has implementation to swap to
              OSMesa if `SetUseOffscreen(true)` is called.
         iii. As soon any off-screen features are enabled, `glew`
              uses the offscreen library APIs to get OpenGL function pointers
              irrespective of how the active context was initialized.
  15. 30 May, 2017 1 commit
    • Ken Martin's avatar
      add better support for cube map textures and mipmaps · c4875273
      Ken Martin authored
      This topic adds cubemap and mipmap options to vtkTexture
      It updates the polydatamapper to always declare and bind
      any textures assigned to the actor/property even if
      there are no texture coordinates (the shader may compute them)
      mipmaps are supported for cubemaps on OpenGL 4 or later.
      For earlier versions the request is ignored.
  16. 05 May, 2017 1 commit
  17. 17 Nov, 2016 1 commit
  18. 05 Oct, 2016 1 commit
    • David C. Lonie's avatar
      Add vtkBillboardTextActor3D. · 0455845f
      David C. Lonie authored
      vtkBillboardTextActor3D is anchored and aligned to a 3D point, but
      is always oriented towards the camera and scaled for pixel/texel
      Also updated and tested the GL2PS export for this class.
  19. 20 Sep, 2016 1 commit
  20. 29 Aug, 2016 1 commit
    • Ken Martin's avatar
      Add support for OpenVR and Oculus to VTK · a38815b8
      Ken Martin authored
      This topic adds support for VTK rendering using the
      oculus or OpenVR/Vive VR headsets. It also adds some
      core support classes that both these devices use to
      add support for 3D interaction events and picking via
      These modules are designed to use the object factory
      mechanism to override the standard OpenGL RenderWindow.
      If needed, the override of the factory can be turned off
      Off is useful for apps that have a normal OpenGL window
      but may want to explicitly create an occulus or openVR
      window as a result of user input such as a menu option.
      This topic adds CMake find modules for SDL2, OculusSDK,
      and the OpenVR SDK.
  21. 23 Mar, 2016 1 commit
    • David E. DeMarle's avatar
      Allow backend agnostic render passes. · de7ea53b
      David E. DeMarle authored
      Promoting RenderPass and thus FrameBufferObject and RenderState to
      Rendering Core allows other modules to define RenderPasses that are
      are independent of RenderingBackend choice.
  22. 08 Mar, 2016 1 commit
  23. 10 Dec, 2015 1 commit
    • Ken Martin's avatar
      Provide better rendering backend support · ef684995
      Ken Martin authored
      Add a configured value in vtkRenderingOpenGLConfigure
      for external applications to use and provide a new
      method in vtkRenderWindow to get the backend at
  24. 14 Jan, 2015 3 commits
  25. 05 Jan, 2015 1 commit
    • Ken Martin's avatar
      Fix up some dashboard issues · 8f0ef478
      Ken Martin authored
      Make the PointGaussianMapper only available for the OpenGL2 backend.
      Fix PrintSelf
      Change-Id: Iae1902cf603fb18f7aa6f7cd53305c46648708b9
  26. 17 Dec, 2014 1 commit
    • Ken Martin's avatar
      Add a point gaussian mapper for cosmology and cleanup · 085a0364
      Ken Martin authored
      Add in a mapper that renders points as gaussian splats.  In
      the future we can extend it a bit more to do other useful
      things. It colors the points and scales then based on
      arrays that are passed in.
      This patch also includes a performance improvement for
      the spheremapper so that it uses less memory.  It is
      the same basic code as the point gaussian mapper which
      is why it is in the same patch.
      Change-Id: I8bce4446be063eb5d6a5eb4bc1a51e4369ba61cf
  27. 27 Sep, 2014 1 commit
    • Ken Martin's avatar
      Fix otherPrint and TestEmptyInput tests · f5a7a1a8
      Ken Martin authored
      There were a lot of abstract classes defined in Rendering/Core or
      Rendering/Volume that the OpenGL2 backend has not implemented yet.
      This causes a crach whenever such a class is instantiated as is
      done by some of the tests. The fix is to either remove or provide
      implementations for these classes. For the volme code this patch adds
      a VolumeOpenGL2 directory which will be where the new/converted
      volume rendering implementations will go.
      The other big piece is the painters. As we are not/can not support that API
      the classes were moved to OpenGL. The excpetion is the PainterDeviceAdapter
      which is part of RenderWindow. When building with OpenGL2 that class is
      treated in RenderWindow as a plain vtkObject that does nothing.
      vtkSmartVolumeMapper is not currenty built by OpenGL2 but could be if we
      are willing to add a bunch of ifdefs. The basic approach is there already
      in the class, just need to add a bunch more if we want to have that in the
      short term prior to the new GPU mapper being completed.
      This patch includes some other fixes that were required to get the tests to
      pass. Generally related to missing file properties or extra includes that
      were not needed.
      Change-Id: Id41db2d90526c109b1acb7442d99d8c2371cc396
  28. 25 Jun, 2014 1 commit
    • Marcus D. Hanwell's avatar
      Remove the wrap exclusion at the module level · 94288eee
      Marcus D. Hanwell authored
      The wrapped languages need to wrap the implmentation modules to get
      some of the auto initialization in order to get the overrides. The
      majority of the module shouldn't be wrapped, but adding it as an
      easy path to get overrides working for wrapped languages.
      Change-Id: I34ee6b293b29f03b88e037a6a12a546b16a3e4ab
  29. 24 Jun, 2014 1 commit
    • Marcus D. Hanwell's avatar
      Must be marked WRAP_EXCLUDE too for Tcl smoke tests · 70e078b8
      Marcus D. Hanwell authored
      These classes are experimental, and are not necessary to be wrapped.
      The Tcl tests may need some modification for OpenGL2 backends though
      where not all interface classes have overrides.
      Change-Id: If62aace5f1a41930112a589004e5cffbdbad5468
  30. 23 Jun, 2014 1 commit
  31. 22 Apr, 2014 1 commit
    • Marcus D. Hanwell's avatar
      First pass at a new render widget · 3c6d2972
      Marcus D. Hanwell authored
      Still not complete, using GLEW for OpenGL extensions, and an X
      implementation that uses more recent API to create OpenGL contexts
      including OpenGL 3/4 if the required extension is present. This also
      used XLibs directly for interaction, rather than going through Xt.
      It needs a little more work to actually hook up something that will
      render to the context, but it shows a great black window right now!
      Change-Id: Ida0be9f2e9dc11ba3253ffd18cffa2e983ec954e
  32. 04 Oct, 2013 1 commit
    • Burlen Loring's avatar
      refactor vtkHardwareSelector device state management · 503d68d2
      Burlen Loring authored
      This patch refactors device dependent OpenGL state
      management code used only by the vtkHardwareSelector
      out of vtkOpenGLPainterDeviceAdaptor and into the
      new vtkOpenGLHardwareSelector class and decorates the
      old vtkOpenGLPainterDeviceAdaptor API with VTK_LEGACY.
      In vtkOpenGLHardwareSelector added a check for and
      load of the GL_ARB_multisample extension before using
      it. This fixes failing tests in ParaView with MS GDI
      OpenGL 1.1 driver which doesn't support multisampling.
      Change-Id: I450802a58d346be801fe0bc74841619cccb17075
  33. 25 Sep, 2013 1 commit
    • Marcus D. Hanwell's avatar
      Removed the XML shaders and associated classes · 67cb974b
      Marcus D. Hanwell authored
      These have not been used in quite some time, add dependencies on XML
      in the core rendering API and have been superseded by their sequels.
      Disabled GenericVertexAttributes tests for now due to use of XML
      shader API, along with the materials object example.
      Change-Id: I3c57c46b1d3cc7f550bd30e1abcd6e5d87347d36
  34. 13 Sep, 2013 1 commit
    • 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
      * 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
  35. 06 Feb, 2013 1 commit
    • Kyle Lutz's avatar
      Add composite data display attributes · 6de46c18
      Kyle Lutz authored
      This adds new functionality to specify renderering attributes
      for specific blocks in a multi-block dataset.
      This also updates the vtkCompositePainter to make use of the
      composite data attributes if available.
      Change-Id: I3240564f2570ab41530421aefd1a3bb77fbfa628
  36. 13 Dec, 2012 1 commit
    • David C. Lonie's avatar
      Add a TextRenderer interface and implementation. · f393fa8b
      David C. Lonie authored
      An abstract vtkTextRenderer interface is added to RenderingCore.
      This will allow all rendering classes to have access to text rendering
      functionality without an explicit dependence on RenderingFreeType. Once
      existing code is migrated to use this simplified interface, applications
      using VTK will be able to add their own text rendering backends easily.
      The interface is designed to, at minimum, switch between FreeType and
      MathText rendering, enabling any users of the interface to have access
      to pretty-printed equation by passing in MathText markup, which is a subset
      of LaTeX. The implementation will test for the presence of "$...$" in the
      input string and, if present, MathText will be used instead of FreeType.
      If MathText is unavailable (it requires python and matplotlib) or fails
      to render, a warning is produced and the FreeType backend is used as a
      The default implementation of this class is vtkMathTextFreeTypeTextRenderer
      in the RenderingFreeType module.
      Change-Id: I215ad856e3f197c3ea22eb8f9dd68e5ec2f9e620
  37. 24 Oct, 2012 1 commit
    • David Gobbi's avatar
      ENH: Make the wrappers detect abstract classes automatically. · 62700fbe
      David Gobbi authored
      Deprecate the "--abstract" and "--concrete" options for wrapper
      tools.  Also deprecate specifying an output file without "-o",
      and remove the old "infile [hintsfile] concrete outfile" calling
      convention, which hasn't been used since VTK 5.6 and was broken.
      The wrappers now ignore the ABSTRACT property in cmake, instead
      they automatically detect concrete classes by searching for the
      New() method.
      Some classes were marked as ABSTRACT, even though they had a New()
      method that returned a valid instance.  The ABSTRACT property
      has been removed from these classes, for consistency.
      Note that the vtkInstantiator classes still rely on the ABSTRACT
      property, so the ABSTRACT property cannot yet be removed from the
      cmake files.
      Change-Id: I05ebf42e69367fd4ce7256864a25d1f0c16ed4b8