[vtkusers] Requirements for multiple volumes in one render window
Jaime Campos
jaimefbc at gmail.com
Fri Mar 4 08:27:35 EST 2016
Hello everyone,
I'm a new subscriber to this mailing list and I was reading this thread,
and I'm also interested in this functionality.
Currently I am using vtkOpenGLVolumeTextureMapper3D for two different
volumes that intersect in 3D space, and it happens to render the volumes
correctly by blending opacities and doing the correct compositioning
(because of the slicing it does internally, I believe, though not being
perfect). This also allows me to pick and interact with the vtkVolume props
independently, which is a must have for the functionality I am developing.
The problem, as far as I know, is that with VTK 7.0 new rendering backend
(OpenGL 2), this mapper is no longer supported and the new GPU mappers
available, unfortunately, are not solving this issue yet. This feature
could also be applied to the iOS GPU volume mapper example. I wish I could
help you adding this functionality, but unfortunately I'm not familiar with
the internals of VTK in these modules, but I'm eager to learn. I hope I can
bump up the priority of this request !
Thank you,
Best Regards,
Jaime Campos
2016-03-04 11:00 GMT+00:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
> 2016-03-02 21:16 GMT+01:00 Aashish Chaudhary <
> aashish.chaudhary at kitware.com>:
>
>> Elvis,
>>
>> thanks for the detailed information. I thought about a way of doing
>> this. Basically, I think the mapper has to take multiple inputs and if
>> multiple inputs are present, then we will construct a BBox around it
>> and used that for traversing. Now, internally, we would have to
>> transform the data position to each volume so that we can perform the
>> lookup and set some rules on how to perform compositing (replace,
>> modulate etc.). I will talk to the team here and will add in our todo
>> but we would have check on the priority of it.
>>
>
> Thanks a lot for looking into this and bringing it up with the team. It
> would be a very welcome addition for us, and surely to some others as well.
>
> The approach you outline seems sound to me, but I am a layman in
> visualization :)
>
>
>>
>> If you want to help us with this then I am more happy to guide you
>> with the process. It won't be very difficult but will require some
>> careful changes to the existing mapper.
>>
>
> I'm afraid we're in the middle of a product launch here at work, so I'm
> quite swamped. This is only a small part of the application I'm building.
> I'm also completely new to VTK and visualization in general, so I'm also
> afraid it would be more difficult and time consuming for me than you might
> think (as opposed to a seasoned VTK dev).
>
> I'm of course prepared to try out any changes you do on our data sets,
> should you decide to work on this.
>
> Thanks again,
> Elvis
>
>
>> Thanks,
>>
>>
>> On Mon, Feb 29, 2016 at 11:46 AM, Elvis Stansvik
>> <elvis.stansvik at orexplore.com> wrote:
>> > 2016-02-29 16:32 GMT+01:00 Aashish Chaudhary
>> > <aashish.chaudhary at kitware.com>:
>> >>
>> >> Hi Elvis,
>> >>
>> >> On Sat, Feb 27, 2016 at 12:06 PM, Elvis Stansvik
>> >> <elvis.stansvik at orexplore.com> wrote:
>> >> > 2016-02-25 17:10 GMT+01:00 Elvis Stansvik
>> >> > <elvis.stansvik at orexplore.com>:
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> From searching around, I think I've gathered that to render multiple
>> >> >> volumes in a single window, each volume must have its own mapper and
>> >> >> volume
>> >> >> property. They can't share mapper or property.
>> >> >>
>> >> >> My question is whether I must use separate renderers for each
>> volume as
>> >> >> well, or if I can use the same renderer for them all?
>> >> >>
>> >> >> Also, I did read something in an old post about problems with
>> rendering
>> >> >> multiple volumes that intersect (share a voxel). Is this still a
>> >> >> problem?
>> >> >> I'm using VTK 6.2 and the vtkVolumeRayCastMapper.
>> >> >>
>> >> >> Thanks in advance!
>> >> >
>> >> >
>> >> > Including Donny's answer here, to keep the thread intact:
>> >> >
>> >> >> See this thread:
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> http://vtk.1045678.n5.nabble.com/Rendering-multiple-volumes-td5734685.html#a5734971
>> >> >
>> >> > Thanks, that clears some things up, and brings up some workarounds.
>> That
>> >> > thread was from oct/nov last year, so I guess it is still the case
>> that
>> >> > proper rendering of multiple volumes that share voxels in 3D space is
>> >> > not
>> >> > possible? (even with 7.0?).
>> >>
>> >> It depends what you define proper. If you have two volumes and they
>> >> share the exact same space, you can combine them into one volume. When
>> >> they share the same space but do not overlap that's when things get
>> >> tricky since then the outcome depends on how do you want to handle
>> >> this disparity. There could be some other ways such as you combine the
>> >> volume into one. At the rendering level it could get tricky.
>> >>
>> >> What exactly you are trying to do.
>> >
>> >
>> > I see, what I would expect I think is composite rendering of the voxels
>> > using some composite rendering function / blending mode (perhaps
>> > configurable?).
>> >
>> > Sorry if my use case wasn't clear, I'm attaching a rough sketch I did
>> just
>> > now which should explain it better.
>> >
>> > Each of our volumes is a piece of a drill core (see my photo previously
>> in
>> > this thread). The pieces were scanned stacked on top of each other in a
>> > plastic tube inside our machine. During scanning, they are not
>> necessarily
>> > aligned properly (as shown in the sketch, and also in the photo).
>> >
>> > We will do some algorithmic alignment of the volumes, but we must also
>> allow
>> > the user to override / supplement the automatic alignment when it fails.
>> > This means the user should be able to rotate and move (along Z axis) the
>> > pieces until they align. It's like a pussle with pieces of a drill core
>> :)
>> >
>> > While the user is doing this, the volumes may intersect (noone is
>> perfect on
>> > the first try). This is why I'm asking about rendering multiple volumes
>> that
>> > partially intersect in 3D space.
>> >
>> > It's very desirable that the user can see inside the volumes while doing
>> > this manual alignment, since the features (cracks, density variations,
>> ...)
>> > inside the rocks may be what guides the user in aligning the pieces
>> > properly. That's why I don't like the idea of letting the user work with
>> > extracted isosurfaces or similar instead.
>> >
>> > Hope this clears things up a little!
>> >
>> > Elvis
>> >
>> >>
>> >> - Aashish
>> >>
>> >> >
>> >> > Elvis
>> >> >
>> >> >>
>> >> >> Elvis
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Powered by www.kitware.com
>> >> >
>> >> > Visit other Kitware open-source projects at
>> >> > http://www.kitware.com/opensource/opensource.html
>> >> >
>> >> > Please keep messages on-topic and check the VTK FAQ at:
>> >> > http://www.vtk.org/Wiki/VTK_FAQ
>> >> >
>> >> > Search the list archives at: http://markmail.org/search/?q=vtkusers
>> >> >
>> >> > Follow this link to subscribe/unsubscribe:
>> >> > http://public.kitware.com/mailman/listinfo/vtkusers
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> | Aashish Chaudhary
>> >> | Technical Leader
>> >> | Kitware Inc.
>> >> | http://www.kitware.com/company/team/chaudhary.html
>> >
>> >
>>
>>
>>
>> --
>> | Aashish Chaudhary
>> | Technical Leader
>> | Kitware Inc.
>> | http://www.kitware.com/company/team/chaudhary.html
>>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160304/9961eb70/attachment-0001.html>
More information about the vtkusers
mailing list