Re: [Paraview] vtkPVSysnchronizedRenderWindows + Splitted views
Nikhil, thanks for clarification. You are right, I meant the multi-client mode. I looking forward for that feature. Thank you very much. Stephan Am 06.06.2013 um 20:37 schrieb Nikhil Shetty nikhil.she...@kitware.com: Stephan, On Thu, Jun 6, 2013 at 2:01 PM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Nikhil, no problem :) Bill, that undocked window would be a nice feature. Having your attention I guess there is another bug when running in CAVE mode: I was not able to use the multi-server and CAVE mode at the same time. Connecting one client to a pvserver session works but PV crashes immediately after connecting a second PV client to that session. multi-server configuration is when you have one client and you want to connect to multiple servers (sessions | backends |pilelines). This means that instead of viewing one visualization pipeline connection you can view many different connections. Alternatively if you want to connect many clients to one server then you are looking at a multi-client configuration. I'm guessing this is what you are looking to do. This will not work by current design because the PV cave mode works on the server side . http://paraview.org/Wiki/ParaView/Collaboration To have the current collaboration framework to work with the CAVE mode we would have to handle cave stuff at the client side instead of the server. I have been working on something in my spare time to make this possible but it'll be some time till that is done. Best reagrds, Stephan On Thu, Jun 6, 2013 at 9:59 AM, Stephan Rogge Stephan.Rogge at tu-cottbus.de wrote: Hello, when I run ParaView and connect to pvserver with activated CAVE mode (with a full screen render window), split the main active 3D view (horizontal or vertical) and create a non-3D view (e.g. Spreadsheet), the render window on the server is also separated into two viewports. The left half is covered by the 3D-render window the right side seems to be empty. I guess non-3D-views were not shown in the CAVE which is ok. But why is the render window separated into two viewports? Is this a desired behavior? That is not a desirable behavior. This is definitely a bug. Thanks for point that out. Concur -- I'd never tried a split window while using the VR plugin. Is it possible to detach new created views from the ParaView Tab-Widget-Panel to have pure view-windows? I don't think this is possible. The best one can do right now is a full-screen and that's it. I asked about that a while ago and I was told that it would only be a basic change to the parameters to the panels in Qt, so could in theory be done with a pretty basic code change to ParaView -- but I didn't pursue it beyond that. Stephan -- Regards Nikhil Bill -- Regards Nikhil ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] vtkGeometryRepresentation and server-mode
Hello, I wonder whether it is possible to controll pipeline-soureces (e.g. PlaneSource) vtkGeometryRepresentation over all processes runing on server-side. In this way I could set the UserTransformation of an Visible object within a view or setting texture data. I was able to do this in client-mode. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Fetching selection from SpreadSheet
Ok, rather than fetching the vtkTable's data directly I read out the Row Id of the selected row in my SpreadSheetView. This is done by connecting to the pqView::selected (pqOutputPort* opp) signal to my slot pqMyPanel:: selectionChanged(pqOutputPort* opp). The slot read the specific IDs: void pqMUDIIPanel::selectionChanged(pqOutputPort* opp) { if (opp) { vtkSMSourceProxy *activeSelection = opp-getSelectionInput(); if(activeSelection) { vtkSMVectorProperty* vp = vtkSMVectorProperty::SafeDownCast( activeSelection-GetProperty(IDs)); QListQVariant ids = pqSMAdaptor::getMultipleElementProperty(vp); if(!strcmp(activeSelection-GetXMLName(), CompositeDataIDSelectionSource)) { this-SelectedRowId = ids.at(2).toInt(); } } } } The Row Id can be used to work within the table on pure VTK-level via proxy properties. Hope this could help someone with a similar question. Cheers, Stephan -Ursprüngliche Nachricht- Von: Stephan Rogge [mailto:stephan.ro...@tu-cottbus.de] Gesendet: Dienstag, 21. Mai 2013 12:44 An: 'paraview@paraview.org' Betreff: Fetching selection from SpreadSheet Hello, I use the SpreadSheetView to visualize a vtkTable. Now I want to fetch the data of the row which is currently selected. Right now I can connect to a selection event but have no idea to obtain the slected data row. pqSpreadSheetView *ssv = qobject_castpqSpreadSheetView*(view); QWidget *widget = ssv-getWidget(); QObject::connect( ssv-getViewModel(), SIGNAL(selectionChanged(const QItemSelection)), this, SLOT(spreadSheetSelectionChanged(const QItemSelection))); When my slot is called, QItemSelection is empty. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] vtkTable Visualization
Hello again. Hm, I think I locate the problem. Debuging pqPlotMatrixView's base class pqContextView::setSelection(vtkSelection* sel) have a problem with existing selections on a multi block encapsulate vtkTable. I was able to make this observation within pqContextView::setSelection(vtkSelection* sel): When I select a row in a SpreadSheetView of the multi block encapsulated vtkTable the active selection is a CompositeDataIDSelectionSource. This source holds a property named IDs which returns 3 elements per command. However, this method fills only 2 elements per command to its IDs-property. I guess selection to this view should allways return IDSelectionSource. So maybe the selection-source types were mixed up. Best regards, Stephan -Ursprüngliche Nachricht- Von: Stephan Rogge [mailto:rogge...@tu-cottbus.de] Gesendet: Mittwoch, 15. Mai 2013 08:10 An: paraview@paraview.org Betreff: Re: vtkTable Visualization Hi, I decided to attach a pv state file to reproduce this issue. The left side visualizes the (multiblock) encapsulated vtkTable output of a ProgrammableSource with a SpreadSheet-, MatrixPlot- and ParallelCoordinatesView. The same view types were used for the direct vtkTable output of a ProgrammableSouce (right). Steps to reproduce the problem with PV git master version: 1. Load attached State file For the left views: 2. First select an item in the left active plot view (MatrixPlotView) with a right mouse click (no drag) = Should work 3. Select a line in the SpreadSheetView = Should work; the selection is propagated over all views (on the same side) 4. Now repeat step 2. = Message: Uneven size of values. occurs and the selection is not being propagated to the other views 5. Select a range in the ParallelCoordinates View = Same message as in step 4. is shown For the right views: 2. First select an item in the right active plot view (MatrixPlotView) with a right mouse click (no drag) = Does not work; I have to click an drag 3. Select a line in the SpreadSheetView = Should work; the selection is propagated over all views (on the same side) 4. Now repeat step 2. = Should word 5. Select a range in the ParallelCoordinates View = Should work Hope that someone could reproduce this. Cheers, Stephan Zitat von Stephan Rogge stephan.ro...@tu-cottbus.de: Hello, I try to visualize a vtkTable with SpreadSheetView, Parallel CoordinatesView and PlotMatrixView and observe some strange behavior while making a selection of a certain row. To demonstrate the problem I've create to scenarios: ### Scenario 1 with a ProgrammableSource and a Muliblock(vtkTable) output: NumCols = 15 NumRows = 100 math = vtk.vtkMath() pdo = self.GetOutput() table = vtk.vtkTable() for di in range(0, NumCols): d = vtk.vtkDoubleArray() d.SetName(Data Column {0}.format(di)) d.SetNumberOfValues(NumRows) for dv in range(0, NumRows): d.SetValue(dv, math.Random() * NumRows) table.AddColumn(d) pdo.SetBlock(0, table) # ### Scenario 2 with a ProgrammableSource and a vtkTable output: NumCols = 15 NumRows = 100 math = vtk.vtkMath() pdo = self.GetTableOutput() for di in range(0, NumCols): d = vtk.vtkDoubleArray() d.SetName(Data Column {0}.format(di)) d.SetNumberOfValues(NumRows) for dv in range(0, NumRows): d.SetValue(dv, math.Random() * NumRows) pdo.AddColumn(d) They both produce tables with same structure. The first Source encapsulate it within a multi block set. This is being visualized as shown on the screenshot (see attached). When I start to select a row the SpreaSheetView in both cases the PlotView and ParallelCoordinatesView highlights their corresponding data sets (as expected). But after clicking in the active plot view (in the multi block scenario 1) an Debug message occurs which says: Uneven size for values. and the changed selection is not being propagated to the other views. This happens only in the Scenario 1 (multi block). In scenario 2 (direct vtkTable output) I still can select a point in the active plot view after selecting a row in the spread sheet. Another observation is, that the active plot view recognize a single item selection (single right-mouse-click) only in scenario 1 but not scenario 2. Here I have to draw small rectangle to select one data point. Can anyone reproduces this behavior? Best regards, Stephan M. Sc. Stephan Rogge Wissenschaftlicher Mitarbeiter BTU-Cottbus Lehrstuhl Medientechnik Konrad-Wachsmann-Allee 1 03046 Cottbus Germany Besucheradresse: Siemens-Halske-Ring 14, D-03046 Cottbus Lehrgebäude 3A, Raum 252 Email stephan.ro...@tu-cottbus.de Phone +49 355 69-5062 http://www.tu-cottbus.de/medientechnik/ ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView
[Paraview] Fetching selection from SpreadSheet
Hello, I use the SpreadSheetView to visualize a vtkTable. Now I want to fetch the data of the row which is currently selected. Right now I can connect to a selection event but have no idea to obtain the slected data row. pqSpreadSheetView *ssv = qobject_castpqSpreadSheetView*(view); QWidget *widget = ssv-getWidget(); QObject::connect( ssv-getViewModel(), SIGNAL(selectionChanged(const QItemSelection)), this, SLOT(spreadSheetSelectionChanged(const QItemSelection))); When my slot is called, QItemSelection is empty. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] vtkTable Visualization
Hi, I decided to attach a pv state file to reproduce this issue. The left side visualizes the (multiblock) encapsulated vtkTable output of a ProgrammableSource with a SpreadSheet-, MatrixPlot- and ParallelCoordinatesView. The same view types were used for the direct vtkTable output of a ProgrammableSouce (right). Steps to reproduce the problem with PV git master version: 1. Load attached State file For the left views: 2. First select an item in the left active plot view (MatrixPlotView) with a right mouse click (no drag) = Should work 3. Select a line in the SpreadSheetView = Should work; the selection is propagated over all views (on the same side) 4. Now repeat step 2. = Message: Uneven size of values. occurs and the selection is not being propagated to the other views 5. Select a range in the ParallelCoordinates View = Same message as in step 4. is shown For the right views: 2. First select an item in the right active plot view (MatrixPlotView) with a right mouse click (no drag) = Does not work; I have to click an drag 3. Select a line in the SpreadSheetView = Should work; the selection is propagated over all views (on the same side) 4. Now repeat step 2. = Should word 5. Select a range in the ParallelCoordinates View = Should work Hope that someone could reproduce this. Cheers, Stephan Zitat von Stephan Rogge stephan.ro...@tu-cottbus.de: Hello, I try to visualize a vtkTable with SpreadSheetView, Parallel CoordinatesView and PlotMatrixView and observe some strange behavior while making a selection of a certain row. To demonstrate the problem I've create to scenarios: ### Scenario 1 with a ProgrammableSource and a Muliblock(vtkTable) output: NumCols = 15 NumRows = 100 math = vtk.vtkMath() pdo = self.GetOutput() table = vtk.vtkTable() for di in range(0, NumCols): d = vtk.vtkDoubleArray() d.SetName(Data Column {0}.format(di)) d.SetNumberOfValues(NumRows) for dv in range(0, NumRows): d.SetValue(dv, math.Random() * NumRows) table.AddColumn(d) pdo.SetBlock(0, table) # ### Scenario 2 with a ProgrammableSource and a vtkTable output: NumCols = 15 NumRows = 100 math = vtk.vtkMath() pdo = self.GetTableOutput() for di in range(0, NumCols): d = vtk.vtkDoubleArray() d.SetName(Data Column {0}.format(di)) d.SetNumberOfValues(NumRows) for dv in range(0, NumRows): d.SetValue(dv, math.Random() * NumRows) pdo.AddColumn(d) They both produce tables with same structure. The first Source encapsulate it within a multi block set. This is being visualized as shown on the screenshot (see attached). When I start to select a row the SpreaSheetView in both cases the PlotView and ParallelCoordinatesView highlights their corresponding data sets (as expected). But after clicking in the active plot view (in the multi block scenario 1) an Debug message occurs which says: Uneven size for values. and the changed selection is not being propagated to the other views. This happens only in the Scenario 1 (multi block). In scenario 2 (direct vtkTable output) I still can select a point in the active plot view after selecting a row in the spread sheet. Another observation is, that the active plot view recognize a single item selection (single right-mouse-click) only in scenario 1 but not scenario 2. Here I have to draw small rectangle to select one data point. Can anyone reproduces this behavior? Best regards, Stephan ProgrammableSourceRandomPts.pvsm Description: Binary data ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Oculus Rift
Hello, we've just ordered an Oculus Rift device and can't wait to get our hands on it. Until we can dive into this immersive experience we wonder whether OR is supported by ParaView / VTK? Before we start to think about adopting VTK-code pieces we would like to know if anybody else is preparing PV for the HMD. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Oculus Rift
Hello, To consider the Oculus Tracker the head orientation should be applied to vtkCameras view matrix. This should be straight forward. The lens distortion is more challenging. The Oculus Rift SDK documentation says that lens distortion is applied as a post-process. So we need a render target where the scene is rendered to (with a bigger resolution) and then execute this distortion correction which will pull out some pixels. Some questions come to my mind: * Do we need a new PV renderer which applied this post-process here? * Should the OR output delegate to pvrenderserver window? * Should it be integrated into ParaView or leave it as OculusRiftView Plug-In? Cheers, Stephan It appears to me that the biggest issue in supporting the Oculus Rift would be that they use an optical distortion for the left and right eye (to achieve a bit of a fish eye type effect). Thus I don't think just displaying a left/right eye view (like one does now with Paraview on flat screen stereo displays) would be sufficient. It seems like you need to go through their API for the distortion... Integrating their head tracking into Paraview might be a bit tricky as well... Brian On 04/04/2013 9:16 AM, Aashish Chaudhary wrote: Hi Stephan, The currently we assume that screens are fixed in space and therefore supports, systems like caves, walls etc. I think it will be easy to implement (or update the code for HMD). If there is an interest we could support it technically by providing you info on current implementation over emails. Thanks, On Thu, Apr 4, 2013 at 9:23 AM, Nikhil Shetty nikhil.shetty at kitware.com mailto:nikhil.shetty at kitware.com wrote: Hi Stephan, There is a CAVE module in PV but I'm not sure how good it should be for an HMD. Long ago I had written PVJuggler module which enables PV for Immersive environments using VRJuggler. VRJuggler can be configured for HMD. So it should work but I havnt tested it on the RIft (still waiting for it to show up at my door :) ) -Nikhil On Thu, Apr 4, 2013 at 4:06 AM, Stephan Rogge Stephan.Rogge at tu-cottbus.de mailto:Stephan.Rogge at tu-cottbus.de wrote: Hello, __ __ we've just ordered an Oculus Rift device and can't wait to get our hands on it. Until we can dive into this immersive experience we wonder whether OR is supported by ParaView / VTK? Before we start to think about adopting VTK-code pieces we would like to know if anybody else is preparing PV for the HMD. __ __ Cheers, Stephan ___ Powered by www.kitware.com http://www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview -- Regards Nikhil ___ Powered by www.kitware.com http://www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview -- | Aashish Chaudhary | RD Engineer | Kitware Inc. | www.kitware.com http://www.kitware.com ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Geometry attribute in PVX files
Aashish, thanks for response. Could it make sense to add a flag to the geometry attribute for allow / disallow full screen mode? In this case the size definition should be useless, because the system resolution could be considered and the geometry attribute can be reduced to two values (X,Y). BTW: Considers VTK a real (hardware) full screen mode? Thank you once again. Regards, Stephan Von: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com] Gesendet: Montag, 14. Januar 2013 19:42 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Geometry attribute in PVX files Hi Stephan , Glad that you liked it. We can add this feature since this is really quick to add. Thanks On Wed, Jan 9, 2013 at 2:18 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, I've noticed the new geometry attribute in the PVX configure files to place and size render windows for each render server process. GREAT!!! This makes the life of ParaView in the CAVE mode under Windows much easier :). Adding this attribute to my PVX files works great under Windows, but I have render windows with borders / decoration rather than real full screens. I think in vtkPVSynchronizedRenderWindows (line 1161 - 1165) the activation of the full screen mode is missing: // Use the specified geometry this-Internals-SharedRenderWindow-SetPosition(geometry[0], geometry[1]); this-Internals-SharedRenderWindow-SetSize(geometry[2], geometry[3]); Adding this line before helps me to get rid of these borders: this-Internals-SharedRenderWindow-SetFullScreen(1); Is this a bug or an desired functionality? Regards, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview -- | Aashish Chaudhary | RD Engineer | Kitware Inc. | www.kitware.com ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Linker error with OpenMPI 1.6.2
Utkarsh, Thank you for that hint. I've added openlib-pal.lib and openlib-rte.lib to the linker list. No success. The linker error remains. But after some research I found an advice to add the definition OMPI_IMPORTS to pre-processor: CMAKE_CXX_FLAGS = ... /D OMPI_IMPORTS CMAKE_C_FLAGS = ... /D OMPI_IMPORTS = Maybe not required This solves my problem and ninja is running until the end :-). Is this an individual problem? I wonder if someone else had this error too. Best regards, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Geometry attribute in PVX files
Hello, I've noticed the new geometry attribute in the PVX configure files to place and size render windows for each render server process. GREAT!!! This makes the life of ParaView in the CAVE mode under Windows much easier :). Adding this attribute to my PVX files works great under Windows, but I have render windows with borders / decoration rather than real full screens. I think in vtkPVSynchronizedRenderWindows (line 1161 - 1165) the activation of the full screen mode is missing: // Use the specified geometry this-Internals-SharedRenderWindow-SetPosition(geometry[0], geometry[1]); this-Internals-SharedRenderWindow-SetSize(geometry[2], geometry[3]); Adding this line before helps me to get rid of these borders: this-Internals-SharedRenderWindow-SetFullScreen(1); Is this a bug or an desired functionality? Regards, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Linker error with OpenMPI 1.6.2
Utkarsh, I've used the latest git master version. I'll send you the CmakeCache.txt with a separate mail. Best regards, Stephan -Ursprüngliche Nachricht- Von: Utkarsh Ayachit [mailto:utkarsh.ayac...@kitware.com] Gesendet: Donnerstag, 3. Januar 2013 15:52 An: Stephan Rogge Cc: ParaView Betreff: Re: [Paraview] Linker error with OpenMPI 1.6.2 What version of ParaView is this? Can you attach your CmakeCache.txt file? Utkarsh On Thu, Jan 3, 2013 at 9:46 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Happy new year, Ive tried to use a newer version of OpenMPI (1.4.4 = 1.6.2) with PV from git master. Unfortunately, I was not able to build ParaView successfully. A linker error comes from the vtkParallelMPI project. When I look into the project file I can see that libmpi.lib and libmpi_cxx.lib are set correctly. vtkMPICommunicator.cxx.obj : error LNK2001: Unknown external Symbol ompi_mpi_file_null. vtkMPIController.cxx.obj : error LNK2001: Unknown external Symbol ompi_mpi_file_null. I have no idea, why this failure occurs. Compiling the same PV from git master with OpenMPI 1.4.4 still works. Thanks, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Linker error with OpenMPI 1.6.2
Happy new year, I've tried to use a newer version of OpenMPI (1.4.4 = 1.6.2) with PV from git master. Unfortunately, I was not able to build ParaView successfully. A linker error comes from the vtkParallelMPI project. When I look into the project file I can see that libmpi.lib and libmpi_cxx.lib are set correctly. vtkMPICommunicator.cxx.obj : error LNK2001: Unknown external Symbol ompi_mpi_file_null. vtkMPIController.cxx.obj : error LNK2001: Unknown external Symbol ompi_mpi_file_null. . I have no idea, why this failure occurs. Compiling the same PV from git master with OpenMPI 1.4.4 still works. Thanks, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] VR-Plugin (VRPN connection) linker error
Hello, @David: thank you very much for that hint. The linker error is gone :-). @Aashish: We have a Virtual Environment with two back-projected walls. Each wall (2.6 m x 1.625 m) is lit by two projectors for stereoscopic presentations. Furthermore we use an infra-red tracking system from A.R.T with their VRPN server implementation to provide ParaView with tracking data. Beside a head target we use a so called Flystick. It has 6 DOF pose data, a small joystick and 6 Buttons and want to use to manipulate the view. The head tracked representation of a ParaView scene is really great. We have increased the depth perception, by building a virtual (background) scene. It is basically a room which extends the back projection space in, so the user seems to look through a window in room. This virtual scene is the starting point for building visualizations. Usually, our visualizations floating at the center of that room. The downside of this approach is to scale down large objects to fit in the view space which is not a big deal in our case. Another drawback is that we cannot use the camera manipulation. Rotating the camera would lead to a rotation of the entire scene (including the virtual background). Unfortunately, the current styles are limited to manipulate the virtual camera transformation, rather than single objects. But I saw in git that the geometry representation API has been extended to provide access to its transformation. Is it planned to have a VR style which manipulates the transformation matrix of a geometry object directly? Cheers, Stephan Von: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com] Gesendet: Montag, 3. Dezember 2012 16:39 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] VR-Plugin (VRPN connection) linker error Hi Stephan, On Mon, Dec 3, 2012 at 6:19 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, I’ve tried recently the new VR-Plugin with GUI support and I have to say at first: Thank god for having a GUI to configure VR(PN) related things.. ☺ Furthermore, I want to give a small advice: During linking of that plugin a linker error occurs. It says that “pqSaveStateReaction::saveState();” and “pqLoadStateReaction::loadState();” cannot be linked (missing symbols). Thanks for bringing this up. Dave already replied to your email. We are in the final stage of pushing the best VR Plugin in next few weeks. Our goal is to create best user experience possible given our funding and time constraints. Could you please tell us more on how you are using the VR Plugin? Thanks, Platform: Windows 7 64Bit Source: git master Qt: 4.8.1 (64 Bit, VS 2008) Compiler: VS 2008 64 BIt VR-Plugin: VRPN enabled Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview -- | Aashish Chaudhary | RD Engineer | Kitware Inc. | www.kitware.com ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] VR-Plugin (VRPN connection) linker error
Hello, I’ve tried recently the new VR-Plugin with GUI support and I have to say at first: Thank god for having a GUI to configure VR(PN) related things.. ☺ Furthermore, I want to give a small advice: During linking of that plugin a linker error occurs. It says that “pqSaveStateReaction::saveState();” and “pqLoadStateReaction::loadState();” cannot be linked (missing symbols). Platform: Windows 7 64Bit Source: git master Qt: 4.8.1 (64 Bit, VS 2008) Compiler: VS 2008 64 BIt VR-Plugin: VRPN enabled Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] pvserver with mpirun does not start waiting for clients
Hi, I have a problem to start the pvserver in mpi-mode with the current git master version of PV. The mpi-processes were spawn but in the console window is nothing happens. No output which indicates, that pvserver is waiting for clients. Can anybody confirm this behavior? I've tested this on two different systems (Windows 7 and 8 either in 64 Bit). Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Custom Widget, GUI and widget representation disappeared
Hello, this problem has been solved. So, thank you Kyle. Now I have a subsequent question: Do I have to use ADD_3D_WIDGET when I instatiate my custom widget within an own pqMyObjectPanel class? When I use this CMakeMacro I had some problems with my custom widget, because the constructor of my widget is beeing invoked two times, but I create only one instance within the pqMyObjectPanel class. Can someone give me a hint? Thanks again. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] VRPN Setup
Hello Seán, 1. When you use PV under Windows with head tracking, you should use always VRPN. 2. Head tracking only works with a pvserver environment. Therefore you have to define a Server configuration file with proper display parameters (read more http://www.itk.org/Wiki/ParaView/Users_Guide/CAVE_Display#Structure_of_PVX_C onfig_File ). These information let run PV on server side in CAVE mode and activate an off-axis-projection calculation. Hence the paraview client does not provide such configuration properties you cannot see any effect of a moving target directly in the client. 3. Which source version you are using? The queue bug should be already fixed in the master branch. Hope this helps, Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Parallel Streamtracer
Hello Burlen, thank you very much for your post. I really would like to test your plugin and so I've start to build it. Unfortunately I've got a lot of compiler errors (e.g. vtkstd isn't used in PV master anymore). Which PV version is the base for your plugin? Regards, Stephan -Ursprüngliche Nachricht- Von: Burlen Loring [mailto:blor...@lbl.gov] Gesendet: Donnerstag, 7. Juni 2012 17:54 An: Stephan Rogge Cc: 'Yuanxin Liu'; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi Stephan, I've experienced the scaling behavior that you report when I was working on a project that required generating millions of streamlines for a topological mapping algorithm interactively in ParaView. To get the required scaling I wrote a stream tracer that uses a load on demand approach with tunable block cache so that all ranks could integrate any streamline and stay busy throughout the entire computation. It was very effective on our data and I've used it to integrate 30 Million streamlines in about 10min on 256 cores. If you really need better scalability than the distributed data tracing approach implemented in PV, you might take a look at our work. The down side of our approach is that in order to provide the demand loading the reader has to implement a vtk object that provides an api giving the integrator direct access to I/O functionality. In case you're interested the stream tracer is class is vtkSQFieldTracer and our reader is vtkSQBOVReader. The latest release could be found here https://github.com/burlen/SciberQuestToolKit/tarball/SQTK-20120531 Burlen On 06/04/2012 02:21 AM, Stephan Rogge wrote: Hello Leo, ok, I took the disk_out_ref.ex2 example data set and did some time measurements. Remember, my machine has 4 Cores + HyperThreading. My first observation is that PV seems to have a problem with distributing the data when the Multi-Core option (GUI) is enabled. When PV is started with builtin Multi-Core I was not able to apply a stream tracer with more than 1000 seed points (PV is freezing and never comes back). Otherwise, when pvserver processes has been started manually I was able to set up to 100.000 seed points. Is it a bug? Now let's have a look on the scaling performance. As you suggested, I've used the D3 filter for distributing the data along the processes. The stream tracer execution time for 10.000 seed points: ## Bulitin: 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes: 15.615 seconds ## 8 MPI-Processes: 14.103 seconds and 100.000 seed points: ## Bulitin: 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes: 168.1 seconds ## 8 MPI-Processes: 171.325 seconds I cannot see any positive scaling behavior here. Maybe is this example not appropriate for scaling measurements? One more thing: I've visualized the vtkProcessId and saw that the whole vector field is partitioned. I thought, that each streamline is integrated in its own process. But it seems that this is not the case. This could explain my scaling issues: In cases of small vector fields the overhead of synchronization becomes too large and decreases the overall performance. My suggestion is to have a parallel StreamTracer which is built for a single machine with several threads. Could be worth to randomly distribute the seeds over all available (local) processes? Of course, each process have access on the whole vector field. Cheers, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Freitag, 1. Juni 2012 16:13 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I did measure the performance at some point and was able to get fairly decent speed up with more processors. So I am surprised you are seeing huge latency. Of course, the performance is sensitive to the input. It is also sensitive to how readers distribute data. So, one thing you might want to try is to attach the D3 filter to the reader. If that doesn't help, I will be happy to get your data and take a look. Leo On Fri, Jun 1, 2012 at 1:54 AM, Stephan Roggestephan.ro...@tu-cottbus.de wrote: Leo, As I mentioned in my initial post of this thread: I used the up-to-date master branch of ParaView. Which means I have already used your implementation. I can imagine, to parallelize this algorithm can be very tough. And I can see that distribute the calculation over 8 processes does not lead to a nice scaling. But I don't understand this huge amount of latency when using the StreamTracer in a Cave-Mode with two view ports and two pvserver processes on the same machine (extra machine for the client). I guess the tracer filter is applied for each viewport separately? This would be ok as long as both filter executions run parallel. And I doubt that this is the case. Can you help to clarify my problem? Regards
Re: [Paraview] Parallel Streamtracer
Someone told me that you have to clear your build directory completely and start a fresh PV build. Stephan -Ursprüngliche Nachricht- Von: burlen [mailto:burlen.lor...@gmail.com] Gesendet: Freitag, 8. Juni 2012 16:21 An: Stephan Rogge Cc: 'Yuanxin Liu'; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi Stephan, Oh, thanks for the update, I wasn't aware of these changes. I have been working with 3.14.1. Burlen On 06/08/2012 01:47 AM, Stephan Rogge wrote: Hello Burlen, thank you very much for your post. I really would like to test your plugin and so I've start to build it. Unfortunately I've got a lot of compiler errors (e.g. vtkstd isn't used in PV master anymore). Which PV version is the base for your plugin? Regards, Stephan -Ursprüngliche Nachricht- Von: Burlen Loring [mailto:blor...@lbl.gov] Gesendet: Donnerstag, 7. Juni 2012 17:54 An: Stephan Rogge Cc: 'Yuanxin Liu'; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi Stephan, I've experienced the scaling behavior that you report when I was working on a project that required generating millions of streamlines for a topological mapping algorithm interactively in ParaView. To get the required scaling I wrote a stream tracer that uses a load on demand approach with tunable block cache so that all ranks could integrate any streamline and stay busy throughout the entire computation. It was very effective on our data and I've used it to integrate 30 Million streamlines in about 10min on 256 cores. If you really need better scalability than the distributed data tracing approach implemented in PV, you might take a look at our work. The down side of our approach is that in order to provide the demand loading the reader has to implement a vtk object that provides an api giving the integrator direct access to I/O functionality. In case you're interested the stream tracer is class is vtkSQFieldTracer and our reader is vtkSQBOVReader. The latest release could be found here https://github.com/burlen/SciberQuestToolKit/tarball/SQTK-20120531 Burlen On 06/04/2012 02:21 AM, Stephan Rogge wrote: Hello Leo, ok, I took the disk_out_ref.ex2 example data set and did some time measurements. Remember, my machine has 4 Cores + HyperThreading. My first observation is that PV seems to have a problem with distributing the data when the Multi-Core option (GUI) is enabled. When PV is started with builtin Multi-Core I was not able to apply a stream tracer with more than 1000 seed points (PV is freezing and never comes back). Otherwise, when pvserver processes has been started manually I was able to set up to 100.000 seed points. Is it a bug? Now let's have a look on the scaling performance. As you suggested, I've used the D3 filter for distributing the data along the processes. The stream tracer execution time for 10.000 seed points: ## Bulitin: 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes: 15.615 seconds ## 8 MPI-Processes: 14.103 seconds and 100.000 seed points: ## Bulitin: 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes: 168.1 seconds ## 8 MPI-Processes: 171.325 seconds I cannot see any positive scaling behavior here. Maybe is this example not appropriate for scaling measurements? One more thing: I've visualized the vtkProcessId and saw that the whole vector field is partitioned. I thought, that each streamline is integrated in its own process. But it seems that this is not the case. This could explain my scaling issues: In cases of small vector fields the overhead of synchronization becomes too large and decreases the overall performance. My suggestion is to have a parallel StreamTracer which is built for a single machine with several threads. Could be worth to randomly distribute the seeds over all available (local) processes? Of course, each process have access on the whole vector field. Cheers, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Freitag, 1. Juni 2012 16:13 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I did measure the performance at some point and was able to get fairly decent speed up with more processors. So I am surprised you are seeing huge latency. Of course, the performance is sensitive to the input. It is also sensitive to how readers distribute data. So, one thing you might want to try is to attach the D3 filter to the reader. If that doesn't help, I will be happy to get your data and take a look. Leo On Fri, Jun 1, 2012 at 1:54 AM, Stephan Roggestephan.ro...@tu-cottbus.de wrote: Leo, As I mentioned in my initial post of this thread: I used the up-to-date master branch of ParaView. Which means I have already used your implementation. I can imagine, to parallelize
Re: [Paraview] Parallel Streamtracer
Hello Berk, absolutely. After applying both filter, D3 and StreamTracer, I've visualized the partitions with vtkProcessId to check whether D3 was applied or not and was able to see that the stream lines had different (homogenous) colors depending on their region. The D3 filter is only applied by more than one MPI process. To make things clearer: ## Bulitin (no D3): 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes (D3): 15.615 seconds ## 8 MPI-Processes(D3): 14.103 seconds and 100.000 seed points: ## Bulitin (no D3): 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes(D3): 168.1 seconds ## 8 MPI-Processes(D3): 171.325 seconds Sorry, for the confusion. Regrads, Stephan Von: Berk Geveci [mailto:berk.gev...@kitware.com] Gesendet: Donnerstag, 7. Juni 2012 02:53 An: Stephan Rogge Cc: Yuanxin Liu; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer By the way, did you make sure to apply D3? disk_out_ref.ex2 is not partitioned so by default it would be loaded entirely onto MPI rank 0. On Mon, Jun 4, 2012 at 5:21 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello Leo, ok, I took the disk_out_ref.ex2 example data set and did some time measurements. Remember, my machine has 4 Cores + HyperThreading. My first observation is that PV seems to have a problem with distributing the data when the Multi-Core option (GUI) is enabled. When PV is started with builtin Multi-Core I was not able to apply a stream tracer with more than 1000 seed points (PV is freezing and never comes back). Otherwise, when pvserver processes has been started manually I was able to set up to 100.000 seed points. Is it a bug? Now let's have a look on the scaling performance. As you suggested, I've used the D3 filter for distributing the data along the processes. The stream tracer execution time for 10.000 seed points: ## Bulitin: 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes: 15.615 seconds ## 8 MPI-Processes: 14.103 seconds and 100.000 seed points: ## Bulitin: 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes: 168.1 seconds ## 8 MPI-Processes: 171.325 seconds I cannot see any positive scaling behavior here. Maybe is this example not appropriate for scaling measurements? One more thing: I've visualized the vtkProcessId and saw that the whole vector field is partitioned. I thought, that each streamline is integrated in its own process. But it seems that this is not the case. This could explain my scaling issues: In cases of small vector fields the overhead of synchronization becomes too large and decreases the overall performance. My suggestion is to have a parallel StreamTracer which is built for a single machine with several threads. Could be worth to randomly distribute the seeds over all available (local) processes? Of course, each process have access on the whole vector field. Cheers, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Freitag, 1. Juni 2012 16:13 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I did measure the performance at some point and was able to get fairly decent speed up with more processors. So I am surprised you are seeing huge latency. Of course, the performance is sensitive to the input. It is also sensitive to how readers distribute data. So, one thing you might want to try is to attach the D3 filter to the reader. If that doesn't help, I will be happy to get your data and take a look. Leo On Fri, Jun 1, 2012 at 1:54 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Leo, As I mentioned in my initial post of this thread: I used the up-to-date master branch of ParaView. Which means I have already used your implementation. I can imagine, to parallelize this algorithm can be very tough. And I can see that distribute the calculation over 8 processes does not lead to a nice scaling. But I don't understand this huge amount of latency when using the StreamTracer in a Cave-Mode with two view ports and two pvserver processes on the same machine (extra machine for the client). I guess the tracer filter is applied for each viewport separately? This would be ok as long as both filter executions run parallel. And I doubt that this is the case. Can you help to clarify my problem? Regards, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Donnerstag, 31. Mai 2012 21:33 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer It is in the current VTK and ParaView master. The class is vtkPStreamTracer. Leo On Thu, May 31, 2012 at 3:31 PM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hi, Andy and Leo, thanks for your replies. Is it possible to get this new implementation? I would to give it a try. Regards, Stephan Am 31.05.2012 um 17:48 schrieb Yuanxin Liu leo@kitware.com: Hi
Re: [Paraview] Parallel Streamtracer
Thanks, Leo. That's sounds great. I'm looking forward to have a parallel Stream Tracer for small vector fields. Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Montag, 4. Juni 2012 19:31 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I will look into the multi-core issue as well as the performance issue. Some quick answers: - Yes, the whole vector fields are partitioned and the streamlines are passed from one process to another. This is why the performance can be highly sensitive to how data are distributed and how the streamlines travel between data partitions. - Your suggestion makes sense if the data is small enough to be run on a single machine. This is definitely something we would like to do in the future. Right now, the implementation is more targeted towards handling large data that have to be distributed across multiple machines. Leo On Mon, Jun 4, 2012 at 5:21 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello Leo, ok, I took the disk_out_ref.ex2 example data set and did some time measurements. Remember, my machine has 4 Cores + HyperThreading. My first observation is that PV seems to have a problem with distributing the data when the Multi-Core option (GUI) is enabled. When PV is started with builtin Multi-Core I was not able to apply a stream tracer with more than 1000 seed points (PV is freezing and never comes back). Otherwise, when pvserver processes has been started manually I was able to set up to 100.000 seed points. Is it a bug? Now let's have a look on the scaling performance. As you suggested, I've used the D3 filter for distributing the data along the processes. The stream tracer execution time for 10.000 seed points: ## Bulitin: 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes: 15.615 seconds ## 8 MPI-Processes: 14.103 seconds and 100.000 seed points: ## Bulitin: 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes: 168.1 seconds ## 8 MPI-Processes: 171.325 seconds I cannot see any positive scaling behavior here. Maybe is this example not appropriate for scaling measurements? One more thing: I've visualized the vtkProcessId and saw that the whole vector field is partitioned. I thought, that each streamline is integrated in its own process. But it seems that this is not the case. This could explain my scaling issues: In cases of small vector fields the overhead of synchronization becomes too large and decreases the overall performance. My suggestion is to have a parallel StreamTracer which is built for a single machine with several threads. Could be worth to randomly distribute the seeds over all available (local) processes? Of course, each process have access on the whole vector field. Cheers, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Freitag, 1. Juni 2012 16:13 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I did measure the performance at some point and was able to get fairly decent speed up with more processors. So I am surprised you are seeing huge latency. Of course, the performance is sensitive to the input. It is also sensitive to how readers distribute data. So, one thing you might want to try is to attach the D3 filter to the reader. If that doesn't help, I will be happy to get your data and take a look. Leo On Fri, Jun 1, 2012 at 1:54 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Leo, As I mentioned in my initial post of this thread: I used the up-to-date master branch of ParaView. Which means I have already used your implementation. I can imagine, to parallelize this algorithm can be very tough. And I can see that distribute the calculation over 8 processes does not lead to a nice scaling. But I don't understand this huge amount of latency when using the StreamTracer in a Cave-Mode with two view ports and two pvserver processes on the same machine (extra machine for the client). I guess the tracer filter is applied for each viewport separately? This would be ok as long as both filter executions run parallel. And I doubt that this is the case. Can you help to clarify my problem? Regards, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Donnerstag, 31. Mai 2012 21:33 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer It is in the current VTK and ParaView master. The class is vtkPStreamTracer. Leo On Thu, May 31, 2012 at 3:31 PM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hi, Andy and Leo, thanks for your replies. Is it possible to get this new implementation? I would to give it a try. Regards, Stephan Am 31.05.2012 um 17:48 schrieb Yuanxin Liu leo@kitware.com: Hi, Stephan, The previous implementation only has serial performance: It traces the streamlines one at a time and never
Re: [Paraview] Parallel Streamtracer
Hello Leo, ok, I took the disk_out_ref.ex2 example data set and did some time measurements. Remember, my machine has 4 Cores + HyperThreading. My first observation is that PV seems to have a problem with distributing the data when the Multi-Core option (GUI) is enabled. When PV is started with builtin Multi-Core I was not able to apply a stream tracer with more than 1000 seed points (PV is freezing and never comes back). Otherwise, when pvserver processes has been started manually I was able to set up to 100.000 seed points. Is it a bug? Now let's have a look on the scaling performance. As you suggested, I've used the D3 filter for distributing the data along the processes. The stream tracer execution time for 10.000 seed points: ## Bulitin: 10.063 seconds ## 1 MPI-Process (no D3): 10.162 seconds ## 4 MPI-Processes: 15.615 seconds ## 8 MPI-Processes: 14.103 seconds and 100.000 seed points: ## Bulitin: 100.603 seconds ## 1 MPI-Process (no D3): 100.967 seconds ## 4 MPI-Processes: 168.1 seconds ## 8 MPI-Processes: 171.325 seconds I cannot see any positive scaling behavior here. Maybe is this example not appropriate for scaling measurements? One more thing: I've visualized the vtkProcessId and saw that the whole vector field is partitioned. I thought, that each streamline is integrated in its own process. But it seems that this is not the case. This could explain my scaling issues: In cases of small vector fields the overhead of synchronization becomes too large and decreases the overall performance. My suggestion is to have a parallel StreamTracer which is built for a single machine with several threads. Could be worth to randomly distribute the seeds over all available (local) processes? Of course, each process have access on the whole vector field. Cheers, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Freitag, 1. Juni 2012 16:13 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer Hi, Stephan, I did measure the performance at some point and was able to get fairly decent speed up with more processors. So I am surprised you are seeing huge latency. Of course, the performance is sensitive to the input. It is also sensitive to how readers distribute data. So, one thing you might want to try is to attach the D3 filter to the reader. If that doesn't help, I will be happy to get your data and take a look. Leo On Fri, Jun 1, 2012 at 1:54 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Leo, As I mentioned in my initial post of this thread: I used the up-to-date master branch of ParaView. Which means I have already used your implementation. I can imagine, to parallelize this algorithm can be very tough. And I can see that distribute the calculation over 8 processes does not lead to a nice scaling. But I don't understand this huge amount of latency when using the StreamTracer in a Cave-Mode with two view ports and two pvserver processes on the same machine (extra machine for the client). I guess the tracer filter is applied for each viewport separately? This would be ok as long as both filter executions run parallel. And I doubt that this is the case. Can you help to clarify my problem? Regards, Stephan Von: Yuanxin Liu [mailto:leo@kitware.com] Gesendet: Donnerstag, 31. Mai 2012 21:33 An: Stephan Rogge Cc: Andy Bauer; paraview@paraview.org Betreff: Re: [Paraview] Parallel Streamtracer It is in the current VTK and ParaView master. The class is vtkPStreamTracer. Leo On Thu, May 31, 2012 at 3:31 PM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hi, Andy and Leo, thanks for your replies. Is it possible to get this new implementation? I would to give it a try. Regards, Stephan Am 31.05.2012 um 17:48 schrieb Yuanxin Liu leo@kitware.com: Hi, Stephan, The previous implementation only has serial performance: It traces the streamlines one at a time and never starts a new streamline until the previous one finishes. With communication overhead, it is not surprising it got slower. My new implementation is able to let the processes working on different streamlines simultaneously and should scale much better. Leo On Thu, May 31, 2012 at 11:27 AM, Andy Bauer andy.ba...@kitware.com wrote: Hi Stephan, The parallel stream tracer uses the partitioning of the grid to determine which process does the integration. When the streamline exits the subdomain of a process there is a search to see if it enters a subdomain assigned to any other processes before figuring it whether it has left the entire domain. Leo, copied here, has been improving the streamline implementation inside of VTK so you may want to get his newer version. It is a pretty tough algorithm to parallelize efficiently without making any assumptions on the flow or partitioning. Andy On Thu, May 31, 2012 at 4:16 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, I have a question related to the parallelism
Re: [Paraview] Compilation Error in vtksys::SystemTools
Ok. Problem is solved: After adding both mpi libraries (libmpi.lib and libmpicxx.lib) in MPI_C_LIBRARIES and MPI_CXX_LIBRARIES the linker errors disappeared. Regards, Stephan -Ursprüngliche Nachricht- Von: Stephan Rogge [mailto:stephan.ro...@tu-cottbus.de] Gesendet: Donnerstag, 31. Mai 2012 09:24 An: 'Stephan Rogge' Betreff: Re: [Paraview] Compilation Error in vtksys::SystemTools Ok. Problem is solved: After adding both mpi libraries (libmpi.lib and libmpicxx.lib) in MPI_C_LIBRARIES and MPI_CXX_LIBRARIES the linker errors disappeared. Regards, Stephan -Ursprüngliche Nachricht- Von: Stephan Rogge [mailto:stephan.ro...@tu-cottbus.de] Gesendet: Mittwoch, 30. Mai 2012 17:04 An: 'Sebastien Jourdain' Cc: 'paraview@paraview.org' Betreff: Re: [Paraview] Compilation Error in vtksys::SystemTools Yeah, this helps. Thank you. Unfortunately I'm running into more trouble right now. During linking the OpenMPI library, these projects yields some errors: Cosmo VPIC Xdmf vtkParallelMPI vtkIOMPIImage vtkIOParallelNetCDF Those projects references some MPI related functions (160 linker errors at all). Any ideas? Cheers, Stephan -Ursprüngliche Nachricht- Von: Sebastien Jourdain [mailto:sebastien.jourd...@kitware.com] Gesendet: Mittwoch, 30. Mai 2012 14:21 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Compilation Error in vtksys::SystemTools You need to start from a clean build directory. The same thing happen to me yesterday. On Wed, May 30, 2012 at 4:09 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, since my last git update on the master branch Ive got an error during compilation: UnPutEnv is not a member of vtksys::SystemTools. I use Windows 7 64 Bit and Visual Studio 2008 (64 Bit compiler)and CMake 2.8.8. All submodules are up-to-date. Did I missed something? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Parallel Streamtracer
Hello, I have a question related to the parallelism of the stream tracer: As I understand the code right, each line integration (trace) is processed in an own MPI process. Right? To test the scalability of the Stream tracer I've load a structured (curvilinear) grid and applied the filter with a Seed resolution of 1500 and check the timings in a single and multi-thread (Multi Core enabled in PV GUI) situation. I was really surprised that multi core slows done the execution time to 4 seconds. The single core takes only 1.2 seconds. Data migration cannot be the explanation for that behavior (0.5 seconds). What is the problem here? Please see attached some statistics... Data: * Structured (Curvilinear) Grid * 244030 Cells * 37 MB Memory System: * Intel i7-2600K (4 Cores + HT = 8 Threads) * 16 GB Ram * Windows 7 64 Bit * ParaView (master-branch, 64 bit compilation) # Single Thread (Seed resolution 1500): # Local Process Still Render, 0.014 seconds RenderView::Update, 1.222 seconds vtkPVView::Update, 1.222 seconds Execute vtkStreamTracer id: 2184, 1.214 seconds Still Render, 0.015 seconds # Eight Threads (Seed resolution 1500): # Local Process Still Render, 0.029 seconds RenderView::Update, 4.134 seconds vtkSMDataDeliveryManager: Deliver Geome, 0.619 seconds FullRes Data Migration, 0.619 seconds Still Render, 0.042 seconds OpenGL Dev Render, 0.01 seconds Render Server, Process 0 RenderView::Update, 4.134 seconds vtkPVView::Update, 4.132 seconds Execute vtkStreamTracer id: 2193, 3.941 seconds FullRes Data Migration, 0.567 seconds Dataserver gathering to 0, 0.318 seconds Dataserver sending to client, 0.243 seconds Render Server, Process 1 Execute vtkStreamTracer id: 2193, 3.939 seconds Render Server, Process 2 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 3 Execute vtkStreamTracer id: 2193, 4.12 seconds Render Server, Process 4 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 5 Execute vtkStreamTracer id: 2193, 3.939 seconds Render Server, Process 6 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 7 Execute vtkStreamTracer id: 2193, 3.939 seconds Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Parallel Streamtracer
Hi, Andy and Leo, thanks for your replies. Is it possible to get this new implementation? I would to give it a try. Regards, Stephan Am 31.05.2012 um 17:48 schrieb Yuanxin Liu leo@kitware.com: Hi, Stephan, The previous implementation only has serial performance: It traces the streamlines one at a time and never starts a new streamline until the previous one finishes. With communication overhead, it is not surprising it got slower. My new implementation is able to let the processes working on different streamlines simultaneously and should scale much better. Leo On Thu, May 31, 2012 at 11:27 AM, Andy Bauer andy.ba...@kitware.com wrote: Hi Stephan, The parallel stream tracer uses the partitioning of the grid to determine which process does the integration. When the streamline exits the subdomain of a process there is a search to see if it enters a subdomain assigned to any other processes before figuring it whether it has left the entire domain. Leo, copied here, has been improving the streamline implementation inside of VTK so you may want to get his newer version. It is a pretty tough algorithm to parallelize efficiently without making any assumptions on the flow or partitioning. Andy On Thu, May 31, 2012 at 4:16 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, I have a question related to the parallelism of the stream tracer: As I understand the code right, each line integration (trace) is processed in an own MPI process. Right? To test the scalability of the Stream tracer I've load a structured (curvilinear) grid and applied the filter with a Seed resolution of 1500 and check the timings in a single and multi-thread (Multi Core enabled in PV GUI) situation. I was really surprised that multi core slows done the execution time to 4 seconds. The single core takes only 1.2 seconds. Data migration cannot be the explanation for that behavior (0.5 seconds). What is the problem here? Please see attached some statistics... Data: * Structured (Curvilinear) Grid * 244030 Cells * 37 MB Memory System: * Intel i7-2600K (4 Cores + HT = 8 Threads) * 16 GB Ram * Windows 7 64 Bit * ParaView (master-branch, 64 bit compilation) # Single Thread (Seed resolution 1500): # Local Process Still Render, 0.014 seconds RenderView::Update, 1.222 seconds vtkPVView::Update, 1.222 seconds Execute vtkStreamTracer id: 2184, 1.214 seconds Still Render, 0.015 seconds # Eight Threads (Seed resolution 1500): # Local Process Still Render, 0.029 seconds RenderView::Update, 4.134 seconds vtkSMDataDeliveryManager: Deliver Geome, 0.619 seconds FullRes Data Migration, 0.619 seconds Still Render, 0.042 seconds OpenGL Dev Render, 0.01 seconds Render Server, Process 0 RenderView::Update, 4.134 seconds vtkPVView::Update, 4.132 seconds Execute vtkStreamTracer id: 2193, 3.941 seconds FullRes Data Migration, 0.567 seconds Dataserver gathering to 0, 0.318 seconds Dataserver sending to client, 0.243 seconds Render Server, Process 1 Execute vtkStreamTracer id: 2193, 3.939 seconds Render Server, Process 2 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 3 Execute vtkStreamTracer id: 2193, 4.12 seconds Render Server, Process 4 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 5 Execute vtkStreamTracer id: 2193, 3.939 seconds Render Server, Process 6 Execute vtkStreamTracer id: 2193, 3.938 seconds Render Server, Process 7 Execute vtkStreamTracer id: 2193, 3.939 seconds Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Compilation Error in vtksys::SystemTools
Hello, since my last git update on the master branch I've got an error during compilation: UnPutEnv is not a member of vtksys::SystemTools. I use Windows 7 64 Bit and Visual Studio 2008 (64 Bit compiler)and CMake 2.8.8. All submodules are up-to-date. Did I missed something? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Compilation Error in vtksys::SystemTools
Yeah, this helps. Thank you. Unfortunately I'm running into more trouble right now. During linking the OpenMPI library, these projects yields some errors: Cosmo VPIC Xdmf vtkParallelMPI vtkIOMPIImage vtkIOParallelNetCDF Those projects references some MPI related functions (160 linker errors at all). Any ideas? Cheers, Stephan -Ursprüngliche Nachricht- Von: Sebastien Jourdain [mailto:sebastien.jourd...@kitware.com] Gesendet: Mittwoch, 30. Mai 2012 14:21 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Compilation Error in vtksys::SystemTools You need to start from a clean build directory. The same thing happen to me yesterday. On Wed, May 30, 2012 at 4:09 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, since my last git update on the master branch Ive got an error during compilation: UnPutEnv is not a member of vtksys::SystemTools. I use Windows 7 64 Bit and Visual Studio 2008 (64 Bit compiler)and CMake 2.8.8. All submodules are up-to-date. Did I missed something? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Access on widget properties
Is there any kind of documentation how proxy groups (sources, representation and so on) are reachable via the proxy manager? Thanks, Stephan -Ursprüngliche Nachricht- Von: Stephan Rogge [mailto:stephan.ro...@tu-cottbus.de] Gesendet: Freitag, 30. März 2012 15:26 An: 'paraview@paraview.org' Betreff: Access on widget properties Hello, I want to have access on the HandlePositions property of a spline widget (proxygroup=3d_widget_representations proxyname=SplineRepresentation). So I tried to search proxies and its properties via vtkSMProxyManager which is similar to the way of the VR-Plugin. To try this approach I've create a new scene with a single Spline widget and saved the state file. The widget representation is named as DataRepresentation1. I thought I can now have access on certain properties - let's say HandlePositions - and change the values as I desire. Unfortunately, this does not work: vtkSMProxy* Proxy = vtkSMProxyManager::GetProxyManager()- GetActiveSessionProxyManager()- GetProxy( DataRepresentation1 ); if(Proxy) { vtkSMDoubleVectorProperty* Property = vtkSMDoubleVectorProperty::SafeDownCast( Proxy-GetProperty( HandlePositions )); } The property would be NULL. Can someone help me please? Thanks. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Access on widget properties
Hello, I want to have access on the HandlePositions property of a spline widget (proxygroup=3d_widget_representations proxyname=SplineRepresentation). So I tried to search proxies and its properties via vtkSMProxyManager which is similar to the way of the VR-Plugin. To try this approach I've create a new scene with a single Spline widget and saved the state file. The widget representation is named as DataRepresentation1. I thought I can now have access on certain properties - let's say HandlePositions - and change the values as I desire. Unfortunately, this does not work: vtkSMProxy* Proxy = vtkSMProxyManager::GetProxyManager()- GetActiveSessionProxyManager()- GetProxy( DataRepresentation1 ); if(Proxy) { vtkSMDoubleVectorProperty* Property = vtkSMDoubleVectorProperty::SafeDownCast( Proxy-GetProperty( HandlePositions )); } The property would be NULL. Can someone help me please? Thanks. ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] VRPlugin (some feedback)
Hello Nikhil, yeah, I see it. I've test the plugin and seems to me it is working. Under Windows a small error during compilation occurs in vtkVRConnectionManager.cxx. When PARAVIEW_USE_VRPN is defined the internal member QPointervtkVRQueue Queue; would not be declared. Moving this line behind that check works for me. struct vtkVRConnectionManager::pqInternals { #ifdef PARAVIEW_USE_VRPN QListQPointervtkVRPNConnection VRPNConnections; #endif #ifdef PARAVIEW_USE_VRUI QListQPointervtkVRUIConnection VRUIConnections; #endif QPointervtkVRQueue Queue; }; Cheers, Stephan Von: Nikhil Shetty [mailto:nikhil.she...@kitware.com] Gesendet: Montag, 13. Februar 2012 19:36 An: Stephan Rogge Cc: paraview@paraview.org; Christian Wohlschlager; Aashish Chaudhary Betreff: Re: [Paraview] VRPlugin (some feedback) Hi Stephan, On Fri, Feb 10, 2012 at 3:39 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, @Christian: I cannot say, that we have problems by displaying data bigger than 7.5 MB. Our focus lies on CFD visualization. But when I understand the other threads right, this problem has been identified. @Nikhil: Further modifications was necessary in the the vtkVRStyleTracking in order to update the HeadPose. The proxygroup name must be changed to views. The group name interactorstyles in the post mentioned above is NOT working, otherwise the plugin crash, since no proxy or property can be found and the pointer are still NULL after configuration. What you did is hardcoded to the view. The tracking style can be used for tracking other things like the hand etc. This is configurable from the state file (see document). In my last post I wrote about the problem of defining the the proxy group name. I've made a mistake and addressed the class vtkVRStyleTracking for this modification. This is not the case. The class vtkVRInteractorStyle with its method GetProxy( std::string name, vtkSMProxy ** proxy ) required that modification. And here I had to hardcoded the proxy group name view as a first parameter. I think, the group name shall be provided as an additional parameter or attribute in the *.pvsm file. This is fixed in the latest code (you may have already noticed). There were a few API incompatibilities with the latest paraview code and the VR Plugin which got fixed. Where I can deactivate QTSOCK? There is no option in cmake-gui visible. Or is this feature And the future? The QTSOCK will definitely be gone. Its not even an option (just old code :) ). The future!!! Well it mainly depends on what people would like to see and who's funding it. But with the current round of funding there are a few things in the immediate pipeline. 1. Support for side-by-side stereo (for 3dtv's etc in VTK). 2. Adding tests for VR plugin (so be can better identify breakage). 3. Fly-mode interactor style. 4. Hopefully a better way of configuring VR displays and inputs (maybe implementing a GUI for this). But this is of lower priority for now. -Nikhil @ Aashish: Ok. So I have to concentrate more on tracking system calibration :-). What is the best approach of defining the room coordinate system? I have chosen a symmetric approach. Our system consists of two walls with an angle of 112° which means, those two walls construct a triangle. The user looks into the corner of the triangle. The origin of my room coordinate system is the center of the triangle base. All edge points of the two screens are defined in respect to this coordinate system. My question is, is this a good approach? Or should I place the origin directly on of those edge points? Nevertheless, many thanks for your valuable answers. Cheers, Stephan Stephan Rogge stephan.ro...@tu-cottbus.de 2/8/2012 1:38 PM Hello, Ive start to work intensively with the VRPlugin from git-master and want to get some feedback. First of all it works almost great :-). As a tracking system Im using A.R.TrackPack2 with two infrared cameras and their VRPN server implementation. To be able to compile that Plugin some modifications were necessary: * As mentioned in this post (http://www.paraview.org/pipermail/paraview/2012-February/023816.html) the proxy API undergone some changes. But it seems, that the author of this post mixed up the parameter order. He referred to proxy name and proxy group. But it has to be swapped... * Not important to me but required to compile without errors: In vtkVRUIPipe.h the flag QTSOCK is checked for existence. I had to put it in manually (#define QTSOCK 1). Don't know why. Further modifications was necessary in the the vtkVRStyleTracking in order to update the HeadPose. The proxygroup name must be changed to views. The group name interactorstyles in the post mentioned above is NOT working, otherwise the plugin crash, since no proxy or property can be found and the pointer are still NULL after configuration. But so far, I was able to use the VRPlugin in ParaView in a two-side VE and I've got the feeling, that virtual object
[Paraview] Possible Bugs in CAVE mode??
Hello, I have two problems with current git-master ParaView version: * Stereo in CAVE mode: Since updating my code base to that version the Crystal Eyes stereo mode is not running. When I changed the stereo type to Red-Blue only the red channel is displayed on my walls. * Empty Scenes When I construct in the CAVE mode a new scene in PV no objects were displayed on the walls. BUT when I use my old state files (PV 3.12) everything is fine and displayed as expected. It seems to me that in this version something has changed during setting up a new scene. Can someone confirm this errors? Thanks in advanced. Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Possible Bugs in CAVE mode??
Hello (again), regarding the cave stereo issue I was able to put an debug message into the vtkCamera and noticed that EyeSeparation is an incredibly small value (1E-332). It seems that somewhere the eye separation value is lost which results in two identical projection matrix and this yields a monocular vision. That would explain why stereo is not working @Nikhil, if I get you right, you are involved in the VR development of PV? Thanks, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Possible Bugs in CAVE mode??
Hi, yeah. It does help. But honestly I do have some doubts that this is the best way to provide eye separation control. Since PVX is used only at startup this parameter is fixed and all PV scenes running with that configuration have to use it. In my case I use different scenes with different scales (cm or m). I cannot provide one eye separation for all scenes. And to use one configuration file for each scale of scenes feels very cumbersome. In my opinion the state file is a better place for that parameter. BTW: Is it planned to modify OffCenterProjection computation to consider the eye angle? Best regards, Stephan Von: Nikhil Shetty [mailto:nikhil.she...@kitware.com] Gesendet: Dienstag, 14. Februar 2012 14:55 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Possible Bugs in CAVE mode?? Hi Stephan, There was a slight change in that we can now specify eye separation in the pvx configuration file. You can set the eye seperation as. pvx Process Type=client / Process Type=server EyeSeparation Value=0.065/ Machine Name=Front . Hope this helps Regards -Nikhil On Tue, Feb 14, 2012 at 8:48 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello (again), regarding the cave stereo issue I was able to put an debug message into the vtkCamera and noticed that EyeSeparation is an incredibly small value (1E-332). It seems that somewhere the eye separation value is lost which results in two identical projection matrix and this yields a monocular vision. That would explain why stereo is not working @Nikhil, if I get you right, you are involved in the VR development of PV? Thanks, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] VRPlugin (some feedback)
Hello, @Christian: I cannot say, that we have problems by displaying data bigger than 7.5 MB. Our focus lies on CFD visualization. But when I understand the other threads right, this problem has been identified. @Nikhil: Further modifications was necessary in the the vtkVRStyleTracking in order to update the HeadPose. The proxygroup name must be changed to views. The group name interactorstyles in the post mentioned above is NOT working, otherwise the plugin crash, since no proxy or property can be found and the pointer are still NULL after configuration. What you did is hardcoded to the view. The tracking style can be used for tracking other things like the hand etc. This is configurable from the state file (see document). In my last post I wrote about the problem of defining the the proxy group name. I've made a mistake and addressed the class vtkVRStyleTracking for this modification. This is not the case. The class vtkVRInteractorStyle with its method GetProxy( std::string name, vtkSMProxy ** proxy ) required that modification. And here I had to hardcoded the proxy group name view as a first parameter. I think, the group name shall be provided as an additional parameter or attribute in the *.pvsm file. Where I can deactivate QTSOCK? There is no option in cmake-gui visible. Or is this feature And the future? @ Aashish: Ok. So I have to concentrate more on tracking system calibration :-). What is the best approach of defining the room coordinate system? I have chosen a symmetric approach. Our system consists of two walls with an angle of 112° which means, those two walls construct a triangle. The user looks into the corner of the triangle. The origin of my room coordinate system is the center of the triangle base. All edge points of the two screens are defined in respect to this coordinate system. My question is, is this a good approach? Or should I place the origin directly on of those edge points? Nevertheless, many thanks for your valuable answers. Cheers, Stephan Stephan Rogge stephan.ro...@tu-cottbus.de 2/8/2012 1:38 PM Hello, Ive start to work intensively with the VRPlugin from git-master and want to get some feedback. First of all it works almost great :-). As a tracking system Im using A.R.TrackPack2 with two infrared cameras and their VRPN server implementation. To be able to compile that Plugin some modifications were necessary: * As mentioned in this post (http://www.paraview.org/pipermail/paraview/2012-February/023816.html) the proxy API undergone some changes. But it seems, that the author of this post mixed up the parameter order. He referred to proxy name and proxy group. But it has to be swapped... * Not important to me but required to compile without errors: In vtkVRUIPipe.h the flag QTSOCK is checked for existence. I had to put it in manually (#define QTSOCK 1). Don't know why. Further modifications was necessary in the the vtkVRStyleTracking in order to update the HeadPose. The proxygroup name must be changed to views. The group name interactorstyles in the post mentioned above is NOT working, otherwise the plugin crash, since no proxy or property can be found and the pointer are still NULL after configuration. But so far, I was able to use the VRPlugin in ParaView in a two-side VE and I've got the feeling, that virtual object placed in front of the screens... :-) Now, I have a kind of problem. When I am moving parallel (left to right) to the screens, I can observe a sort of rotation which can be not described as moving parallax. It seems, that the rotation point lies in the center of my projection displays. Object which came out of screen standing not on the same position. They are flying around. So, my question is addressed to experienced Virtual Reality user: Is this described behavior right or not? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] VRPlugin (some feedback)
Hello, I’ve start to work intensively with the VRPlugin from git-master and want to get some feedback. First of all it works almost great :-). As a tracking system I’m using A.R.TrackPack2 with two infrared cameras and their VRPN server implementation. To be able to compile that Plugin some modifications were necessary: * As mentioned in this post (http://www.paraview.org/pipermail/paraview/2012-February/023816.html) the proxy API undergone some changes. But it seems, that the author of this post mixed up the parameter order. He referred to proxy name and proxy group. But it has to be swapped... * Not important to me but required to compile without errors: In vtkVRUIPipe.h the flag QTSOCK is checked for existence. I had to put it in manually (#define QTSOCK 1). Don't know why. Further modifications was necessary in the the vtkVRStyleTracking in order to update the HeadPose. The proxygroup name must be changed to views. The group name interactorstyles in the post mentioned above is NOT working, otherwise the plugin crash, since no proxy or property can be found and the pointer are still NULL after configuration. But so far, I was able to use the VRPlugin in ParaView in a two-side VE and I've got the feeling, that virtual object placed in front of the screens... :-) Now, I have a kind of problem. When I am moving parallel (left to right) to the screens, I can observe a sort of rotation which can be not described as moving parallax. It seems, that the rotation point lies in the center of my projection displays. Object which came out of screen standing not on the same position. They are flying around. So, my question is addressed to experienced Virtual Reality user: Is this described behavior right or not? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] [ParaView] Off axis Projection and Stereo
Hello Aashish, thanks for your valuable answers. I'm glad to know that these problems being addressed in vtk development. And yes, I have some more questions. :-) Please, can you explain, why EyeAngle is ignored during Off-Axis ? Is there an idea behind this approach? I know the formulation from the paper to construct the view matrix. And I know, only the eye points (not their directions) are considered. BTW: Why is the viewing direction ignored, during Off-Axis-Calculation? I'm really looking forward to read your answers :). Thank you very much. Cheers, Stephan -Ursprüngliche Nachricht- Von: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com] Gesendet: Mittwoch, 30. November 2011 00:22 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] [ParaView] Off axis Projection and Stereo Hi Stephen. On Thu, Nov 24, 2011 at 5:34 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, Since I can use ParaView's cave mode in my Virtual Environment (VE), I was able to play a bit with its stereo capabilities and the wall configuration (.pvx). Before I start with my discussion, I would like to give some details off my configuration: * Virtual Environment - two back projected walls (passive stereo) - each wall is 2.6 m width x 1.6 m high - the walls creates an arrow with an angle of 112° - a render PC with two NVIDIA QUADRO 5000 (one GPU per wall) is connected to four projectors * ParaView - To obtain a correct un-distorted image we use the edge points (world coordinates) of the walls to configure the two views in the pvx-file - Since we use Windows 7, I was not able to define the GPU - View assignment in the pvx-file (it seems to be, that under Windows the flag 'Environment=DISPLAY=:0' is being ignored, all views presented on the first display). We had to modify vtkPVSynchronizedRenderWindows, to align the views in respect to the MPI process id. - Further code modification has been done to control the stereo parameters EyeSeparation and EyeAngle # ## Multiple Display Support (Win7) ## # And here I like to start my discussion. At first let's talk about the display configuration. I had to modify vtkPVSynchronizedRenderWindows to use my two walls under Windows 7. I can imaging, that this is not the best solution. May be some problems can appear here? Please, can some of the developer comment this code modification? This is the code snippet: void vtkPVSynchronizedRenderWindows::UpdateWindowLayout() { . else if (in_cave_mode) { if (vtksys::SystemTools::GetEnv(PV_ICET_WINDOW_BORDERS)) { this-Internals-SharedRenderWindow-SetSize(400, 400); } else { this-Internals-SharedRenderWindow-SetFullScreen(1); // These two lines here has been added unsigned int id = vtkMultiProcessController::GetGlobalController()-GetLocalProcessId(); this-Internals-SharedRenderWindow-SetPosition(1920 * (id), 0); } } . } ### ## Stereo Control in Cave Mode ## ### When I visualize a small object in my ParaView Cave setup, I realized that the parallax between left and right image became un-natural big (it hurts). My opinion is, when we change the zoom we need to adjust the eye separation (and / or the eye angle). This can be done manually or automatically to yield the optimal stereoscopic impression. An parallel project from Aashish Chaudhary (on gitorious), address this problem and starts to modify the VTK api, to have some control of stereo. Unfortunately, after reading some parts of this source code, it looks like only EyeAngle can be manipulated. Furthermore changes of that parameter were not considered during OffAxisProjection calculation. The algorithm considers only the 3D points of left and right eye and not their angles. Thus, changes of eyes angle does not have an effect on images displayed in my cave. I've noticed a code part were the eye angles for left and right were only applied, when UseOffAxisProjection is turned off. And this is not the case when I use ParaView with my view settings. Would it be wrong, if we modify the IF-condition in vtkCamera::ComputeProjectionTransform() in order to consider always the angle: if ( this-Stereo /*** !this-UseOffAxisProjection ***/) // - Disabling the check for Off-Axis-Calculation { // set up a shear for stereo views if ( this-LeftEye ) { this-ProjectionTransform-Stereo( -this-EyeAngle/2, this-Distance ); . Sorry it took me some time to reply. Basically in VTK there could be various ways to get the stereo. With in Crystal eyes stereo we have two options now, 1. Legacy stereo 2. Off axis stereo Second
[Paraview] [ParaView] Off axis Projection and Stereo
Hello, Since I can use ParaView's cave mode in my Virtual Environment (VE), I was able to play a bit with its stereo capabilities and the wall configuration (.pvx). Before I start with my discussion, I would like to give some details off my configuration: * Virtual Environment - two back projected walls (passive stereo) - each wall is 2.6 m width x 1.6 m high - the walls creates an arrow with an angle of 112° - a render PC with two NVIDIA QUADRO 5000 (one GPU per wall) is connected to four projectors * ParaView - To obtain a correct un-distorted image we use the edge points (world coordinates) of the walls to configure the two views in the pvx-file - Since we use Windows 7, I was not able to define the GPU - View assignment in the pvx-file (it seems to be, that under Windows the flag 'Environment=DISPLAY=:0' is being ignored, all views presented on the first display). We had to modify vtkPVSynchronizedRenderWindows, to align the views in respect to the MPI process id. - Further code modification has been done to control the stereo parameters EyeSeparation and EyeAngle # ## Multiple Display Support (Win7) ## # And here I like to start my discussion. At first let's talk about the display configuration. I had to modify vtkPVSynchronizedRenderWindows to use my two walls under Windows 7. I can imaging, that this is not the best solution. May be some problems can appear here? Please, can some of the developer comment this code modification? This is the code snippet: void vtkPVSynchronizedRenderWindows::UpdateWindowLayout() { . else if (in_cave_mode) { if (vtksys::SystemTools::GetEnv(PV_ICET_WINDOW_BORDERS)) { this-Internals-SharedRenderWindow-SetSize(400, 400); } else { this-Internals-SharedRenderWindow-SetFullScreen(1); // These two lines here has been added unsigned int id = vtkMultiProcessController::GetGlobalController()-GetLocalProcessId(); this-Internals-SharedRenderWindow-SetPosition(1920 * (id), 0); } } . } ### ## Stereo Control in Cave Mode ## ### When I visualize a small object in my ParaView Cave setup, I realized that the parallax between left and right image became un-natural big (it hurts). My opinion is, when we change the zoom we need to adjust the eye separation (and / or the eye angle). This can be done manually or automatically to yield the optimal stereoscopic impression. An parallel project from Aashish Chaudhary (on gitorious), address this problem and starts to modify the VTK api, to have some control of stereo. Unfortunately, after reading some parts of this source code, it looks like only EyeAngle can be manipulated. Furthermore changes of that parameter were not considered during OffAxisProjection calculation. The algorithm considers only the 3D points of left and right eye and not their angles. Thus, changes of eyes angle does not have an effect on images displayed in my cave. I've noticed a code part were the eye angles for left and right were only applied, when UseOffAxisProjection is turned off. And this is not the case when I use ParaView with my view settings. Would it be wrong, if we modify the IF-condition in vtkCamera::ComputeProjectionTransform() in order to consider always the angle: if ( this-Stereo /*** !this-UseOffAxisProjection ***/) // - Disabling the check for Off-Axis-Calculation { // set up a shear for stereo views if ( this-LeftEye ) { this-ProjectionTransform-Stereo( -this-EyeAngle/2, this-Distance ); . Another problem arises, when I want to adjust the eye separation. I had to modify a couple of VTK source code files to provide the eye separation as an proxy property and to distribute it along all mpi processes. Is it planned to provide this parameter globally? Please, let me know, what you are thinking about my ideas. Best regards Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] VRPlugin
Hello Aashish, sorry for my late response: Yes, I would like to have some more information and the link to your collaboration repro. Thank you for that. Is there also an how-to available for using VRPlugin? Is this new plugin a part of the refactoring work you mentioned in your post (http://public.kitware.com/pipermail/paraview/2011-June/022086.html). How is the state of this project, cause I also need those capabilities to configure ParaView for Virtual Environment. Thanks again. Regards, Stephan -Ursprüngliche Nachricht- Von: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com] Gesendet: Freitag, 7. Oktober 2011 15:44 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] VRPlugin Hi Stephan, Ive noticed the new VRPlugin in the current development version which replaces VRUI and VRPN plugin. Is there any how to use or tutorial for that available? yes it is work in progress, the base idea here is that you can choose the back-end via a configuration element. So if the VRPlugin is compiled with VRUI and VRPN, you can choose which one to use or choose both in a config file (currently state file). We are finalizing details and working on a documentation alongside. We have a pending branch (on gitorious), that needs to be merged in master once we do some clean up. We can provide you more details, or even can send you the link for our collaboration repository if you wish to test our latest and greatest. We are hoping to have the documentation / code in ParaView master sometime in November. Best, Have a nice weekend. Cheers, Stephan --- M. Sc. Stephan Rogge Wissenschaftlicher Mitarbeiter BTU-Cottbus Lehrstuhl Medientechnik Konrad-Wachsmann-Allee 1 03046 Cottbus Germany Besucheradresse: Siemens-Halske-Ring 14, D-03046 Cottbus Lehrgebäude 3A, Raum 254 Email stephan.ro...@tu-cottbus.de Phone +49 355 69-5088 http://www.tu-cottbus.de/medientechnik/ ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview -- | Aashish Chaudhary | RD Engineer | Kitware Inc. | www.kitware.com ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] VRPlugin
Hello community, Ive noticed the new VRPlugin in the current development version which replaces VRUI and VRPN plugin. Is there any how to use or tutorial for that available? Have a nice weekend. Cheers, Stephan --- M. Sc. Stephan Rogge Wissenschaftlicher Mitarbeiter BTU-Cottbus Lehrstuhl Medientechnik Konrad-Wachsmann-Allee 1 03046 Cottbus Germany Besucheradresse: Siemens-Halske-Ring 14, D-03046 Cottbus Lehrgebäude 3A, Raum 254 Email stephan.ro...@tu-cottbus.de Phone +49 355 69-5088 http://www.tu-cottbus.de/medientechnik/ ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
[Paraview] Accessing object properties
Hello, With the new ParaView version (3.10) it's now possible to select an object within the 3D view. What is the best way to get access to its properties e.g. transformation or color and how I can modify it. Is it right to get the active source object like this: pqActiveObjects* object = (pqActiveObjects::instance()); pqPipelineSource* src = object-activeSource(); ? Some years ago, there was a discussion here in the mailing list about transforming objects right in the GUI and I was not able to find a similar thread for this topic. What is the state of this feature? Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] cpack error
Hello David, I have the same problem as Koen mentioned. In my case I had compiled ParaView 3.10 on Windows 7 with Visual Studio 2008. Everything is fine and I can run the compiled version. But packaging with CPack results in the same error message but at another position. I send you the last part of CPacks output (notice that I replaced some DLLs with dots, just to avoid a huge text here): ;external prerequisites found: f='C:/ParaView_3_10/build/bin/Release/_CPack_Packages/Win32-x86/NSIS/ParaVie w-3. 10.0-Win32-x86/bin/pvrenderserver.exe' external_prereqs='Cosmo.dll; ;vtkzlib.dll' ;external prerequisites found: f='C:/ParaView_3_10/build/bin/Release/_CPack_Packages/Win32-x86/NSIS/ParaVie w-3. 10.0-Win32-x86/bin/pvserver.exe' external_prereqs='Cosmo.dll; ;vtkzlib.dll' ;external prerequisites found: f='C:/ParaView_3_10/build/bin/Release/_CPack_Packages/Win32-x86/NSIS/ParaVie w-3. 10.0-Win32-x86/bin/smTestDriver.exe' external_prereqs='vtksys.dll' ' CMake Error at C:/ParaView_3_10/src/CMake/BundleUtilities.cmake:743 (message): error: verify_app failed Call Stack (most recent call first): C:/ParaView_3_10/src/CMake/BundleUtilities.cmake:625 (verify_app) C:/ParaView_3_10/build/Applications/ParaView/cmake_install.cmake:74 (fixup_bun dle) CPack Error: Error when generating package: ParaView I followed your advice to deactivate PARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES. After this step I was able to compile and pack ParaView. But I could not start ParaView because it request MSVC80P.DLL. It seems to me after disabling PARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES a wrong compile runtime environment has been choose by Visual Studio. Thanks for help. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
Re: [Paraview] Plugin with own thread
Ok. In this case I need to distinguish between Where a thread live and Where a thread is being executed. But finally I have to say, that the implementation of my plugin is running without any crashes. This was the main goal. Thanks again, Utkarash, for your advises. It helps a lot. Bye. -Ursprüngliche Nachricht- Von: Utkarsh Ayachit [mailto:utkarsh.ayac...@kitware.com] Gesendet: Donnerstag, 10. März 2011 17:14 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Plugin with own thread I replied prematurely without realizing the currentThreadId() is a static method. So have you changed the connect to use a queued connection or not? Utkarsh On Thu, Mar 10, 2011 at 8:05 AM, Utkarsh Ayachit utkarsh.ayac...@kitware.com wrote: If you look at http://doc.qt.nokia.com/latest/qobject.html#thread you'll see that QObject::thread() returns the thread to which the object belongs, not the thread in which the code is being executed. Utkarsh On Thu, Mar 10, 2011 at 12:35 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello Utkarsh, thank you very much for the quick response and thanks for pointing me on the QThread documentation. Regarding to the QT doc I realized a direct connection here, which leads to an immediately processing of Trigger(). Well, my assumption was indeed wrong. So I went back to my code and include some debug outputs to clarify which thread processes the pqMyApplicationStarter::Trigger() method. In order to get these information I output the current thread Ids of my plugin (in onStartup and Trigger) ... void pqMyApplicationStarter::onStartup() { ... qWarning() Message from pqMyApplicationStarter: Application Started ( this-thread()-currentThreadId() ); } void pqMyApplicationStarter:: Trigger() { ... qWarning() pqMyApplicationStarter::Trigger(): this-thread()-currentThreadId(); } and in my external thread (Thread::run). void Thread::run() { running = true; while( running ) { qWarning() Thread::run(): currentThreadId(); // Fire the signal emit UpdatedData(); qWarning() Invocation done; } } This lead to the following output: Message from pqMyApplicationStarter: Application Started ( 0x1514 ) Thread::run(): 0x123c pqMyApplicationStarter::Trigger(): 0x1514 Invocation done And here I a new question arises: It seems to be, that Trigger is invoked in my external thread and waits for return but is processed in the plugin thread. Is that right? Thanks again, Best regards, Stephan -Ursprüngliche Nachricht- Von: Utkarsh Ayachit [mailto:utkarsh.ayac...@kitware.com] Gesendet: Mittwoch, 9. März 2011 17:25 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Plugin with own thread You might want to read http://doc.qt.nokia.com/latest/threads-qobject.html especially the section about signal/slots and threads. In your code, contrary to what you expect, Trigger() is being called in your thread and not the main thread and hence the issues you might be seeing. If you simply change the connection to use a Qt::QueuedConnection you'd get the desired effect. Utkarsh On Wed, Mar 9, 2011 at 8:10 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, after reading the tutorials and How-tos for writing ParaView Plugins Ive started with the Autostart-Example project. My goal was to create a plugin which is executed in an external thread. It might happens that I need this in the near future. Well, it works quit well, I guess. But to avoid some errors and miss-behaviors I need a confirmation that I am on the right way. My approach is to use the signal-slot-pattern to communicate between the main thread of ParaView and my own plugin-thread. The class pqMyApplicationStarter represents the ParaView-plugin (which is running in the main thread of ParaView?). There is an object in this class which executes a loop within an external thread ( class Thread ), which extends QThread. As I read somewhere that vtk isnt implemented threaded-safe at all (at least the rendering stuff) I decided to do all render calls in pqMyApplicationStarter. When the UpdatedData()signal is fired the active view needs to re-rendered. The question I want to ask is very simple: Is this the right / best way to create a thread and communicate with it via signals? /// Thread.h class Thread : public QThread { Q_OBJECT public: Thread(QObject* parent = 0); virtual ~Thread(); virtual void run(); signals: void
Re: [Paraview] Plugin with own thread
Hello Utkarsh, thank you very much for the quick response and thanks for pointing me on the QThread documentation. Regarding to the QT doc I realized a direct connection here, which leads to an immediately processing of Trigger(). Well, my assumption was indeed wrong. So I went back to my code and include some debug outputs to clarify which thread processes the pqMyApplicationStarter::Trigger() method. In order to get these information I output the current thread Ids of my plugin (in onStartup and Trigger) ... void pqMyApplicationStarter::onStartup() { ... qWarning() Message from pqMyApplicationStarter: Application Started ( this-thread()-currentThreadId() ); } void pqMyApplicationStarter:: Trigger() { ... qWarning() pqMyApplicationStarter::Trigger(): this-thread()-currentThreadId(); } and in my external thread (Thread::run). void Thread::run() { running = true; while( running ) { qWarning() Thread::run(): currentThreadId(); // Fire the signal emit UpdatedData(); qWarning() Invocation done; } } This lead to the following output: Message from pqMyApplicationStarter: Application Started ( 0x1514 ) Thread::run(): 0x123c pqMyApplicationStarter::Trigger(): 0x1514 Invocation done And here I a new question arises: It seems to be, that Trigger is invoked in my external thread and waits for return but is processed in the plugin thread. Is that right? Thanks again, Best regards, Stephan -Ursprüngliche Nachricht- Von: Utkarsh Ayachit [mailto:utkarsh.ayac...@kitware.com] Gesendet: Mittwoch, 9. März 2011 17:25 An: Stephan Rogge Cc: paraview@paraview.org Betreff: Re: [Paraview] Plugin with own thread You might want to read http://doc.qt.nokia.com/latest/threads-qobject.html especially the section about signal/slots and threads. In your code, contrary to what you expect, Trigger() is being called in your thread and not the main thread and hence the issues you might be seeing. If you simply change the connection to use a Qt::QueuedConnection you'd get the desired effect. Utkarsh On Wed, Mar 9, 2011 at 8:10 AM, Stephan Rogge stephan.ro...@tu-cottbus.de wrote: Hello, after reading the tutorials and How-tos for writing ParaView Plugins Ive started with the Autostart-Example project. My goal was to create a plugin which is executed in an external thread. It might happens that I need this in the near future. Well, it works quit well, I guess. But to avoid some errors and miss-behaviors I need a confirmation that I am on the right way. My approach is to use the signal-slot-pattern to communicate between the main thread of ParaView and my own plugin-thread. The class pqMyApplicationStarter represents the ParaView-plugin (which is running in the main thread of ParaView?). There is an object in this class which executes a loop within an external thread ( class Thread ), which extends QThread. As I read somewhere that vtk isnt implemented threaded-safe at all (at least the rendering stuff) I decided to do all render calls in pqMyApplicationStarter. When the UpdatedData()signal is fired the active view needs to re-rendered. The question I want to ask is very simple: Is this the right / best way to create a thread and communicate with it via signals? /// Thread.h class Thread : public QThread { Q_OBJECT public: Thread(QObject* parent = 0); virtual ~Thread(); virtual void run(); signals: void UpdatedData(); }; void Thread::run() { running = true; while( running ) { // Sleep awhile msleep( 800 ); // Fire the signal emit UpdatedData(); } } / /// pqMyApplicationStarter // class pqMyApplicationStarter : public QObject { Q_OBJECT typedef QObject Superclass; public: pqMyApplicationStarter(QObject* p=0); ~pqMyApplicationStarter(); // Callback for startup. void onStartup(); public slots: void Trigger(); }; void pqMyApplicationStarter::onStartup() { myThread = new Thread(); myThread-start(); pqActiveObjects::instance().connect( myThread, SIGNAL(UpdatedData()), this, SLOT(Trigger()) ); } void pqMyApplicationStarter::Trigger() { pqActiveObjects* object = (pqActiveObjects::instance()); pqView* view
[Paraview] Plugin with own thread
Hello, after reading the tutorials and How-to's for writing ParaView Plugins I've started with the Autostart-Example project. My goal was to create a plugin which is executed in an external thread. It might happens that I need this in the near future. Well, it works quit well, I guess. But to avoid some errors and miss-behaviors I need a confirmation that I am on the right way. My approach is to use the signal-slot-pattern to communicate between the main thread of ParaView and my own plugin-thread. The class pqMyApplicationStarter represents the ParaView-plugin (which is running in the main thread of ParaView?). There is an object in this class which executes a loop within an external thread ( class Thread ), which extends QThread. As I read somewhere that vtk isn't implemented threaded-safe at all (at least the rendering stuff) I decided to do all render calls in pqMyApplicationStarter. When the UpdatedData()signal is fired the active view needs to re-rendered. The question I want to ask is very simple: Is this the right / best way to create a thread and communicate with it via signals? /// Thread.h class Thread : public QThread { Q_OBJECT public: Thread(QObject* parent = 0); virtual ~Thread(); virtual void run(); signals: void UpdatedData(); }; void Thread::run() { running = true; while( running ) { // Sleep awhile msleep( 800 ); // Fire the signal emit UpdatedData(); } } / /// pqMyApplicationStarter // class pqMyApplicationStarter : public QObject { Q_OBJECT typedef QObject Superclass; public: pqMyApplicationStarter(QObject* p=0); ~pqMyApplicationStarter(); // Callback for startup. void onStartup(); public slots: void Trigger(); }; void pqMyApplicationStarter::onStartup() { myThread = new Thread(); myThread-start(); pqActiveObjects::instance().connect( myThread, SIGNAL(UpdatedData()), this, SLOT(Trigger()) ); } void pqMyApplicationStarter::Trigger() { pqActiveObjects* object = (pqActiveObjects::instance()); pqView* view= object-activeView(); if (view) { view-render(); } view = NULL; } Thanks a lot. Cheers, Stephan ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview