<div dir="ltr">Rick:<div><br></div><div>The DesiredUpdateRate of the render window is a changing quantity. Its usually the same as the StillUpdateRate of the interactor (which defaults to a really low number, implying that the StillRender can take as long as it needs to). </div>
<div><br></div><div>During interaction, the interactor style switches the DesiredUpdateRate of the RenderWindow to the interactor's InteractiveUpdateRate, so as to maintain interactivity. At the end of the interaction it switches the DesiredUpdateRate back to the interactor's StillUpdateRate. This results in a coarser render during interaction followed by a high resolution render at the end of the interaction.</div>
<div><br></div><div style>The if-block in the GPURenderMode is consistent with this intent:</div><div style><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> usedMapper->SetAutoAdjustSampleDistances(<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> ren->GetRenderWindow()->GetDesiredUpdateRate()>=<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">this</span>->InteractiveUpdateRate);</span></div></div>
<div style><br></div><div style>Its saying: During interaction, adjust the ImageSampling to achieve the interactive frame rate. When not interacting, don't adjust the image sampling.</div><div style><br></div><div style>
I don't see a bug here. </div><div style><br></div><div style>What's probably incorrect is the InteractiveUpdateRate which you've set to 1 (ie a frame a second). You want to set that to a much larger number 15 ~ 30.</div>
<div style><br></div><div style>Also your check via the debugger was probably done prior to interaction and not during interaction itself, so your conclusions would be misleading.</div><div style><br></div><div style>Hope this helps</div>
<div style>--</div><div style>karthik</div><div style><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 19, 2013 at 2:21 AM, Richard Frank <span dir="ltr"><<a href="mailto:rickfrank@me.com" target="_blank">rickfrank@me.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">On researching my previous question about how the volume rendering is made lower resolution during rotation,<div>
I did some tracing of the code, and found what I believe is a problem related to a Macro.</div><div><div><br></div><div>This is the section of code that determines whether the sampling distance is computed on the fly for the GPURenderMode:</div>
<div><br></div><div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas;color:blue">case</span><span style="font-size:9.5pt;font-family:Consolas"> vtkSmartVolumeMapper::GPURenderMode:<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> ...</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span style="font-size:9.5pt;font-family:Consolas"> usedMapper->SetAutoAdjustSampleDistances(<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> ren->GetRenderWindow()->GetDesiredUpdateRate()>=<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">this</span>->InteractiveUpdateRate);<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9.5pt;font-family:Consolas"> usedMapper->Render(ren, vol);<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">break</span>;<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div>
</div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><br><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u>Here it seems that SetAutoAdjustSampleDistance(int) if passed 0 will turn off auto adjusting sampling distance.<u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><br><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u>If I look at <u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><br><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><span style="font-family:Consolas;font-size:13px">ren->GetRenderWindow()->GetDesiredUpdateRate() it is equal to 0.0001;</span><u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><span style="font-family:Consolas;font-size:13px"><br></span><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<u></u><span style="font-family:Consolas;font-size:13px;color:blue">this</span><span style="font-family:Consolas;font-size:13px">->InteractiveUpdateRate == 1.0;</span><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<u></u><span style="font-family:Consolas;font-size:13px"><br></span><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u><span style="font-family:Consolas;font-size:13px">so, </span><u></u><span style="font-family:Consolas;font-size:13px">GetDesiredUpdateRate is not greater than or equal to </span><span style="font-family:Consolas;font-size:13px">InteractiveUpdateRate,</span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:Consolas;font-size:13px">and so </span><span style="font-family:Consolas;font-size:13px">SetAutoAdjustSampleDistances() should be passed 0 (or false) and turned off.</span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span style="font-family:Consolas;font-size:13px">But it's not.</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:Consolas;font-size:13px"><br></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:Consolas;font-size:13px">SetAutoAdjustSampleDistance is defined as some macros</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas;color:green">/ Description:</span><span style="font-size:9.5pt;font-family:Consolas"><u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"> <span style="color:green">// If AutoAdjustSampleDistances is on, the the ImageSampleDistance</span><u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"> <span style="color:green">// will be varied to achieve the allocated render time of this</span><u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"> <span style="color:green">// prop (controlled by the desired update rate and any culling in</span><u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"> <span style="color:green">// use).</span><u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"> vtkSetClampMacro( AutoAdjustSampleDistances, <span style="color:blue">int</span>, 0, 1 );<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"> vtkGetMacro( AutoAdjustSampleDistances, <span style="color:blue">int</span> );<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"> vtkBooleanMacro( AutoAdjustSampleDistances, <span style="color:blue">int</span> );</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"><br>
</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas">if I change the code to </span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas">int val = </span><span style="font-family:Consolas;font-size:9.5pt">ren->GetRenderWindow()->GetDesiredUpdateRate()>=</span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">this</span>->InteractiveUpdateRate; </span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt">
<span style="font-size:9.5pt;font-family:Consolas"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px">usedMapper->SetAutoAdjustSampleDistances(val);</span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px">val is 0 and still doesn't turn it off.</span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px"><br>
</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px">HOWEVER if I change the code to </span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px"><br>
</span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt"><div style="font-size:11pt;margin:0in 0in 0.0001pt">
<span style="font-family:Consolas;font-size:13px">usedMapper->SetAutoAdjustSampleDistances(0); </span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br></span></div>
<div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">IT WORKS - the Auto Adjustment is off and I get smooth rotations.</span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt">
<span style="font-family:Consolas;font-size:13px"><br></span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">Seems odd to me, and perhaps a bug with the macro definition?</span></div>
<div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">I'm using Windows Visual Studio 7, but we also see this on Ubuntu Linux with gcc </span></div>
<div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">Can someone verify?</span></div>
<div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br></span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br>
</span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">Thanks</span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br>
</span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px">Rick</span></div><div style="font-size:11pt;margin:0in 0in 0.0001pt"><span style="font-family:Consolas;font-size:13px"><br>
</span></div><div><span style="font-family:Consolas;font-size:13px"><br></span></div></div></div></div></div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>karthik
</div></div>