<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi David,</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">thanks for the infos about the vtkPolyDataToImageStencil filter threaded approach. </p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Is there some way with the available vtk filters to rasterize the polygons themselves instead of rasterizing the volume enclosed by the polygons?</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">I know, i could in some way misuse the vtk renderer to do this by rendering the mesh
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
without any shading, only in ambient, completely white with orthogonal projection etc. </span>in a black render window, sized to the voxel resolution, then read the resulting screen pixels with the vtkWindowToImage Filter, <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">fill
 the vtkImageData where i have white pixels,</span> change the clipping planes to the next slice, draw the mesh again, read again ... and do that slice by slice for the depth part of the voxel resolution:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><img size="6802" contenttype="image/png" id="img641417" tabindex="0" style="max-width: 99.9%; user-select: none;" data-outlook-trace="F:1|T:1" src="cid:4ffb8812-3732-4885-bb29-4da9ff0b3467"><br>
<br>
</p>
<p style="margin-top:0;margin-bottom:0">But are the<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> available </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">vtk
 filters able in some way to rasterize the polygons themselves ?</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"></span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Or could it be done with
 some kind of signed distance field filter (i don't know if there is something in vtk)?</span></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<div><br>
</div>
Thanks again.
<div><br>
</div>
<div><br>
</div>
<div>Cheers,</div>
<div><br>
</div>
<div>Berti<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> David Gobbi <david.gobbi@gmail.com><br>
<b>Gesendet:</b> Samstag, 29. September 2018 03:44<br>
<b>An:</b> Berti Krüger<br>
<b>Cc:</b> VTK Users; Csaba Pinter<br>
<b>Betreff:</b> Re: [vtkusers] Solid Voxelization with VTK</font>
<div> </div>
</div>
<meta content="text/html; charset=utf-8">
<div>
<div dir="ltr">
<div dir="ltr">Hi Berti,
<div><br>
</div>
<div>It's nice to see that the orientation voting gives such a clean result.  To get a result without gaps it would be necessary to take a completely different approach to the rasterization: rasterize the polygons themselves, instead of rasterizing the volume
 enclosed by the polygons.</div>
<div><br>
</div>
<div>Neither of the filters is parallel.  I designed them both so that they could be parallel, but I never wrote the threading code because they already worked fast enough for my application.</div>
<div><br>
</div>
<div>For instance, vtkPolyDataToImageStencil has this method:</div>
<div><br>
</div>
<div>
<div>    void vtkPolyDataToImageStencil::ThreadedExecute(</div>
<div>      vtkImageStencilData *data,</div>
<div>      int extent[6],</div>
<div>      int threadId)</div>
</div>
<div><br>
</div>
<div>The vtkImageStencilData object is made so that it can be written and read in a thread-safe manner, so in order to multithread this filter, one would just have to subdivide the extent along Z and then write a threaded "For()" loop, e.g. with vtkSMPTools.h.</div>
<div><br>
</div>
<div> - David</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>