<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div><span style="font-size:10pt">We will want to avoid skinning on the CPU as much as possible (we can actually totally replace it with current techniques depending on the overhead). I've already done GPU skinning within VTK for non-physical objects, but there are also ways to get that
 data back from the GPU so that physical objects can interact with it.</span></div></div></div></blockquote><div> </div><div>Looking forward to learn more about this. As the rest, please make sure to keep track of this to show why current solutions in VTK would limit us.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><div>
</div>
<div>From my understanding, transforming the PolyData vs transforming the Actor is the same thing because when you transform the Actor, you are actually transforming the PolyData. Except for a possible function call or two, this shouldn't help performance that
 much.</div></div></div></blockquote><div><br></div><div>Well not really: the actor will apply the transforms on the polydata vertices at each frame. If we have an initial transform that we do not want to concatenate every frame, using the filter will allow us to update the input polydata.</div><div><br></div><div>Also, have you had a look at the no-copy arrays from my previous emails? Those will be a main feature of the VTK 7.1 release. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">
<div>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div id="m_-3295519042546677108divRpF208015" style="direction:ltr"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Alexis Girault [<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>]<br>
<b>Sent:</b> Monday, October 24, 2016 9:25 AM<br>
<b>To:</b> Sreekanth Arikatla<br>
<b>Cc:</b> Milef, Nicholas Boris; <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><div><div class="h5"><br>
<b>Subject:</b> Re: [Imstk-developers] Copying Vega data<br>
</div></div></font><br>
</div><div><div class="h5">
<div></div>
<div>
<div dir="ltr">Nich: a filter that could be used for skinning: <a href="http://redir.aspx?REF=Mj-ffhLpMmrqbB19yuVxiIUZaSQYNnAeowjMqwRFfwPh9xKKY_zTCAFodHRwOi8vd3d3LnZ0ay5vcmcvZG9jL25pZ2h0bHkvaHRtbC9jbGFzc3Z0a1dlaWdodGVkVHJhbnNmb3JtRmlsdGVyLmh0bWwjZGV0YWlscw.." target="_blank">http://www.vtk.org/<wbr>doc/nightly/html/<wbr>classvtkWeightedTransformFilte<wbr>r.html#details</a>
<div>Also, another way to apply transforms in vtk is to apply it to the data structures, and not to the actor: <a href="http://redir.aspx?REF=jMlnmAMDaiDsGc62Hiq3VI49544X89FiZfCZMctUMprh9xKKY_zTCAFodHRwOi8vd3d3LnZ0ay5vcmcvZG9jL25pZ2h0bHkvaHRtbC9jbGFzc3Z0a1RyYW5zZm9ybVBvbHlEYXRhRmlsdGVyLmh0bWw." target="_blank">http://www.vtk.org/doc/<wbr>nightly/html/<wbr>classvtkTransformPolyDataFilte<wbr>r.html</a></div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="m_-3295519042546677108gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136);font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<a href="http://redir.aspx?REF=V0ztJFgTjzT0RMivK0hRASUXAGFbv6DGN1pkRPNgLmvh9xKKY_zTCAFodHRwOi8vd3d3LmtpdHdhcmUuY29tLw.." rel="noreferrer" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">On Fri, Oct 21, 2016 at 11:03 AM, Alexis Girault <span dir="ltr">
<<a href="http://redir.aspx?REF=yteyC3sJVkEO3f82Co_ESpq3Q1fkEX32iAjTeGolJwfh9xKKY_zTCAFtYWlsdG86YWxleGlzLmdpcmF1bHRAa2l0d2FyZS5jb20." target="_blank">alexis.girault@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Here is how VTK offered to improve mapping volumetric meshes or just data arrays:
<a href="http://redir.aspx?REF=W0QgZSv4Lil82rTfMMalcf4HRy-HC7lNK29bE_TZbvrh9xKKY_zTCAFodHRwOi8vd3d3LnZ0ay5vcmcvV2lraS9WVEsvSW5TaXR1RGF0YVN0cnVjdHVyZXM." target="_blank">
http://www.vtk.org/Wiki/VTK/In<wbr>SituDataStructures</a>
<div><br>
</div>
<div>The MappedDataArray (that we tried to use and that Nich got rid of because of huge overhead cost when calling getVoidPointer in the VBO creation) is actually deprecated and will be removed in the future. T<span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px;line-height:19.05px">he
 next iteration of this functionality which focuses on performance improvements is presented in this article </span><font color="#000000" face="sans-serif"><span style="font-size:12.7px;line-height:19.05px"><a href="http://redir.aspx?REF=lC7VhF1pv4HQM2cWIl25dHZ1vCuA7Pl7ycm0S1QgcJnh9xKKY_zTCAFodHRwczovL2Jsb2cua2l0d2FyZS5jb20vbmV3LWRhdGEtYXJyYXktbGF5b3V0cy1pbi12dGstNy0xLw.." target="_blank">https://blog.kitware.c<wbr>om/new-data-array-layouts-in-v<wbr>tk-7-1/</a>
 and detailed on this wiki page: <a href="http://redir.aspx?REF=od-dJGFb24F8O3ZPX3TIxKHF1Wdl_JfPWJrySkrXfizh9xKKY_zTCAFodHRwOi8vd3d3LnZ0ay5vcmcvV2lraS9WVEsvVHV0b3JpYWxzL0RhdGFBcnJheXM." target="_blank">http://www.vtk.org/Wiki/<wbr>VTK/Tutorials/DataArrays</a></span></font></div>
