Difference between revisions of "New Developer Features in GIMIAS 1 6"

From user's Wiki!
Jump to: navigation, search
Line 7: Line 7:
 
* Comments:  
 
* Comments:  
 
* Changelog ([https://sourceforge.net/apps/mantisbt/gimias/search.php?project_id=1&sticky_issues=off&fixed_in_version=1.6.r1&sortby=last_updated&dir=DESC&hide_status_id=-2 MantisBT]):
 
* Changelog ([https://sourceforge.net/apps/mantisbt/gimias/search.php?project_id=1&sticky_issues=off&fixed_in_version=1.6.r1&sortby=last_updated&dir=DESC&hide_status_id=-2 MantisBT]):
 +
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=443 ENH #0443: Cannot adjust maximum quality for volume rendering]
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=442 FIX #0442: Volume Rendering quality is low compared to ImageVis3D]
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=442 FIX #0442: Volume Rendering quality is low compared to ImageVis3D]
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=441 ENH #0441: Import transfer function from ImageVis3D to compare volume rendering]
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=441 ENH #0441: Import transfer function from ImageVis3D to compare volume rendering]
Line 31: Line 32:
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=399 ENH #0399: Allow adding/editing/removing tags for DataEntity metadata]
 
** [https://sourceforge.net/apps/mantisbt/gimias/view.php?id=399 ENH #0399: Allow adding/editing/removing tags for DataEntity metadata]
  
== FIX #0442: Volume Rendering quality is low compared to ImageVis3D ==
+
== Volume Rendering ==
  
Comparing volume rendering of the same dataset and the same transfer function, shows a lower quality compared to ImageVis3D. The UseCompressedTexture flag was set to true in the MITK volume rendering mapper (GPUVolumeMapper3D). Changing it to false, changes the quality to the same level as ImageVis3D. In the figure bellow you can appreciate the difference before and after changing the UseCompressedTexture flag in GIMIAS.
+
This section describes the issues 0443, 0442, 0441 and 0439.
  
[[File:VolumeRenderingCompression.png | thumb | none| 400px | Compare texture GPU volume rendering with/without texture compression in GIMIAS]]
+
The name of the volume rendering transfer function is not very descriptive and there are a lot of controls. To reduce this complexity, a snapshot has been added for each transfer function and the controls are grouped by its functionality.
  
== ENH #0441: Import transfer function from ImageVis3D to compare volume rendering ==
+
[[File:VolumeRendering.png | thumb | none| 400px | Volume rendering]]
  
 
Transfer Function editor allows importing a transfer function from [http://www.sci.utah.edu/software/imagevis3d.html ImageVis3D] software as ".1dt" format. This allows to compare the volume rendering applied to the same object. For example, the "hand" sample data set has been used to compare the volume rendering in both applications.
 
Transfer Function editor allows importing a transfer function from [http://www.sci.utah.edu/software/imagevis3d.html ImageVis3D] software as ".1dt" format. This allows to compare the volume rendering applied to the same object. For example, the "hand" sample data set has been used to compare the volume rendering in both applications.
Line 43: Line 44:
 
[[File:ImportImageVis3DTransferFunction.png | thumb | none| 400px | Imported ImageVis3D Transfer Function]]
 
[[File:ImportImageVis3DTransferFunction.png | thumb | none| 400px | Imported ImageVis3D Transfer Function]]
  
== ENH #0439: Is difficult to configure volume rendering for an image ==
+
Comparing volume rendering of the same dataset and the same transfer function, shows a lower quality compared to ImageVis3D. The UseCompressedTexture flag was set to true in the MITK volume rendering mapper (GPUVolumeMapper3D). Changing it to false, changes the quality to the same level as ImageVis3D. In the figure bellow you can appreciate the difference before and after changing the UseCompressedTexture flag in GIMIAS.
  
The name of the volume rendering transfer function is not very descriptive and there are a lot of controls. To reduce this complexity, a snapshot has been added for each transfer function and the controls are grouped by its functionality.
+
[[File:VolumeRenderingCompression.png | thumb | none| 400px | Compare texture GPU volume rendering with/without texture compression in GIMIAS]]
 +
 
 +
The maximum quality of the volume rendering is controlled settings the number of texture planes. The Sample Distance slider allows controlling this parameter to adjust the quality of the volume rendering depending on the input dataset. In the figure bellow you can appreciate the difference between a sample distance of 2 and a sample distance of 0.1.
 +
 
 +
[[File:SampleDistance1.png | thumb | none| 400px | Sample Distance of 0.1]] [[File:SampleDistance2.png | thumb | none| 400px | Sample Distance of 2]]
  
[[File:VolumeRendering.png | thumb | none| 400px | Volume rendering]]
 
  
 
== ENH #0438: Cannot see all available tools in plugin selector ==
 
== ENH #0438: Cannot see all available tools in plugin selector ==

Revision as of 06:22, 23 January 2013

GIMIAS-1.6.r1 (in progress)

Volume Rendering

This section describes the issues 0443, 0442, 0441 and 0439.

The name of the volume rendering transfer function is not very descriptive and there are a lot of controls. To reduce this complexity, a snapshot has been added for each transfer function and the controls are grouped by its functionality.

Volume rendering

Transfer Function editor allows importing a transfer function from ImageVis3D software as ".1dt" format. This allows to compare the volume rendering applied to the same object. For example, the "hand" sample data set has been used to compare the volume rendering in both applications.

Imported ImageVis3D Transfer Function

Comparing volume rendering of the same dataset and the same transfer function, shows a lower quality compared to ImageVis3D. The UseCompressedTexture flag was set to true in the MITK volume rendering mapper (GPUVolumeMapper3D). Changing it to false, changes the quality to the same level as ImageVis3D. In the figure bellow you can appreciate the difference before and after changing the UseCompressedTexture flag in GIMIAS.

Compare texture GPU volume rendering with/without texture compression in GIMIAS

The maximum quality of the volume rendering is controlled settings the number of texture planes. The Sample Distance slider allows controlling this parameter to adjust the quality of the volume rendering depending on the input dataset. In the figure bellow you can appreciate the difference between a sample distance of 2 and a sample distance of 0.1.

Sample Distance of 0.1
Sample Distance of 2


ENH #0438: Cannot see all available tools in plugin selector

In the plugin selector, the GIMIAS plugins are shown as items with just the name of the plugin. Is not possible to know what are the available tools in each plugin. For example, in the MeshEditorPlugin, there are a lot of tools for mesh editing. For the end user, is difficult to search a specific tool that is available in the GIMIAS plugins.

In order to facilitate this, all GIMIAS plugins will show the available tools as children items. When clicking on a specific item, the description and the online documentation will be shown at the bottom.

Plugin selector

FIX #0417: GIMIAS takes 20 sec. to start in debug mode

Enabling just the MITK and SceneView plugin, GIMIAS takes 26 seconds to start in Debug mode. It will be interesting to reduce this start-up time for developers that are working on a GIMIAS plugin.

To analyse the start-up, the VS2010 profile tool has been used. Most of the time is taken when initializing OpenGL. In order to reduce this time, one option is to execute the different plugin providers in parallel in a secondary thread and send to the main GUI thread the GUI tasks. Initial tests show that this can reduce the start-up time to 15 seconds (42% of reduction).

The main window will be the responsible to update all the plugin providers. It will delegate the responsibility to the class PluginSelectorWidget. When the providers needs to be updated:

  • Adds an observer to each provider, that is derived from the class BaseProcessor and sends it for background execution
  • Executes the function OnStartLoading( ) to initialize framework before loading plugins
  • The provider will scan the plugins
  • When the plugins are going to be loaded, - this task should be executed by the main GUI thread - it will call the function UpdateOuptut( ) for each plugin
  • The main GUI thread will receive the information about the plugin to load/unload using a blTagMap and call the function LoadPlugin/UnLoadPlugin for the current provider.
  • Executes the function OnStopLoading( ) to initialize framework after loading plugins

The information messages will be sent to the main GUI thread using the UpdateCallback class and the function AddInformationMessage( ).

ENH #0402: Integrate MSV working area with metadata information

MSV working area allows visualization of data objects using tool tips and VTK buttons to navigate. Read more in MSV Plugin.

MSV working area with VTK buttons

ENH #0407: Add preview image for DataEntity

The interface class Core::DataEntityPreview is used for managing a preview image of a DataEntity. A concrete implementation is MITKPreview that uses wxImage to store/load/save the preview.

When a DataEntity is created, it searches the FactoryManager for an implementation of DataEntityPreview interface class and creates an instance.

The preview image is loaded/saved when the DataEntity is loaded/saved.

This class is used in MSV Plugin.