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
      717c542d
  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.
      ded7a95c
  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.
      27cf958f
  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
         configuration.
      
      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.
      d0e7aab3
  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.
      c4875273
  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
      alignment.
      
      Also updated and tested the GL2PS export for this class.
      0455845f
  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
      
        vtkRenderWindowInteractor3D
        vtkPropPicker3D
        vtkInteractorStyle3D
      
      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.
      a38815b8
  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.
      de7ea53b
  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
      runtime.
      ef684995
  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
      8f0ef478
  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
      085a0364
  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
      f5a7a1a8
  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
      94288eee
  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
      70e078b8
  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
      3c6d2972
  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
      503d68d2
  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
      67cb974b
  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
      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
  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
      6de46c18
  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
      fallback.
      
      The default implementation of this class is vtkMathTextFreeTypeTextRenderer
      in the RenderingFreeType module.
      
      Change-Id: I215ad856e3f197c3ea22eb8f9dd68e5ec2f9e620
      f393fa8b
  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
      62700fbe