I&#39;ve just committed a change to vtkOpenGLRenderWindow which appears to fix it. The change is to return default values if the window isn&#39;t mapped like getColorDepth does.<br><br>cheers<br>Dave DeMarle<br><br><div><span class="gmail_quote">
On 3/22/07, <b class="gmail_sendername">David E DeMarle</b> &lt;<a href="mailto:dave.demarle@kitware.com">dave.demarle@kitware.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hmmm, the program looks ok to me, with the exception of two calls to a &quot;render&quot; instead of &quot;ofsrender&quot;.<br>I will try cell selection with offscreen rendering on windows and see if I can reproduce the problem.
<br><br>cheers<br>Dave DeMarle<br><br><br><div><div><span class="e" id="q_1117ab08c5aaa456_1"><span class="gmail_quote">On 3/20/07, <b class="gmail_sendername">Lim, Theodore</b> &lt;<a href="mailto:T.Lim@hw.ac.uk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
T.Lim@hw.ac.uk</a>&gt; wrote:</span></span></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div><div><span class="e" id="q_1117ab08c5aaa456_3">
<div dir="ltr">
<div dir="ltr"><font color="#000000" face="Arial" size="2"></font>Hi,</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">Not sure how to put this but here goes...</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">I&#39;m trying to get get visible cell data for a series of camera 
positions and would like to do this using the Win32 offscreen rendering 
capabilities.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">However, i discovered that the offscreen render window color buffer 
size returns all 0 values. This seems to be the reason why the visible cell 
selector fails. Is there a way to set (or force) values into it?</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">Or rather, can the new class vtkVisibilityCellSelector be used in 
Offscreen rendering mode? And if so, how can this be achieved. I&#39;ve attached the 
code which i&#39;m testing below.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">One note: i compiled with cmake option VTK_USE_OFFSCREEN set to 
&#39;Off&#39; as this caused the vtkMFC examples (i.e. vtkDLG, vtkSDI, vtkMDI)&nbsp;to 
crash. It also caused the same response to my own VTK-MFC app. Not sure if this 
has anything to do with it not being able to use Offscreen. In the test code 
below, i use the vtkWindowToImageFilter to grab a snapshot of the offscreen 
render window and the results was as expected.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">Any help would be greatly appreciated.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">Many thanks, Theo.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">/**************************************************************************************************/</div>
<div dir="ltr">int main()<br>{<br>&nbsp;//Load 
model<br>&nbsp;vtkSmartPointer&lt;vtkSTLReader&gt; reader = 
vtkSmartPointer&lt;vtkSTLReader&gt;::New();<br>&nbsp;reader-&gt;SetFileName(&quot;C:/Model/Data/MillCut.stl&quot;);</div>
<div dir="ltr">&nbsp;vtkSmartPointer&lt;vtkPolyDataMapper&gt; map1 = 
vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();&nbsp;<br>&nbsp;map1-&gt;SetInput(reader-&gt;GetOutput());</div>
<div dir="ltr"><br>&nbsp;// set up offscreen 
renderer<br>&nbsp;vtkSmartPointer&lt;vtkRenderer&gt; ofsrenderer = 
vtkSmartPointer&lt;vtkRenderer&gt;::New();<br>&nbsp;ofsrenderer-&gt;SetBackground(0.0,0.0,0.0); 
<br>&nbsp;vtkSmartPointer&lt;vtkRenderWindow&gt; ofsrenWin = 
vtkSmartPointer&lt;vtkRenderWindow&gt;::New();<br>&nbsp;ofsrenWin-&gt;AddRenderer(ofsrenderer);<br>&nbsp;ofsrenWin-&gt;SetSize(800,800);<br>&nbsp;ofsrenWin-&gt;SetOffScreenRendering(1);</div>
<div dir="ltr">&nbsp;// set 
interactor<br>&nbsp;vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; iren = 
vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();<br>&nbsp;iren-&gt;SetRenderWindow(ofsrenWin);&nbsp; 
</div>
<div dir="ltr"><br>&nbsp;//set up the 
view<br>&nbsp;renderer-&gt;GetActiveCamera()-&gt;SetViewUp(0, 1, 
0);<br>&nbsp;renderer-&gt;SetBackground(0.0,0.0,0.0); 
<br>&nbsp;&nbsp;<br>&nbsp;<br>&nbsp;// set 
actor<br>&nbsp;vtkSmartPointer&lt;vtkActor&gt; act1 = 
vtkSmartPointer&lt;vtkActor&gt;::New();<br>&nbsp;act1-&gt;SetMapper(map1);</div>
<div dir="ltr">&nbsp;// add actor to renderer<br>&nbsp;double diagonal = 
act1-&gt;GetLength();<br>&nbsp;double *center = 
act1-&gt;GetCenter();&nbsp;<br>&nbsp;ofsrenderer-&gt;AddActor(act1);<br>&nbsp;ofsrenderer-&gt;GetActiveCamera()-&gt;SetFocalPoint(center);<br>&nbsp;ofsrenderer-&gt;GetActiveCamera()-&gt;SetPosition(20, 
-20, -27);<br>&nbsp;ofsrenderer-&gt;ResetCamera();</div>
<div dir="ltr"><br>&nbsp;ofsrenWin-&gt;Render();</div>
<div dir="ltr">&nbsp;//-----------------------------------------------<br>&nbsp;// 
check offscreen render window...<br>&nbsp;int 
rgba[4];<br>&nbsp;ofsrenWin-&gt;GetColorBufferSizes(rgba);</div>
<div dir="ltr">&nbsp;vtkSmartPointer&lt;vtkWindowToImageFilter&gt; wif = 
vtkSmartPointer&lt;vtkWindowToImageFilter&gt;::New();//<br>&nbsp;wif-&gt;SetInput(ofsrenWin);<br>&nbsp;wif-&gt;Update();&nbsp;</div>
<div dir="ltr">&nbsp;vtkSmartPointer&lt;vtkJPEGWriter&gt; jpgw = 
vtkSmartPointer&lt;vtkJPEGWriter&gt;::New();<br>&nbsp;jpgw-&gt;SetInput(wif-&gt;GetOutput());<br>&nbsp;jpgw-&gt;SetQuality(100);<br>&nbsp;jpgw-&gt;SetFileName(&quot;D:/Projects/VTK/testoffscreen.jpg&quot;);<br>&nbsp;jpgw-&gt;Write();</div>
<div dir="ltr">&nbsp;//-----------------------------------------------</div>
<div dir="ltr"><br>&nbsp;// get visible 
cells<br>&nbsp;vtkSmartPointer&lt;vtkVisibleCellSelector&gt; sel1 = 
vtkSmartPointer&lt;vtkVisibleCellSelector&gt;::New();<br>&nbsp;sel1-&gt;SetRenderer(ofsrenderer);</div>
<div dir="ltr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // grab everything in 
the render window viewport<br>&nbsp;int *size = 
ofsrenderer-&gt;GetRenderWindow()-&gt;GetSize();<br>&nbsp;sel1-&gt;SetRenderPasses(0,1,0,1,1);<br>&nbsp;sel1-&gt;SetArea(size[0],size[1],size[2],size[3]);<br>&nbsp;sel1-&gt;Select();<br>&nbsp;vtkSmartPointer&lt;vtkSelection&gt; 
res1 = 
vtkSmartPointer&lt;vtkSelection&gt;::New();<br>&nbsp;sel1-&gt;GetSelectedIds(res1);</div>
<div dir="ltr">&nbsp;vtkSmartPointer&lt;vtkSelection&gt; cellids = 
res1-&gt;GetChild(0);<br>&nbsp;vtkSmartPointer&lt;vtkExtractSelectedPolyDataIds&gt; 
extr = 
vtkSmartPointer&lt;vtkExtractSelectedPolyDataIds&gt;::New();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if (cellids)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extr-&gt;SetInput(1, 
act1-&gt;GetMapper()-&gt;GetInput());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
extr-&gt;SetInput(0, 
cellids);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
extr-&gt;Update();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
sMap-&gt;SetInput(extr-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; &quot;Empty 
color buffer selection -&quot; &lt;&lt; 
endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; 
&quot;Check display color depth. Must be at least 24 bit.&quot; &lt;&lt; 
endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
sMap-&gt;SetInput(emptyPD);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</div>
<div dir="ltr">&nbsp;////////////////////////////////////////////////////////////</div>
<div dir="ltr">&nbsp;ofsrenWin-&gt;Render();</div>
<div dir="ltr"><br>&nbsp;// Set the user method (bound to key 
&#39;u&#39;)<br>&nbsp;iren-&gt;Initialize();<br>&nbsp;iren-&gt;Start();</div>
<div dir="ltr"><br>&nbsp;return 0;<br>}</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">&nbsp;</div></div></span></div>

</div>
<br>_______________________________________________<br>This is the private VTK discussion list.<br>Please keep messages on-topic. Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.vtk.org/Wiki/VTK_FAQ</a><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.vtk.org/mailman/listinfo/vtkusers
</a><br><br></blockquote></div><br>
</blockquote></div><br>