1. 27 Jul, 2017 1 commit
    • Jakob Weiss's avatar
      Implemented local ambient occlusion raycaster · 88c45357
      Jakob Weiss authored
      Raycaster is based on the technique described in "Local Ambient Occlusion
      in Direct Volume Rendering" by F. Hernell, P. Ljung, A. Ynnermann in IEEE
      TVCG 2010.
      Implementation does not allow for precomputed LAO volumes but instead
      estimates the LAO term per sample.
      88c45357
  2. 29 Sep, 2016 1 commit
  3. 20 Jan, 2016 1 commit
    • Christian Schulte zu Berge's avatar
      Fixed various issues: · 3f6158f3
      Christian Schulte zu Berge authored
      * Fixed deadlock in VolumeRenderer when changing the RaycastingProcessor
      * Fixed compile error in ITK module
      * Fixed some gcc warnings
      * Fixed usage of deprecated ScopedSynchronousGlJobExecution in mainwindow.cpp
      3f6158f3
  4. 20 Jul, 2015 1 commit
  5. 16 Jul, 2015 2 commits
  6. 10 Apr, 2015 1 commit
    • Christian Schulte zu Berge's avatar
      Major fix for AMD GPUs. · 083a730a
      Christian Schulte zu Berge authored
      Apparently, glBindAttribLocation() does not work as planned with AMD GPUs. Therefore, all Shaders yielded black images. Replaced all attribute locations with hard-coded ones in the vertex shader and removed corresponding convenience function from cgt::Shader.
      
      refs #382
      083a730a
  7. 23 Mar, 2015 1 commit
  8. 16 Jan, 2015 1 commit
  9. 14 Dec, 2014 1 commit
  10. 10 Dec, 2014 1 commit
  11. 05 Dec, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Completely refactored and cleaned up cgt::Texture interface: · 3df24932
      Christian Schulte zu Berge authored
      * cleaned up cgt::Texture's constructors: only two left - to create an empty texture or a non-empty one
      * cgt::Texture will no longer hold a copy of the image data in local memory
      * removed a lot of redundant/confusing methods
      * no longer needed to call uploadTexture() even though you don't want to upload sth.
      * Adapted all known code to the new interface
      * Removed cgt::TextureReaderDevil
      
      refs #613
      3df24932
  12. 26 Nov, 2014 1 commit
  13. 24 Nov, 2014 1 commit
  14. 23 Oct, 2014 3 commits
  15. 03 Aug, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Finished work on implementing asynchroneous signals: · bc11fde2
      Christian Schulte zu Berge authored
      * Slight changes to the API: renamed signal::trigger() to signal::triggerSignal() and signal::queue() to signal::queueSignal()
      * Replaced all sigslot signal emits through operator() with emits through emitSignal() to enable debug feature.
      * Fixed a possible race condition when deleting a GeometryTransferFunction and its editor window at the same time (as this will happen from different threads).
      
      refs #384
      bc11fde2
  16. 27 Jul, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing... · 8671e65c
      Christian Schulte zu Berge authored
      Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing thread-safe bidirectional iteration, insertion and removal of elements. Single constraint is that the element type must be a pointer type (or at least have pointer semantics) and never be 0. This is neat, as this class offers exactly what we need for a lock-free sigslot implementation.
      
      Updated sigslot implementation to use concurrent_pointer_list for connection storage. Hence, we can get rid of the locking mechanisms, which got completely removed.
      
      Since this simplified template definitions for sigslot, many campvis files needed to be adapted (i.e. removing the <> from has_slots<> and signal0<>).
      
      refs #384
      
      Conflicts:
      	core/classification/genericgeometrytransferfunction.h
      	core/eventhandlers/trackballnavigationeventlistener.h
      	core/pipeline/processordecoratormasking.h
      	core/properties/propertycollection.h
      	core/properties/transferfunctionproperty.h
      	core/tools/opengljobprocessor.h
      8671e65c
  17. 05 May, 2014 1 commit
  18. 28 Apr, 2014 1 commit
  19. 07 Apr, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Moved invalidation level from AbstractProperty to AbstractProcessor: · 293d43dd
      Christian Schulte zu Berge authored
      To now, each property hat an _invalidationLevel field that was evaluated by processors when the property had changed in order to determine what has to be done. However, since properties could also be owned by other classes, this design was semantically misleading.
      Therefore, it was removed with this commit and replaced by the invalidation map of each processor. Now, this per-processor mapping of property -> invalidation level is managed by the processor itself. Furthermore, the invalidation level is no longer setup during property creation but during AbstractProcessor::addProperty(), which also makes much more sense.
      
      ATTENTION: Due to these intrusive API changes, the code of all processors and other classes handling properties needs to be changed. As a reminder, the implementation of addProperty() also now takes a reference instead of a pointer, so that old code does no longer compile.
      
      refs #542
      293d43dd
  20. 01 Mar, 2014 1 commit
  21. 03 Feb, 2014 1 commit
  22. 29 Jan, 2014 1 commit
  23. 13 Jan, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Fixing commit 5f72759e: · 56724724
      Christian Schulte zu Berge authored
      C++ implicit conversion rules made ShaderManager::loadSeparate() ambiguous in some cases. So I decided to cut loose ends and completely refactored loading with standard version into ShaderManager::load() and loading with custom version into ShaderManager::loadWithCustomGlslVersion().
      ShaderManager::loadSeparate() is no longer available!
      56724724
  24. 05 Jan, 2014 2 commits
  25. 13 Dec, 2013 1 commit
  26. 28 Nov, 2013 1 commit
  27. 19 Nov, 2013 1 commit
  28. 30 Oct, 2013 1 commit
  29. 28 Oct, 2013 1 commit
  30. 25 Oct, 2013 1 commit
  31. 15 Oct, 2013 2 commits
  32. 08 Oct, 2013 1 commit
  33. 27 Sep, 2013 1 commit
  34. 10 Jul, 2013 1 commit
  35. 12 May, 2013 1 commit
    • schultezub's avatar
      Various changes to improve threading behaviour and coding conveniene: · 694a519e
      schultezub authored
       * Moved destruction of ReferenceCounted object to seperate thread (thus unloading rendering thread)
       * integration of OpenGL garbage collector into OpenGLJobProcessor (finally, you don't need to care anymore whether your code might call a GL object destructor and hence needs an OpenGL context)
       * changed DataContainer implementation from mutex/lock to concurrent container
       * fixing improper order of GL object deinitilization on program exit
      
      git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@492 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
      694a519e