1. 10 Dec, 2015 1 commit
    • Aashish Chaudhary's avatar
      Optimizing the code a bit · f435cb46
      Aashish Chaudhary authored
      After reading the spec carefully realized that
      we don't need to treat texture type as basis
      for texture dimension. Also added note clarification
      on what does size means.
      f435cb46
  2. 08 Dec, 2015 1 commit
  3. 07 Dec, 2015 1 commit
  4. 03 Dec, 2015 1 commit
  5. 09 Oct, 2015 1 commit
    • Ken Martin's avatar
      Add android vr example and fixes to support it · c8fd8f3e
      Ken Martin authored
      This topic adds a volume rendering example to android builds.  It also
      fixes a number of issues to make it work with android including on
      Samsung devices which have a different OpenGL driver.
      
      VR use of 1D textures have been replaced with 2D textures as
      1D textures are not supported on OpenGL ES.
      
      Some minor build inprovements are included as well.
      c8fd8f3e
  6. 22 Sep, 2015 1 commit
  7. 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
  8. 04 May, 2015 1 commit
  9. 01 May, 2015 4 commits
  10. 11 Mar, 2015 1 commit
  11. 30 Jan, 2015 3 commits
    • Ken Martin's avatar
      Fix GLES3 · e25f524a
      Ken Martin authored
      The prior commit was actually built using ES2 so I did not see
      these issues until I fixed that build to really use ES 3.0.
      
      Change-Id: I80315f7c665fa43d85a08d2ed4f7f5e528c5588d
      e25f524a
    • Ken Martin's avatar
      Expose more methods in opengles3 · f91f8efd
      Ken Martin authored
      Change-Id: Idca346035d9f8b98428ba7b913deb043e19c42b2
      f91f8efd
    • Ken Martin's avatar
      Fix compile issues for es2 · ea26fe1c
      Ken Martin authored
      Change-Id: I586da88a419372b04ac1c05febb25f051f7441f4
      ea26fe1c
  12. 18 Jan, 2015 1 commit
    • Aashish Chaudhary's avatar
      Fixed when mappers try to reuse the same texture · ca6c800d
      Aashish Chaudhary authored
      This would happen if a mapper reuses a texture and input
      has changed. Since the context remains the same the texture
      is not destroyed and the texture object uses the same parameters
      as the last one (format and type).
      
      Change-Id: I628b1a112966afbc6666412def69ae23031d64fa
      ca6c800d
  13. 12 Jan, 2015 1 commit
  14. 26 Dec, 2014 1 commit
  15. 25 Dec, 2014 1 commit
  16. 24 Dec, 2014 2 commits
  17. 18 Dec, 2014 1 commit
  18. 17 Dec, 2014 2 commits
  19. 16 Dec, 2014 2 commits
  20. 10 Dec, 2014 1 commit
  21. 03 Nov, 2014 1 commit
  22. 31 Oct, 2014 1 commit
    • Ken Martin's avatar
      Add in depth peeling pass and a couple other passes · 925f5066
      Ken Martin authored
      Convert depth peeling render pass to the OpenGL2 backend.
      Also add a new class that encapsulates the basic rendering
      steps that VTK uses.
      
      Modify the renderer to use the depth peeling pass instead of
      having two copies of the code lying around. Removed the depth
      peeling code from Mapper2D as it is no longer needed now that we
      have CopyToFrameBuffer working. That is a lighter weight way to
      get a quad up on the screen. Plus that keeps the depth peeling
      code more localized as it should be. Clean up a lot of depth
      peeling code that was in the renderer and now there are cleaner
      ways of doing it (passing information keys).
      
      Change-Id: I8d0a53bb25920bd30eade49ed12126b9b44be358
      925f5066
  23. 29 Oct, 2014 1 commit
    • Ken Martin's avatar
      Get render passes working in OpenGL2 · f15f4bfe
      Ken Martin authored
      Add in a bunch of render pass classes that were previously removed.
      At the same time get the GaussianBlurPass and SobelGradientMagnitude
      classes to work with the new backend.
      This code now exercises a few methods that previously were not
      previously exercised. As such I made some significant changes to those
      methods to make them fit in better with the new architecture.
      
      In the process of testing I did find a calculation error in the old
      code related to cmoputing camera angles. I fixed this issue in both the
      old and new rendering backend.
      
      The tests for these passes were modified to not use the DepthPeelingPass
      as that pass has not been converted yet.
      
      Change-Id: Ie40231385291aa06848034460817b171e60f7a53
      f15f4bfe
  24. 02 Oct, 2014 1 commit
    • Ken Martin's avatar
      Fix cleanup issue · 7129b4f6
      Ken Martin authored
      The weak pointer class sets Context to NULL before the texture resources
      are cleaned up.  The destructor for RenWin call ReleaseGraphcisResources.
      Modify TextureObject to have ReleaseGraphicsResources method that gets
      passed a window so it can work from the destructor.
      
      Change-Id: If66d00268f6d7d6f2a105ef534138e0fe7fd7f57
      7129b4f6
  25. 25 Sep, 2014 1 commit
    • Ken Martin's avatar
      Fix compile warning in TextureObject · 12463081
      Ken Martin authored
      Texture object method was requiring the width and height of the
      framebuffer as arguments.  It was doing error testing on these
      arguments but there is no reason to.  Copying a texture where part of
      the texture goes outside the framebuffer is fine. That can happen
      and is not a problem. The extra texels just get discarded. This also
      saves having to know the width and height of the frame buffer
      to make this call.
      
      Change-Id: I96cafda2ac900f1ecd247e6678e1e68cbccf033c
      12463081
  26. 22 Sep, 2014 1 commit
    • Ken Martin's avatar
      in progress · ca073466
      Ken Martin authored
      Change-Id: I9f2bafb8707c86180a0893280474c101593cc9c0
      ca073466
  27. 10 Sep, 2014 1 commit
  28. 16 Jul, 2014 1 commit
  29. 15 Jul, 2014 1 commit
  30. 13 Jun, 2014 1 commit
    • Marcus D. Hanwell's avatar
      Made vtkRenderingOpenGL2 independent of vtkRenderingOpenGL · 8bc98a02
      Marcus D. Hanwell authored
      This required several classes to be copied over, they may not stay.
      It also required me to port many calls from vtkgl to GLEW, and get
      rid of checks for features in OpenGL 2.1 or less. The extension
      manager has been removed, and its functionality replaced.
      
      Change-Id: I60f8858a315a0e91c175aef6152ab57d26650cb4
      8bc98a02
  31. 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