How does VTK OSPRay-based volume rendering produce smooth images?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How does VTK OSPRay-based volume rendering produce smooth images?

Alexander Devaykin
Hello everyone,

I wonder how does OSPRay-based volume renderer in VTK, used in ParaView, is able to produce volume images with smooth surface from the first pass (without buffer accumulation).

OSPRay raw volume rendering e.g. using OSPRay demos, results in very densly sampled volumes. It looks like only one sample per voxel is taken which results in one pixel per voxel colored in the first pass at some regions (image 1). Only after several accumulation passes the rendering produces smooth image (image 3).

In contrast to that, volume rendering in ParaView via OSPRay shows smooth image after first pass (image 4) with a little bit of densly sampled artifacts. It actually looks like no frames accumulation is active at all, because I no difference is visible between moving and resting camera. Zooming in also keeps the image smooth (image 5).

Any articles or hints about what is going on behind the scenes? I'm digging into the VTK source code but no understanding so far. OSPRay seems to be configured just like I do in my application, but VTK seems to do the magic somewhere else.

Screenshots or standalone OSPRay and ParaView-OSPRay renderings are attachend.

Best Regards,
Alexander Devaykin

_______________________________________________
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

1 - ospray.png (225K) Download Attachment
2 - ospray_zoomin.png (917K) Download Attachment
3 - osray_accumulated.png (171K) Download Attachment
4 - paraview_ospray.png (230K) Download Attachment
5 - paraview_ospray_zoomin.png (883K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How does VTK OSPRay-based volume rendering produce smooth images?

David E DeMarle
Most likely the only difference is that VTK sets up OSPRay's volume sampling differently than the OSPRay demos do.
You will find how it is setup here:
  https://gitlab.kitware.com/vtk/vtk/blob/master/Rendering/OSPRay/vtkOSPRayVolumeMapperNode.cxx#L255

Note also: starting with ParaView 5.3, if you start ParaView with --enable-streaming, and set "Progressive Passes" on the Properties panel to something higher than one, ParaView will do progressive refinement like you see in the OSPRay demos.



David E DeMarle
Kitware, Inc.
Principal Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909

On Mon, Jul 3, 2017 at 5:46 PM, Alexander Devaykin <[hidden email]> wrote:
Hello everyone,

I wonder how does OSPRay-based volume renderer in VTK, used in ParaView, is able to produce volume images with smooth surface from the first pass (without buffer accumulation).

OSPRay raw volume rendering e.g. using OSPRay demos, results in very densly sampled volumes. It looks like only one sample per voxel is taken which results in one pixel per voxel colored in the first pass at some regions (image 1). Only after several accumulation passes the rendering produces smooth image (image 3).

In contrast to that, volume rendering in ParaView via OSPRay shows smooth image after first pass (image 4) with a little bit of densly sampled artifacts. It actually looks like no frames accumulation is active at all, because I no difference is visible between moving and resting camera. Zooming in also keeps the image smooth (image 5).

Any articles or hints about what is going on behind the scenes? I'm digging into the VTK source code but no understanding so far. OSPRay seems to be configured just like I do in my application, but VTK seems to do the magic somewhere else.

Screenshots or standalone OSPRay and ParaView-OSPRay renderings are attachend.

Best Regards,
Alexander Devaykin

_______________________________________________
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



_______________________________________________
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
Reply | Threaded
Open this post in threaded view
|

Re: How does VTK OSPRay-based volume rendering produce smooth images?

Alexander Devaykin
Hello,

sorry for late reply and thank you for the answers!
I actually managed to achieve nice smooth surface of the volume thanks to your help! And I didn't see any significant performance change at least on the datasets at hand.

Best regards,
Alexander

On Thu, Jul 6, 2017 at 7:52 PM, Brownlee, Carson <[hidden email]> wrote:
The smoothness of the resulting image is based on several factors, notably: number of accumulation passes, number of samples per pixel, samplingStep, and adaptive sampling settings.  Please see the OSRPay documentation for an explanation of each.

The volume renderer in VTK appears smoother because the samplingStep and adaptive sampling settings were set for taking more samples than the viewers that come with OSPRay, which were designed  speed in mind and rely on progressive rendering to smooth the image after the first frame.  We assumed that with VTK and ParaView that most users would not be using progressive refinement, which unfortunately is likely a mostly unknown feature in ParaView.
Carson

From: David E DeMarle [[hidden email]]
Sent: Thursday, July 06, 2017 7:15 AM
To: Alexander Devaykin; Brownlee, Carson
Cc: [hidden email]
Subject: Re: [vtkusers] How does VTK OSPRay-based volume rendering produce smooth images?

Most likely the only difference is that VTK sets up OSPRay's volume sampling differently than the OSPRay demos do.
You will find how it is setup here:
  https://gitlab.kitware.com/vtk/vtk/blob/master/Rendering/OSPRay/vtkOSPRayVolumeMapperNode.cxx#L255

Note also: starting with ParaView 5.3, if you start ParaView with --enable-streaming, and set "Progressive Passes" on the Properties panel to something higher than one, ParaView will do progressive refinement like you see in the OSPRay demos.



David E DeMarle
Kitware, Inc.
Principal Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909

On Mon, Jul 3, 2017 at 5:46 PM, Alexander Devaykin <[hidden email]> wrote:
Hello everyone,

I wonder how does OSPRay-based volume renderer in VTK, used in ParaView, is able to produce volume images with smooth surface from the first pass (without buffer accumulation).

OSPRay raw volume rendering e.g. using OSPRay demos, results in very densly sampled volumes. It looks like only one sample per voxel is taken which results in one pixel per voxel colored in the first pass at some regions (image 1). Only after several accumulation passes the rendering produces smooth image (image 3).

In contrast to that, volume rendering in ParaView via OSPRay shows smooth image after first pass (image 4) with a little bit of densly sampled artifacts. It actually looks like no frames accumulation is active at all, because I no difference is visible between moving and resting camera. Zooming in also keeps the image smooth (image 5).

Any articles or hints about what is going on behind the scenes? I'm digging into the VTK source code but no understanding so far. OSPRay seems to be configured just like I do in my application, but VTK seems to do the magic somewhere else.

Screenshots or standalone OSPRay and ParaView-OSPRay renderings are attachend.

Best Regards,
Alexander Devaykin

_______________________________________________
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




_______________________________________________
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