<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"><span style="font-size: 12pt;">Hi David,</span><br>
</p>
<div style="color: rgb(0, 0, 0);">
<div>
<div id="x_geary-body">
<div><br>
</div>
<div>thank you very much again for your reply.</div>
<div><br>
</div>
<div>You are right in that the approach of doing rasterization with the graphics card in an offscreen buffer and then reading the pixel values out has its own problems and i stopped going that way.</div>
<div><br>
</div>
<div>Even if it didn't sound like that, alltogether i am quite satisfied with the majority voting solution with the vtkPolyDataToImageStencil filter so far. It seems to be precise enough most of the time. </div>
<div><br>
</div>
<div>But if it is not so much more work and if i have some time left, i will try to complete the solution with the rasterization of the polygons themselves.</div>
<div><br>
</div>
<div>I already stumbled upon the vtkImplicitModeller, but to be honest, from the class documentation alone i didn't completely "get" what it is really doing, e.g. what is the "output" of it. </div>
<div><br>
</div>
<div>Does it compute a distance field where the cell values of the grid contain the distances from the cell to the isosurface?</div>
<div><br>
</div>
<div>Something like:</div>
<div><br>
</div>
<div><img style="max-width: 100%; user-select: none;" tabindex="0" data-outlook-trace="F:1|T:1" src="cid:inline_01@geary"></div>
<div><br>
</div>
<div>(image taken from: <a href="http://bytewrangler.blogspot.com/2011/10/signed-distance-fields.html" id="LPlnk852121" class="OWAAutoLink" previewremoved="true">http://bytewrangler.blogspot.com/2011/10/signed-distance-fields.html</a>)</div>
<div id="LPBorder_GT_15384356638110.4220384348772299" data-vivaldi-spatnav-clickable="1" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15384356638050.715223027208429" role="presentation" cellspacing="0" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td id="ImageCell_15384356638070.0167709094984414" colspan="1" style="width: 250px; position: relative; display: table-cell; padding-right: 20px;">
<div id="LPImageContainer_15384356638080.1715864075778326" style="background-color: rgb(255, 255, 255); height: 250px; position: relative; margin: auto; display: table; width: 250px;">
<a id="LPImageAnchor_15384356638090.7656606588543693" href="http://bytewrangler.blogspot.com/2011/10/signed-distance-fields.html" target="_blank" style="display: table-cell; text-align: center;"><img id="LPThumbnailImageID_15384356638090.5725356350408082" width="250" height="250" style="display: inline-block; max-width: 250px; max-height: 250px; height: 250px; width: 250px; border-width: 0px; vertical-align: bottom;" src="http://2.bp.blogspot.com/-bQanRezjlk4/TpdpSpMq5rI/AAAAAAAAAWw/_8lQsmOJHWM/w1200-h630-p-k-no-nu/SignedDistanceField.png"></a></div>
</td>
<td id="TextCell_15384356638100.06393304320871995" colspan="2" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;">
<div id="LPRemovePreviewContainer_15384356638100.9515989290090106"></div>
<div id="LPTitle_15384356638100.02399847878848882" style="top: 0px; color: rgb(0, 120, 215); font-weight: 400; font-size: 21px; font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15384356638100.2425708489408822" href="http://bytewrangler.blogspot.com/2011/10/signed-distance-fields.html" target="_blank" style="text-decoration: none;">Byte Wrangler: Signed Distance Fields</a></div>
<div id="LPMetadata_15384356638100.870048800839258" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
bytewrangler.blogspot.com</div>
<div id="LPDescription_15384356638100.2896089057627764" style="display: block; color: rgb(102, 102, 102); font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
delta is a constant which determines how far from the edge of the letter the anti-aliasing extends. The actual shader code I use in bulldog is slightly more complex as it handles borders and reversed characters (such as when selecting text in a textbox), as
 well as adjusting the anti-aliasing for different font sizes.</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Berti</div>
<div><br>
</div>
</div>
<div id="x_geary-quote"><br>
Am Mo, 1. Okt, 2018 um 1:15 NACHMITTAGS schrieb David Gobbi <david.gobbi@gmail.com>:<br>
<blockquote type="cite">
<div dir="ltr">
<div class="x_gmail_quote">
<div dir="ltr">On Sat, Sep 29, 2018 at 2:54 AM Berti Krüger <<a href="mailto:berti_krueger@hotmail.com" id="LPlnk951764" class="OWAAutoLink" previewremoved="true">berti_krueger@hotmail.com</a>> wrote:<br>
</div>
<blockquote class="x_gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div id="x_m_-891309107262260069divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<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">Is there some way with the available vtk filters to rasterize the polygons themselves instead of rasterizing the volume enclosed by the polygons?</p>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>That's what vtkImplicitModeller does, so you could combine its results with the results that you already have.  </div>
<div> </div>
<blockquote class="x_gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div id="x_m_-891309107262260069divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<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>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>This won't work for polygons that face the camera edge-on, since they are invisible in the rendering.  So you would have to do it from three directions and then combine the results.  Even then, I'm not sure how good the quality would be.</div>
<div> </div>
<div> - David</div>
<blockquote class="x_gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div id="x_m_-891309107262260069divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<div>
<div style="color:rgb(0,0,0)">
<div>
<div dir="ltr">
<div dir="ltr"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>