[vtkusers] update scalars of vtkPoints

Barth, Sebastian sebastian.barth at iosb.fraunhofer.de
Fri Jul 2 10:05:02 EDT 2010


Hi Hagen,

you could use multithreading to update the Delaunay filter on another thread.
I could not find a good guide for doing this. If you find some, please send me the link, book id or anything else!

For that you have to know, that the Render() methods can only be called from one thread at the same time since OpenGL is not thread safe.
You have to find out yourself which classes / methods are thread safe.

Kitware should write some essential guides..
Even in the books from kitware it's not written.

Sebastian

-----Ursprüngliche Nachricht-----
Von: Hagen Mölle [mailto:h.moelle at googlemail.com] 
Gesendet: Freitag, 2. Juli 2010 15:53
An: Sebastien Jourdain
Cc: Barth, Sebastian; John Drescher; vtkusers at vtk.org; Eric E. Monson
Betreff: Re: AW: AW: [vtkusers] update scalars of vtkPoints

Hi again,

After all I realized that everything is fine with my code. The problem 
is the vtkDelaunay filter I use. I need it for retrieving cutplanes and 
isoplanes from the dataset. So I am sorry for not mentioning this 
before. In 2d mode this filter works fast. In 3D mode with lots of 
points the filter needs a lot more time for calculation.

So finally I have to think about the presentation of the measured data. 
Maybe the best way is to reduce the number of points by triliniar 
interpolation.

Thanks again for your help,

Hagen

> Hi Hagen,
>
> Did you compiled VTK in Debug mode, or Release ?
> Are you sure that the time you are giving do not include the time to
> update the dataset ?
> In which language is your code ? (C++, Java, Python, TCL...)
>
> Seb
>
> 2010/7/1 Hagen Mölle<h.moelle at googlemail.com>:
>    
>> Hi again,
>>
>> using scalars->Modified() works. But now I returned to start. The
>> visualization update of the vtkUnstructuredGrid with for example 7000 points
>> takes about 40 seconds. So there is no difference in time consumption
>> between creating a new dataset or updating the old dataset.
>>
>> I do not really understand why it takes vtk over 40 seconds to update the
>> scalars in visualization of only 7000 points (vtkUnstructuredGrid). Is there
>> any else I can do to bring down the update time?
>>
>> Hagen
>>      
>>> Hi Hagen,
>>>
>>> did you also try scalars->Modified() instead?
>>>
>>> With Modified() you tell the pipeline that the data object has to be
>>> updated (also everything coming after this object in pipeline). You might
>>> forgot to run Update() on your mapper the vtkUnstructedGrid is attached to
>>> (or any other object that has Update() and is connected after the grid in
>>> pipeline row). You might also forgot to call the Render() method to update
>>> the renderer?
>>>
>>> Hope this helps!
>>>
>>> Sebastian Barth
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Hagen Mölle [mailto:h.moelle at googlemail.com]
>>> Gesendet: Donnerstag, 1. Juli 2010 14:16
>>> An: Barth, Sebastian
>>> Cc: John Drescher; vtkusers at vtk.org; sebastien.jourdain at kitware.com
>>> Betreff: Re: AW: [vtkusers] update scalars of vtkPoints
>>>
>>> Hi Sebastian,
>>>
>>> Thanks for your help. I got it working with vtkPolyData in my 2D
>>> visualization.
>>>
>>> In my 3D visualization of measured points I still have the problem that
>>> the scalars do not change. There I use vtkUnstructuredGrid instead of
>>> vtkPolyData. Right now the update routine of the scalars looks like this
>>> (pseudo code):
>>>
>>> scalars = vtkDataSet->GetPointData()->GetScalars()
>>> for(number of scalars)
>>> {
>>>       update each scalar
>>> }
>>> vtkDataSet->Modified()
>>>
>>> The code is compiling for vtkUnstructuredGrid and vtkPolyData. But it
>>> seems I have to do something additional to update the scalars of the
>>> vtkUnstructuredGrid.
>>>
>>> Any idea?
>>>
>>> Hagen
>>>
>>>
>>>
>>>        
>>>> Hello Hagen,
>>>>
>>>> did you forget to call Modified() of the vtkPolyData after altering the
>>>> points? Otherwise the vtkPolyData does not know that their points, scalars
>>>> or cells were changed.
>>>>
>>>> Sebastian Barth
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: vtkusers-bounces at vtk.org [mailto:vtkusers-bounces at vtk.org] Im
>>>> Auftrag von Hagen Mölle
>>>> Gesendet: Donnerstag, 1. Juli 2010 08:26
>>>> An: John Drescher; vtkusers at vtk.org; sebastien.jourdain at kitware.com
>>>> Betreff: Re: [vtkusers] update scalars of vtkPoints
>>>>
>>>> On 06/30/2010 06:14 PM, John Drescher wrote:
>>>>
>>>>
>>>>          
>>>>> 2010/6/30 Sebastien Jourdain<sebastien.jourdain at kitware.com>:
>>>>>
>>>>>
>>>>>
>>>>>            
>>>>>> Hi Hagen,
>>>>>>
>>>>>> As you said, you can start by simply change the data on the fly and
>>>>>> call Render() once the change has been done. By change I mean point
>>>>>> location, scalar data and even point number.
>>>>>> But be aware that only one thread should be used in VTK otherwise they
>>>>>> have to be synchronized.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>              
>>>>> I think vtkPolyData->GetPointData->GetScalars()
>>>>>
>>>>> is where to start
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>>            
>>>> Hi Sebastien and John,
>>>>
>>>> Thanks for pointing out how to change the scalars of the points on the
>>>> fly. So I need to alter the vtkDataArray which I get by
>>>> vtkPolyData->GetPointData->GetScalars(). Hopefully this will work.
>>>>
>>>> Yesterday I tried to set new scalars by using the following method:
>>>> vtkPolyData->GetPointData->SetScalars(vtkDoubleArray). So I did not
>>>> generate a new dataset. But the visualization did not change during
>>>> update. It seemed the old scalars where used during update.
>>>>
>>>> Hagen
>>>> _______________________________________________
>>>> 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 VTK FAQ at:
>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>
>>>>
>>>>          
>>>
>>>        
>>
>>      




More information about the vtkusers mailing list