[vtkusers] Occlusion

Cory Quammen cquammen at cs.unc.edu
Tue Dec 2 14:04:23 EST 2008


Markus,

It sounds like an application for a ray tracing program, but not one with a
standard camera model. Instead, you would cast rays from the tumor center
out into the organs and skin using some uniform sampling of the unit sphere.
You can mark the rays that intersect the organs and then check which of the
skin triangles intersect one or more "organ" rays.

Alas, I don't know of any class in VTK that does this for you, but you
should be able to code something up manually quite easily. The vtkTriangle
class has a method IntersectWithLine() that should prove useful if you
decide to iterate over all triangles for all the rays you cast. For better
performance, you could use vtkCellLocator or vtkOBBTree. It also has an
IntersectsWithLine() method that gives you a list of triangles (vtkCells,
really) that the line intersects. You could have two vtkOBBTrees, one for
the organs and one for the skin. If IntersectsWithLine() called on the
vtkOBBTree with the organ data returns a non-empty list of triangles, then
all the skin triangles the ray intersects are occluded, and you can mark
them as such.

Good luck with your project,
Cory

On Tue, Dec 2, 2008 at 12:02 PM, Engel Markus <m.engel at dkfz-heidelberg.de>wrote:

>  Hi Cory!
>
>
>
> I'm sorry. I should have described the goal in more detail.
>
>
>
> The program I'm writing is supposed to compute the optimal trajectory  to
> insert a needle to a  tumor. This is going to be part of the planning for an
> operation using percutaneous  radiofrequency ablation.
>
> When the needle has hit the center of the tumor its tip is heated and thus
> burns the tumor.
>
>
>
> The first step of the program is to determine the so called 100%zones. Only
> in these zones I can insert the needle safely, because otherwise I could hit
> a bone, vessel or another organ.
>
> That's why, as a first step, I have to find all triangles of the skin that
> are totally visible, respectively  not occluded , when looking from the
> tumors "point of view".
>
> After this step I'd like to have two  lists of triangles. One containing
> all visible triangles and the other containing all the occluded triangles.
>
>
>
> I hope this helps understanding my problem.
>
>
>
> Greets
>
>
>
> Markus
>
>
>
>
>
> *Von:* cquammen at gmail.com [mailto:cquammen at gmail.com] *Im Auftrag von *Cory
> Quammen
> *Gesendet:* Dienstag, 2. Dezember 2008 14:28
> *An:* Engel Markus
> *Cc:* vtkusers at vtk.org
> *Betreff:* Re: [vtkusers] Occlusion
>
>
>
> Hi Markus,
>
> I don't have a VTK-based solution for you based on your problem
> description, but I am curious why you want to eliminate triangles of the
> vtkPolyData representing the skin. What is the ultimate goal you are trying
> to accomplish? Are you worried about performance? If so, you probably
> shouldn't. Modern GPUs can render triangles very quickly, especially with
> features like early z culling. Are you trying to eliminate them from the
> scene? If they are occluded from your view point, you won't see them.
>
> Just curious,
> Cory
>
> On Tue, Dec 2, 2008 at 7:37 AM, Engel Markus <m.engel at dkfz-heidelberg.de>
> wrote:
>
> Hi!
>
>
>
> I'm currently looking for a possibility to check whether a certain triangle
> of my vtkPolyData is visible or occluded by another PolyData.
>
>
>
> I'm writing a program that eliminates triangles of the PolyData,
> representing the patients skin, that are not visible from the barycenter of
> a tumor,
>
> because they are occluded by other organs. All organs, the tumor and the
> skin are vtkPolyDatas.
>
> So I basically need to check if there is an Object, in this case a
> PolyData, between a point and a tringle.
>
>
>
> As the program is going to be based on VTK, I'm searching for a native VTK
> solution.
>
> I already stumbled upon  the OpenGL  occlusion_query, however I afraid it
> won't be easy to integrate this into the existing rendering-pipeline. That's
> another reason for looking for some VTK-stuff.
>
>
>
> Thanks a lot!
>
>
>
> Markus
>
>
>
>
>
>
>
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
>
> --
> Cory Quammen
> Center for Computer Integrated Systems for Microscopy and Manipulation
> (CISMM)
> Department of Computer Science
> University of North Carolina at Chapel Hill
> http://www.cs.unc.edu/~cquammen <http://www.cs.unc.edu/%7Ecquammen>
>



-- 
Cory Quammen
Center for Computer Integrated Systems for Microscopy and Manipulation
(CISMM)
Department of Computer Science
University of North Carolina at Chapel Hill
http://www.cs.unc.edu/~cquammen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20081202/55297a60/attachment.htm>


More information about the vtkusers mailing list