<div><font color="#000000" face="sans-serif"><span style="font-size:12.7px;line-height:19.05px"><br>
</span></font></div>
<div><font color="#000000" face="sans-serif"><span style="font-size:12.7px;line-height:19.05px">If we can improve the renderer and mapper to do what's needed, I believe we'll be able to use this new data array layouts to reduce data structure conversion overhead.</span></font></div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="m_-3295519042546677108m_-6296628020333787981gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136);font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<a href="http://redir.aspx?REF=V0ztJFgTjzT0RMivK0hRASUXAGFbv6DGN1pkRPNgLmvh9xKKY_zTCAFodHRwOi8vd3d3LmtpdHdhcmUuY29tLw.." rel="noreferrer" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="m_-3295519042546677108h5"><br>
<div class="gmail_quote">On Thu, Oct 20, 2016 at 6:01 PM, Sreekanth Arikatla <span dir="ltr">
<<a href="http://redir.aspx?REF=_Owr_YQTfZKAWfqGaOOYZuWot-8vG6XQWZ7Br5h9jPDh9xKKY_zTCAFtYWlsdG86c3JlZWthbnRoLmFyaWthdGxhQGtpdHdhcmUuY29t" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi Nick,
<div>            Yes, that can be done (I was under the impression that even that operation was slow with vtk but haven't looked into that part myself). The copy could additionally be made conditional since rendering typically runs faster than the physics.</div>
<div><br>
</div>
<div>The mesh needs to be updated though (at least in the case where visual and physics are the same) since the physics update of future time steps count on it.</div>
</div>
<div class="m_-3295519042546677108m_-6296628020333787981HOEnZb">
<div class="m_-3295519042546677108m_-6296628020333787981h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Oct 20, 2016 at 4:04 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="http://redir.aspx?REF=p5ifK7JY0Eepw5XG7soqYLo0f_dPp4RsAVinmxk9nZLh9xKKY_zTCAFtYWlsdG86bWlsZWZuQHJwaS5lZHU." target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt"><span style="font-size:13.3333px">In that case, then copying data over shouldn't be a big deal. I thought the copying was occurring on the rendering thread. If we need thread synchronization
 here, then we can just use a buffered approach.</span><br>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div id="m_-3295519042546677108m_-6296628020333787981m_-6061152807898898081m_7535116805064077562divRpF668767" style="direction:ltr">
<font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="http://redir.aspx?REF=_Owr_YQTfZKAWfqGaOOYZuWot-8vG6XQWZ7Br5h9jPDh9xKKY_zTCAFtYWlsdG86c3JlZWthbnRoLmFyaWthdGxhQGtpdHdhcmUuY29t" target="_blank">sreekanth.arikatla@kitware.co<wbr>m</a>]<br>
<b>Sent:</b> Thursday, October 20, 2016 3:53 PM<br>
<b>To:</b> Milef, Nicholas Boris<br>
<b>Cc:</b> <a href="http://redir.aspx?REF=bx23EM43AtmQgYvCbEjpnfXIcS_tQE5rNGeIqYymj6zh9xKKY_zTCAFtYWlsdG86aW1zdGstZGV2ZWxvcGVyc0BpbXN0ay5vcmc." target="_blank">
imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Copying Vega data<br>
</font><br>
</div>
<div>
<div class="m_-3295519042546677108m_-6296628020333787981m_-6061152807898898081h5">
<div></div>
<div>
<div dir="ltr">Hi Nick,
<div>           It happens in a separate thread in the sceneManager module.</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Oct 20, 2016 at 3:45 PM, Milef, Nicholas Boris <span dir="ltr">
<<a href="http://redir.aspx?REF=ocxGB5FkJv35wN8y-lTM3IZ4R1_pXNzwE78SMgHQgZ_h9xKKY_zTCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9QnBKRkR6eWxKVXpteUgwSVMyb3VaUjU4VmZTbzRpak10WU40amN1MmNES3RJVjFDSlBuVENBRnRZV2xzZEc4NmJXbHNaV1p1UUhKd2FTNWxaSFUu" target="_blank">milefn@rpi.edu</a>></span>
 wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Do Vega operations occur on the same thread as the render loop? If not, then it might be best to buffer and copy over the data instead of directly working on the mesh data.</div>
