<div dir="ltr"><div class="markdown-here-wrapper" style="font-family:"Lucida Sans",Cantarell,Verdana,sans-serif;color:rgb(11,83,148)"><p style="margin:0px 0px 1.2em!important">Hi Andras,</p>
<p style="margin:0px 0px 1.2em!important">I don’t think that there is any explicit smoothing operation performed by the mapper. However, final color computation does blend the mapped color values from the input volume and the mask.</p>
<p style="margin:0px 0px 1.2em!important">Even though we call it a label map, it is more of a masking operation based on a secondary label map volume. By virtue of this, it supports overlapping segments. See the attached baseline image for TestGPURayCastCompositeMaskBlend:</p>
<p style="margin:0px 0px 1.2em!important"><img src="https://www.vtk.org/files/ExternalData/SHA512/b58c820ea435aa40b16c4202c2b50900f7e19529f7d75ece53b71dcc4ef8c68723d57785509c7f7710d312fe17323c955f1d10997e71a65cbcc740f8ff0b173f" alt="TestGPURayCastCompositeMaskBlend"></p>
<div title="MDH:SGkgQW5kcmFzLDxkaXY+PGJyPjwvZGl2PjxkaXY+SSBkb24ndCB0aGluayB0aGF0IHRoZXJlIGlz
IGFueSBleHBsaWNpdCBzbW9vdGhpbmcgb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgbWFwcGVy
LiBIb3dldmVyLCBmaW5hbCBjb2xvciBjb21wdXRhdGlvbiBkb2VzIGJsZW5kIHRoZSBtYXBwZWQg
Y29sb3IgdmFsdWVzIGZyb20gdGhlIGlucHV0IHZvbHVtZSBhbmQgdGhlIG1hc2suPC9kaXY+PGRp
dj48YnI+PC9kaXY+PGRpdj5FdmVuIHRob3VnaCB3ZSBjYWxsIGl0IGEgbGFiZWwgbWFwLCBpdCBp
cyBtb3JlIG9mIGEgbWFza2luZyBvcGVyYXRpb24gYmFzZWQgb24gYSBzZWNvbmRhcnkgbGFiZWwg
bWFwIHZvbHVtZS4gQnkgdmlydHVlIG9mIHRoaXMsIGl0IHN1cHBvcnRzIG92ZXJsYXBwaW5nIHNl
Z21lbnRzLiBTZWUgdGhlIGF0dGFjaGVkIGJhc2VsaW5lIGltYWdlIGZvciBUZXN0R1BVUmF5Q2Fz
dENvbXBvc2l0ZU1hc2tCbGVuZDo8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PiFbVGVzdEdQVVJh
eUNhc3RDb21wb3NpdGVNYXNrQmxlbmRdKDxhIGhyZWY9Imh0dHBzOi8vd3d3LnZ0ay5vcmcvZmls
ZXMvRXh0ZXJuYWxEYXRhL1NIQTUxMi9iNThjODIwZWE0MzVhYTQwYjE2YzQyMDJjMmI1MDkwMGY3
ZTE5NTI5ZjdkNzVlY2U1M2I3MWRjYzRlZjhjNjg3MjNkNTc3ODU1MDljN2Y3NzEwZDMxMmZlMTcz
MjNjOTU1ZjFkMTA5OTdlNzFhNjVjYmNjNzQwZjhmZjBiMTczZiI+aHR0cHM6Ly93d3cudnRrLm9y
Zy9maWxlcy9FeHRlcm5hbERhdGEvU0hBNTEyL2I1OGM4MjBlYTQzNWFhNDBiMTZjNDIwMmMyYjUw
OTAwZjdlMTk1MjlmN2Q3NWVjZTUzYjcxZGNjNGVmOGM2ODcyM2Q1Nzc4NTUwOWM3Zjc3MTBkMzEy
ZmUxNzMyM2M5NTVmMWQxMDk5N2U3MWE2NWNiY2M3NDBmOGZmMGIxNzNmPC9hPik8L2Rpdj48ZGl2
PiZuYnNwOzxicj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jun 9, 2018 at 3:16 PM Andras Lasso <<a href="mailto:lasso@queensu.ca">lasso@queensu.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-7197924158315163471WordSection1">
<p class="MsoNormal">Thank you for the information.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Do these rendering options allow smoothing (low-pass filtering that reconstructs the continuous signal from discrete samples)?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></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).<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Andras<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>From:</b> Sankhesh Jhaveri <<a href="mailto:sankhesh.jhaveri@kitware.com" target="_blank">sankhesh.jhaveri@kitware.com</a>>
<br>
<b>Sent:</b> Friday, June 8, 2018 3:06 PM<br>
<b>To:</b> Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>><br>
<b>Cc:</b> Bertram Sabrowsky-Hirsch <<a href="mailto:Bertram.Sabrowsky-Hirsch@risc-software.at" target="_blank">Bertram.Sabrowsky-Hirsch@risc-software.at</a>>; <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
<b>Subject:</b> Re: [vtkusers] Smooth label-map volume rendering<u></u><u></u></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div class="m_-7197924158315163471WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p style="margin-bottom:12.0pt"><span style="font-family:"Lucida Sans",sans-serif;color:#0b5394">Hi Andras,<u></u><u></u></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.<u></u><u></u></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">.<u></u><u></u></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"><u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Thu, Jun 7, 2018 at 12:08 PM Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>> wrote:<u></u><u></u></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"><span style="color:#1f497d">I would be interested in a good solution to this, too.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Andras</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><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<u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">Hi all,</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">I am working with volume data before and after a classification algorithm.
</span><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><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><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">Input volume:</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"><img border="0" width="324" height="286" style="width:3.375in;height:2.9791in" id="m_-7197924158315163471m_1072328669617055056Picture_x0020_2"></span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">Output volume:</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"><img border="0" width="324" height="304" style="width:3.375in;height:3.1666in" id="m_-7197924158315163471m_1072328669617055056Picture_x0020_1"></span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">Kind regards,</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">Bertram</span><u></u><u></u></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><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<div>
<div>
<div style="border:none;border-bottom:solid #eeeeee 1.0pt;padding:0cm 0cm 0cm 0cm">
<h5 style="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<u></u><u></u></span></h5>
</div>
<h6 style="margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm" id="m_-7197924158315163471inbox-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" target="_blank">
Kitware</a> | <a href="tel:(518)%20881-4417" value="+15188814417" target="_blank">(518) 881-4417</a><u></u><u></u></span></h6>
<div>
<p class="MsoNormal"><span style="font-size:1.0pt;font-family:"Arial",sans-serif;color:#00386b">​<u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</div></div></blockquote></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div class="inbox-inbox-inbox-inbox-inbox-inbox-inbox-markdown-here-wrapper" style="font-family:"proza libre",sans-serif;color:rgb(0,56,107)"><h5 id="inbox-inbox-inbox-inbox-inbox-inbox-inbox-sankhesh-jhaveri" style="margin:1.3em 0px 1em;padding:0px;font-size:1.1em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);font-weight:bold;color:rgb(11,65,148)">Sankhesh Jhaveri</h5>
<h6 id="inbox-inbox-inbox-inbox-inbox-inbox-inbox--sr-research-development-engineer-kitware-http-www-kitware-com-518-881-4417" style="margin:1.3em 0px 1em;padding:0px;font-size:1em;color:rgb(11,83,148);font-family:"open sans",sans-serif;font-weight:normal"><em>Sr. Research & Development Engineer</em> | <a href="http://www.kitware.com/">Kitware</a> | (518) 881-4417</h6>
<div title="MDH:PGIgc3R5bGU9ImZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDEx
LCA4MywgMTQ4KTsiPjxmb250IHNpemU9IjIiPiMjIyMjU2Fua2hlc2ggSmhhdmVyaTwvZm9udD48
L2I+PGRpdj48Zm9udCBjb2xvcj0iIzBiNTM5NCIgZmFjZT0idmVyZGFuYSwgc2Fucy1zZXJpZiIg
c2l6ZT0iMiI+PGI+PGJyPjwvYj48L2ZvbnQ+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
IGFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDExLCA4MywgMTQ4KTsiPjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTogdmVyZGFuYSwgc2Fucy1zZXJpZjsiPjxpPiMjIyMjIypTci4gUmVzZWFy
Y2ggJmFtcDsgRGV2ZWxvcG1lbnQgRW5naW5lZXIqPC9pPiZuYnNwO3wmbmJzcDs8L3NwYW4+PC9z
cGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogdmVyZGFuYSwgc2Fucy1zZXJpZjsgY29sb3I6
IHJnYigxMSwgODMsIDE0OCk7Ij48YSBocmVmPSJodHRwOi8vd3d3LmtpdHdhcmUuY29tLyIgdGFy
Z2V0PSJfYmxhbmsiIHN0eWxlPSJjb2xvcjogcmdiKDE3LCA4NSwgMjA0KTsiPktpdHdhcmU8L2E+
Jm5ic3A7fCZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IHZlcmRhbmEsIHNh
bnMtc2VyaWY7IGNvbG9yOiByZ2IoMTEsIDgzLCAxNDgpOyI+KDUxOCkgODgxLTQ0MTc8L3NwYW4+
PGJyPjwvZGl2PjxkaXY+PGRpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogdmVyZGFu
YSwgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigxMSwgODMsIDE0OCk7Ij48L3NwYW4+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px">​</div></div></div></div>