<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&#39;s InteractiveUpdateRate, so as to maintain interactivity. At the end of the interaction it switches the DesiredUpdateRate back to the interactor&#39;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-&gt;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-&gt;GetRenderWindow()-&gt;GetDesiredUpdateRate()&gt;=<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>-&gt;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&#39;t adjust the image sampling.</div><div style><br></div><div style>
I don&#39;t see a bug here.  </div><div style><br></div><div style>What&#39;s probably incorrect is the InteractiveUpdateRate which you&#39;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">&lt;<a href="mailto:rickfrank@me.com" target="_blank">rickfrank@me.com</a>&gt;</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-&gt;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-&gt;GetRenderWindow()-&gt;GetDesiredUpdateRate()&gt;=<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>-&gt;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-&gt;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-&gt;GetRenderWindow()-&gt;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">-&gt;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&#39;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-&gt;GetRenderWindow()-&gt;GetDesiredUpdateRate()&gt;=</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>-&gt;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-&gt;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&#39;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-&gt;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&#39;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>