1. 20 Sep, 2016 3 commits
    • David C. Lonie's avatar
      Exclude vtkOpenGLRenderTimer from wrapping. · 548990af
      David C. Lonie authored
      It's not a vtkObject, so CS wrapping fails.
      548990af
    • David C. Lonie's avatar
      Add vtkOpenGLRenderTimer. · 2570bf33
      David C. Lonie authored
      Uses GL_TIMESTAMP queries to provide asynch, nestable GPU timings.
      2570bf33
    • David C. Lonie's avatar
      Add an FXAA implementation. · fc9878ef
      David C. Lonie authored
      FXAA is an antialiasing technique that is applied in a post-processing
      pass. This implementation:
      
      - Is a single-pass fragment shader.
      - Detects edges.
      - Searches for edge endpoints.
      - Interpolates colors along the edge to give a smooth, antialiased
        color gradient.
      - Detects and corrects sub-pixel antialiasing.
      fc9878ef
  2. 19 Sep, 2016 2 commits
    • Alvaro Sanchez's avatar
      Fixed broken tests and updated documentation. · f133d013
      Alvaro Sanchez authored
      Moved member variables of vtkValuePass and ValuePassHelper into internals. Added
      a secondary baseline image for the case when the required extensions are not
      supported and vtkValuePass falls back to INVERTIBLE_LUT.
      f133d013
    • Alvaro Sanchez's avatar
      Added vtkValuePass::FLOATING_POINT for point data. · 0983eaba
      Alvaro Sanchez authored
      A field array of point data is uploaded as a vertex attribute and rendered to a
      float FBO member of the vtkValuePass. The legacy value rendering mode is still
      supported as INVERTIBLE_LUT.
      0983eaba
  3. 18 Sep, 2016 1 commit
    • Ken Martin's avatar
      Rework the CompositePolyDataMapper2 · 7912d340
      Ken Martin authored
      The old approach used a fast path for a very narrow set of
      conditions and then used a slow path for everything else.
      This approach required two sets of code,
      
      - GenericCompositePolydataMapper2
      - CompositePolyDataMapper2
      
      and had performance issues as the slow path was slower
      than OpenGL1 for some cases. This reworking consolidates
      the two approach together. The basic approach is that
      all blocks with the same VBO structure get grouped together
      and rendered as one. The number of different VBO structures is
      small so this results in a a small number of things to render.
      
      Each of those things (handled with a Helper class) gets rendered
      using its own VBO and IBOs with special code to handle the cases
      where uniforms have to be changed between blocks etc.
      
      The results are generally much faster. Some additional
      optimizations have resulted in further performance improvements.
      Generally this new class is as fast as the old fast path and
      tens to hundreds of times faster for the slow path.
      
      This class is still complex and could probably be reworked
      another three times. The complexity is largly driven by
      how complex the task is as each block can have different
      primitives, point/cell data arrays, etc.
      
      This topic adds four more tests for this class. As this
      class is the workhourse for ParaView it really needs far
      more testing in VTK. The three additional tests cover
      some use cases I know tend to cause issues.
      
      At the same time this topic changes how point picking is
      done to prevent some bad behavior. The old approach
      rendered surfaces for all passes up to the primId pass.
      The problem with that is that the point pass rendering may
      not match up with the surface rendering resulting in point
      Ids associated with incoreect composite/prop/process ids.
      It mixes two sets of data haphazzardly. Very bad. This
      topic cuases all point selection to be done by rendering
      points.
      7912d340
  4. 02 Sep, 2016 1 commit
  5. 15 Aug, 2016 1 commit
  6. 02 Jul, 2016 1 commit
    • Ken Martin's avatar
      add opengl gpu image processing support · c3a6dfa9
      Ken Martin authored
      Provide an example of how to use the GPU to
      do some image processing. Includes a helper class
      that handles some of the common tasks that you would
      need to do for image processing.
      c3a6dfa9
  7. 18 Apr, 2016 1 commit
    • David C. Lonie's avatar
      Fix dual depth peeling on ES. · d4700bf0
      David C. Lonie authored
      Disable dual depth peeling on ES2 -- ES2 does not support GL_MAX blending, which is essential for the peeling
      passes.
      
      It looks like ES3 provides everything we need by default.
      d4700bf0
  8. 11 Apr, 2016 1 commit
    • David C. Lonie's avatar
      Add vtkDualDepthPeelingPass. · 19d945f7
      David C. Lonie authored
      This implements a new depth peeling algorithm that peels layers of
      fragments from both the front and back of the translucent geometry at
      once.
      
      This also introduces vtkOpenGLRenderPass, which provides a virtual API
      that allows custom shader code replacements without the need to edit
      all mappers.
      
      The older vtkDepthPeelingPass has been updated to use the new
      vtkOpenGLRenderPass API, and is left in VTK as a fallback for drivers
      that lack support for the dual peeling features (floating point textures
      in particular).
      19d945f7
  9. 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
  10. 08 Mar, 2016 1 commit
  11. 21 Jan, 2016 1 commit
  12. 18 Jan, 2016 2 commits
  13. 13 Nov, 2015 1 commit
  14. 29 Oct, 2015 2 commits
  15. 22 Oct, 2015 1 commit
  16. 20 Oct, 2015 1 commit
  17. 19 Oct, 2015 1 commit
  18. 29 Sep, 2015 1 commit
    • Dan Lipsa's avatar
      ENH: Add option to offscreen render through EGL. · 7619c556
      Dan Lipsa authored
      EGL (Native Platform Interface) allows you to create windows, pbuffers or pixmaps
      and use OpenGL, OpenGL ES or OpenVG to draw in them. We add two cmake options:
      
      - VTK_USE_OFFSCREEN_EGL build option enables using the EGL offscreen render window
        with OpenGL API (tested on '4.5.0 NVIDIA 355.11').
      - VTK_EGL_DEVICE_INDEX is used for selecting a different graphics card to render too if
        your machine has more than one cards installed.
      7619c556
  19. 22 Sep, 2015 1 commit
    • David Gobbi's avatar
      Wrap many more classes with python. · e6f75b9a
      David Gobbi authored
      This makes the python wrappers ignore WRAP_EXCLUDE, and instead use
      the new property WRAP_EXCLUDE_PYTHON that excludes fewer classes.
      The WRAP_SPECIAL flag, which used to act as a whitelist for python,
      has been removed.
      
      Because this change causes classes to be wrapped in python by default,
      some third-party VTK packages might break until they modify their own
      CMakeLists.txt files to add WRAP_EXCLUDE_PYTHON where necessary.
      e6f75b9a
  20. 15 Sep, 2015 1 commit
    • Ken Martin's avatar
      Add eye dome lighting into VTK · 6671660f
      Ken Martin authored
      Add eye dome lighting into VTK. This appears to work but there
      are some sections of code that look like they may be left over
      from some earlier attempts. I did fix a couple issues so YMMV.
      6671660f
  21. 31 Aug, 2015 2 commits
    • Ken Martin's avatar
      Add PBO support into ES 3 builds and fix a warning · d38c65ba
      Ken Martin authored
      Add PBO support into OpenGL ES 3 builds
      
      Fix a warning on ES 2
      d38c65ba
    • Dan Lipsa's avatar
      COMP: Add logic to selectively use OpenGL or OSMesa. · f09903e4
      Dan Lipsa authored
      Use vtkOpenGL.cmake to decide to use (LINK_PRIVATE) OpenGL or Offscreen Mesa.
      OpenGL is now LINK_PRIVATE, so additional libraries and tests need to include OpenGL.
      Include the following in your CMakeLists.txt:
      
      include(vtkOpenGL)
      vtk_opengl_link(${module})
      
      for every ${module} that uses OpenGL. This takes care of include directories and
      linking of proper libraries.
      f09903e4
  22. 27 Aug, 2015 1 commit
    • Ken Martin's avatar
      a number of ios and driod fixes · ea3731bf
      Ken Martin authored
      Made vtkFrameBufferObject be built for ES 2 as
      ES 2 does support it. This required a few changes.
      
      Made a number of fixes to the Android/IOS super build process. Fixed
      the install prefix to be pushed down to the subbuilds. Made a number
      of top level setting cached in the sub builds because they are cached
      there already and need to be overriden in the superbuild.  Otherwise
      top level changes did not propagate down.
      ea3731bf
  23. 24 Aug, 2015 1 commit
  24. 20 Jul, 2015 1 commit
    • Ken Martin's avatar
      Add basic support for shadows · 1c573012
      Ken Martin authored
      First cut at adding shadows back into VTK. It does
      not use spot intensity maps and currently you have to
      build the render passes yourself. But I will soon add
      a Renderer method to turn shadows on that handles all
      the details for you.
      1c573012
  25. 09 Jul, 2015 1 commit
    • Ben Boeckel's avatar
      vtkOpenGLRenderUtilities: move Render{Quad,Triangle} · bba39d5b
      Ben Boeckel authored
      These methods cause vtkOpenGLRenderWindow to include vtk_glew.h (for
      GLuint) which must be included before gl.h to work properly. Since this
      header gets included in many places, move the affected methods to
      another class rather than forcing all users to do the proper inclusion
      order dance.
      bba39d5b
  26. 19 Jun, 2015 1 commit
  27. 01 Jun, 2015 2 commits
    • Ken Martin's avatar
      More cleanups · f1535309
      Ken Martin authored
      vtkgl::CellBO renamed vtkOpenGLHelper
      vtkgl::substitute moved to vtkShaderProgram::Substitute
      Creation of vtkOpenGLIndexBufferObject
      Creation of vtkOpenGLVertexBufferObject
      Move methods that were in vtkglVBOHelper into new classes
      Move IndexCount from CellBO to vtkOpenGLIndexBufferObject
      etc
      f1535309
    • Ken Martin's avatar
      Clenup some OpenGL2 code · 37f39403
      Ken Martin authored
      As we get closer to a next VTK release, make sure this is
      fairly clean or at least cleaner than it was.
      37f39403
  28. 20 May, 2015 1 commit
  29. 12 May, 2015 1 commit
  30. 01 May, 2015 2 commits
  31. 17 Apr, 2015 1 commit
  32. 25 Mar, 2015 1 commit