</div>
<br>
______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="http://redir.aspx?REF=pu_u9CUZNHFCaXnghztPOxRIHbMr0l_TEQmVbssAXGjh9xKKY_zTCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9YmlneDdVQ2JRazlTTlNwU0NZRG5qRmFrRTRpd2JBZ1dETUhiNHFFNFNwZXRJVjFDSlBuVENBRnRZV2xzZEc4NlNXMXpkR3N0WkdWMlpXeHZjR1Z5YzBCcGJYTjBheTV2Y21jLg.." target="_blank">Imstk-developers@imstk.org</a><br>
<a href="http://redir.aspx?REF=fFMsZ7UGz2CLybSHL1J4CGNaD0s53E51-sCOb8Vj1Y7h9xKKY_zTCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9akZvQnFka0gxeGw2cGVQWVhRMEZJcnZoQTg5dnM5MDJJM2Q0c0JqbU9VYXRJVjFDSlBuVENBRm9kSFJ3T2k4dmNIVmliR2xqTG10cGRIZGhjbVV1WTI5dEwyMWhhV3h0WVc0dmJHbHpkR2x1Wm04dmFXMXpkR3N0WkdWMlpXeHZjR1Z5Y3cuLg.." rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-3295519042546677108m_-6296628020333787981m_-6061152807898898081m_7535116805064077562gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://redir.aspx?REF=u7i0bBhvPK_GCVYVlUovQfLaYQQs2PbAfCOuaaB20wHh9xKKY_zTCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9M3F6Rm8zRk5ONFJkdEJVazBxT3M1Sm9kUEVBXy1qcEtEOHRzTUdFWW4yNnRJVjFDSlBuVENBRm9kSFJ3T2k4dmQzZDNMbXRwZEhkaGNtVXVZMjl0" style="font-size:12.8px" target="_blank">Kitware,
 Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-3295519042546677108m_-6296628020333787981m_-6061152807898898081gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://redir.aspx?REF=iPFOxu_xpn0F3aj5CbwyYmwxre4q-9mD__ejLG4gJq7h9xKKY_zTCAFodHRwOi8vd3d3LmtpdHdhcmUuY29t" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="http://redir.aspx?REF=Xn3p_umUXJuCWxKHh5TDSeCfT9CpdG-En5N9SOzOJafh9xKKY_zTCAFtYWlsdG86SW1zdGstZGV2ZWxvcGVyc0BpbXN0ay5vcmc." target="_blank">Imstk-developers@imstk.org</a><br>
<a href="http://redir.aspx?REF=s9Ve0F8F1WRAVWb_4wUjTq69kMytXHnHZuTRcmA-rh7h9xKKY_zTCAFodHRwOi8vcHVibGljLmtpdHdhcmUuY29tL21haWxtYW4vbGlzdGluZm8vaW1zdGstZGV2ZWxvcGVycw.." rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div></div></div>
</div>
</div>
</div>

</blockquote></div><br></div></div>