<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Lucida Sans";
panose-1:2 11 6 2 3 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
h5
{mso-style-priority:9;
mso-style-link:"Heading 5 Char";
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
font-weight:bold;}
h6
{mso-style-priority:9;
mso-style-link:"Heading 6 Char";
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:7.5pt;
font-family:"Calibri",sans-serif;
font-weight:bold;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
code
{mso-style-priority:99;
font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.Heading5Char
{mso-style-name:"Heading 5 Char";
mso-style-priority:9;
mso-style-link:"Heading 5";
font-family:"Calibri Light",sans-serif;
color:#2F5496;}
span.Heading6Char
{mso-style-name:"Heading 6 Char";
mso-style-priority:9;
mso-style-link:"Heading 6";
font-family:"Calibri Light",sans-serif;
color:#1F3763;}
span.EmailStyle23
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Thank you for the information.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Do these rendering options allow smoothing (low-pass filtering that reconstructs the continuous signal from discrete samples)?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is visualization of overlapping segments supported? I know that generating new label value for each intersection combination and setting appropriate color and opacity value could be a solution. However, this is only practical if number
of segments is small (up to 16 segments a label value could be a bitfield which encodes presence of each segment), but not a generally applicable solution, we need support visualization up to about 200 potentially overlapping segments. It is also a difficulty
that current image processing filter implementations cannot operate directly on bitfield data (that was the main motivation for us to use to choose per-segment volumes instead of bitfield volumes for overlapping segment storage).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Andras<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>From:</b> Sankhesh Jhaveri <sankhesh.jhaveri@kitware.com>
<br>
<b>Sent:</b> Friday, June 8, 2018 3:06 PM<br>
<b>To:</b> Andras Lasso <lasso@queensu.ca><br>
<b>Cc:</b> Bertram Sabrowsky-Hirsch <Bertram.Sabrowsky-Hirsch@risc-software.at>; vtkusers@vtk.org<br>
<b>Subject:</b> Re: [vtkusers] Smooth label-map volume rendering<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p style="margin-bottom:12.0pt"><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394">Hi Andras,<o:p></o:p></span></p>
<p style="margin-bottom:12.0pt;margin:1.2em!important"><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394">Note that the vtkGPUVolumeRayCastMapper already supports labeled data rendering.<o:p></o:p></span></p>
<p style="margin-bottom:12.0pt;margin:1.2em!important"><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394">Take a look at
</span><code><span style="font-size:10.5pt;font-family:Consolas;color:#0B5394;border:solid #DADADA 1.0pt;padding:0cm;background:#E8E8E8">TestGPURayCastCompositeMask</span></code><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394"> and
</span><code><span style="font-size:10.5pt;font-family:Consolas;color:#0B5394;border:solid #DADADA 1.0pt;padding:0cm;background:#E8E8E8">TestGPURayCastCompositeMaskBlend</span></code><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394">.<o:p></o:p></span></p>
<p style="margin:1.2em!important"><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394">Sankhesh</span><span style="font-size:1.0pt;font-family:"Arial",sans-serif;color:#0B5394"></span><span style="font-family:"Lucida Sans",sans-serif;color:#0B5394"><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Jun 7, 2018 at 12:08 PM Andras Lasso <<a href="mailto:lasso@queensu.ca">lasso@queensu.ca</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D">I would be interested in a good solution to this, too.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D">In 3d Slicer, we’ve been using flying edges filter, which creates usable (non-blocky) surfaces very quickly (suitable for interactive editing). The limitation
is that we still need a smoothing filter to avoid all staircase artifacts, and that it increases update time by about a magnitude.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D">We’ve been evaluating using multi-volume rendering for displaying segmentation in 3D, to achieve faster updates and nicer transparent renderings. Multi-volume
rendering is good because we can apply Gaussian smoothing on each input volume to get correctly reconstructed (non-blocky) surface and we can display overlapping segments. However, this Gaussian smoothing takes some time (still competitive with surface smoothing)
and multi-volume renderer does not support shading yet (this is the blocking issue right now).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D">Andras</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> vtkusers <<a href="mailto:vtkusers-bounces@public.kitware.com" target="_blank">vtkusers-bounces@public.kitware.com</a>>
<b>On Behalf Of </b>Bertram Sabrowsky-Hirsch<br>
<b>Sent:</b> Thursday, June 7, 2018 3:54 AM<br>
<b>To:</b> <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
<b>Subject:</b> [vtkusers] Smooth label-map volume rendering<o:p></o:p></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Hi all,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">I am working with volume data before and after a classification algorithm.
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">The input volume has ushort intensity values, the output volume is a label-map where the values indicate each voxels class/label (background=0, vessel=1, aneurysm=2,
…).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">I am visualizing the input volume with a opacity transfer function that simulates a threshold filter (e.g. control points: 799=0.0, 800=1.0) and the result is
a nice and smooth visualization of the volume.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">However, the output volume has this blocky Minecraft style effect. The opacity transfer function has the control points: 0=0.0, 1=1.0 and I use the color transfer
function to distinguish the classes/labels.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Is there a way to visualize the output volume in a similar way as the input volume? I considered generating iso-surface meshes and smooth those, but this is not
really an option. I also don’t really understand why this is an issue because the</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Input volume is also rendered with a distance of 1 between the two opacity thresholds. Are the volumes handled differently by vtk and how?</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Input volume:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"><img border="0" width="324" height="286" style="width:3.375in;height:2.9791in" id="m_1072328669617055056Picture_x0020_2" src="cid:image001.jpg@01D3FE56.AEDC44B0"></span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Output volume:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"><img border="0" width="324" height="304" style="width:3.375in;height:3.1666in" id="m_1072328669617055056Picture_x0020_1" src="cid:image002.jpg@01D3FE56.AEDC44B0"></span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Kind regards,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-GB">Bertram</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
Powered by <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010183390&sdata=jv8abr0mLmh3XLAMYhnqfOacZD6tWicTE28%2FPyUgv74%3D&reserved=0" target="_blank">
www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010183390&sdata=OFiKbkJMvowzovvnQ78Je5zUU%2FgJw6swBXY3zUiiDPU%3D&reserved=0" 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="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.vtk.org%2FWiki%2FVTK_FAQ&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010183390&sdata=1hqqA7yzfuhztA%2F7LhN%2ByXFoqbrvL6sT8lA7pQ4GcEA%3D&reserved=0" target="_blank">
http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmarkmail.org%2Fsearch%2F%3Fq%3Dvtkusers&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010183390&sdata=VB1gIuJTL47PGJOrL7Gs8uCG%2FPnNI9AOJktlKzz3R0c%3D&reserved=0" target="_blank">
http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fvtkusers&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010183390&sdata=TujgXZ1MBmd4PV8U%2BSLV8vj3%2FYJzZehvvlgiLWAzdJU%3D&reserved=0" target="_blank">https://public.kitware.com/mailman/listinfo/vtkusers</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<div style="mso-element:para-border-div;border:none;border-bottom:solid #EEEEEE 1.0pt;padding:0cm 0cm 0cm 0cm">
<h5 style="mso-margin-top-alt:15.6pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;border:none;padding:0cm">
<span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:#0B4194">Sankhesh Jhaveri<o:p></o:p></span></h5>
</div>
<h6 style="mso-margin-top-alt:15.6pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm" id="inbox-inbox-inbox-inbox-inbox-inbox-inbox--sr-research-development-engineer-kitware-http-www-kitware-com-518-881-4417">
<em><span style="font-size:11.0pt;font-family:"Arial",sans-serif;color:#0B5394;font-weight:normal">Sr. Research & Development Engineer</span></em><span style="font-size:11.0pt;font-family:"Arial",sans-serif;color:#0B5394;font-weight:normal"> |
<a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2F&data=02%7C01%7Classo%40queensu.ca%7Cec2363823c974d48d43b08d5cd72f713%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636640816010339641&sdata=KOIi%2FKI8n%2BNH%2F0YXSS2tmG72u2pObar05vMaapIjeaI%3D&reserved=0">
Kitware</a> | (518) 881-4417<o:p></o:p></span></h6>
<div>
<p class="MsoNormal"><span style="font-size:1.0pt;font-family:"Arial",sans-serif;color:#00386B"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>