background error in raytracing

With paraview 5.9.1, I have a problem where the bundled ospray. Rendered images contain random errors where a large region of grey color may appear in the saved snapshot image. One such image is attached as an example.

I was using ospray path tracer and backplate. Normal images have clear white background, but in a long sequence of rendering, some images may randomly contain these grey errors. Some cases the grey area is large as the attached image, sometimes the grey area is in a small region somewhere on the image.

Is there a workaround for this issue?

FYI @timothee.chabat

This looks like a plane from a bug with the 3d interactive widgets (see Enabling ray tracing with glyphs). This also looks like what is described here : OSPray pathtracer: erratic walls.

Is there any filter that creates an interactive 3d widget in your pipeline (like the plane of the Clip filter) ?
If so please try these steps :

  • open your scene (do not activate the ray tracing before, not even once)
  • toggle off the visibility for all of your interactive 3d widgets
  • now toggle on ray tracing

Thank you for the reply! My pipeline is simple:
Step 1) load a bunch of polylines from binary parallel XML files (pvtp files).
Step 2) apply the ‘Tube’ filter to those polylines
Step 3) load a simple box.vtk file to show the cubic box in the image.

Does this include ‘an interactive 3d widget’ ? If I turn off the ‘Tube’ filter there is not much to see here…

No there is indeed not any 3d widget in your scene so this isn’t the problem … actually I’ve already seen this problem before but I thought it was a widget problem, you just demonstrated it is not !

Does this plane always appear or its apparation is random ? Do you have a reliable way of reproducing this error locally ?

This plane randomly appears within a sequence of pngs (generated as ‘save animation’ from a time series of data). It appears within about 10% of images. When it appears, sometimes only a random and small portion of it appears, as in the lower left corner region of the attached image:

Could this possibly due to the box or the timestep annotation text?

You could try to disable each item one by one and save your animation to check which one is causing the artefact. I’ve aready seen this bug but could not pinpoint its origin so if you have data that you can share and a process that reproduce the poblem we could open an issue on GitLab.

Also I cannot think of a workaround so far for this problem until we know where it comes from, sorry.

Also a few questions, so I can try to create a minimal setup that repoduce this bug :

  • Is it a custom build of ParaView or a release ? Please tell me which version (master, 5.9.1, etc)
  • Do you use MPI ? If yes how many ranks ?
  • Do you use pvserver, or do you just use the regular GUI ?
  • What is (more or less) the size of your scene in the RAM ? For your information you can have this information in the “Memory Inspecter” of ParaView
  • Is it a custom build of ParaView or a release ? Please tell me which version (master, 5.9.1, etc)

No, I was using prebuilt packages downloaded from paraview website. Both the gui version 5.9.1-MPI-Linux and the headless version osmesa-MPI-Linux packages show this error. This error may also appear in the gui window, before saving the sequence.

  • Do you use MPI ? If yes how many ranks ?

Not using MPI. The ‘Auto MPI’ option in gui settings is also turned off. multi-threading is enabled by default.

  • Do you use pvserver, or do you just use the regular GUI ?

I used both regular GUI and the headless pvbatch scripts. This error happens in both cases.

  • What is (more or less) the size of your scene in the RAM ? For your information you can have this information in the “Memory Inspecter” of ParaView

The snapshot I attached above takes 6.27GB of memory, shown by ‘memory inspector’.

The minimal scene I saw this error (not reproducible) involves the following steps:

  1. create a ‘Programmable Source: Double Helix’ as described by the paraview wiki: https://www.paraview.org/Wiki/Python_Programmable_Filter
  2. Apply ‘tube’ filter to the double helix, all parameters default
  3. add ‘camera orbiting’ from the ‘animation view’
  4. add ‘annotate Time Filter’

The most annoying part of this error is that it is very frequent but I cannot find a combination of scenes and operations to reliably reproduce it.
Does paraview support interfacing to some external ray tracing tools? I tried to export the scene to povray script but it didn’t work very well.

Thanks a lot for all these informations ! I will try to dig on this but yes the fact that it’s not determinist really is annoying.

Does paraview support interfacing to some external ray tracing tools?

You can change the backend for nVidia Index pathtracer but since the bindings are mostly the same I believe you’ll get the same bug. Also if you have no GPU then this is not an option.

Other than that ParaView does not interface to other ray tracing framework AFAIK. You can export your scene to glTf and open it in blender or an other software, but I’m unsure how complete the glTf exporter is. Anything I’m missing here @Dave_DeMarle ?

some follow-up:

With the latest 5.10 release this error seems to be fixed or alleviated. At least for the first long sequence I didn’t see the error as seen in the previous version 5.9.

Has anything changed in the ospray module between 5.10 and 5.9?

OSPray version was updated I believe.

That’s good to hear thanks for the follow-up !
Yes OSPray has been updated and they were some minor bugfixes as well but that shouldn’t have been related.

Also a note for the future : a big part of the OSPray integration has been rewritten (on master) and OSPray should be cleaner than ever in PV 5.11 :slight_smile: