Thats a major showstopper for us at the moment. Does anybody know how to reach the same rendering quality than in earlier versions, without that strange artifacts?
Line rendering implementation changed a bit from VTK 8.
Is the render window using multisampling window->SetMultiSamples(4)? Or did you enable FXAA on the renderer renderer->UseFXAAOn()? If not, can you try either of those?
I cannot use multi sampling cause of depth peeling. Multisampling in vtk is not save implemented - it leads to a lot of problems on different drivers. FXAA does not help, line rendering still broken.
I think this line artifacts and blurry unsharp rendering - which are everywhere in dense senes, are a major showstopper bug in vtk 9 which makes the whole framework unusable. Can I write a custom mapper for that or has anyone any suggestions?
I use FSAA, but these artifacts don’t appear in VTK 8. They do appear in VTK 9 when two lines are rendered on top of each other. The issue is independent of FSAA—the artifacts also occur with anti-aliasing disabled.
I have a hunch that the depth peeling code might not be working properly with the line rendering code. In any case, any tests to find the cause of the artifact should turn off FSAA and especially FXAA, because they’ll just make the artifact harder to identify.
If the artifact is most pronounced when lines cross, then a comparison is needed between rendering such crossing lines
with depth peeling off
with depth peeling on
with depth peeling on, but with the lines added to the render in the opposite order (e.g. upper line added first vs. lower line added first)
all the above with and without MSAA
Edit: actually, if the artifact is visible without MSAA, then there’s no need for a set of test renderings that use MSAA.
I was also negativelly surprised when I upgraded to VTK 9. FXAA (the default) is faster but some people don’t like its results, arguing about smear-like effects. The Skyrim game, for exemaple, is often criticized by some gamers because of the use of FXAA but innacuracies can be tolerated in games. The same can’t be said for technical applications. MSAA renders better, but requires a more powerful graphics cards. I ended up letting the anti-alias option to the user.
I had problems with picking and probing with MSAA, with incorrect world coordinates being returned on some systems.
As far as I understand, MSAA is still the default for VTK 9, not FXAA. Some aspects of the line rendering code changed with VTK 9, but the default antialiasing method did not.
Perhaps it would be good if VTK 9 had a 3rd antialiasing option consisting of the good old GL_LINE_SMOOTH and GL_POINT_SMOOTH (glEnable()). Medical and Earth Sciences (my case) could do with FXAA to void the issues with MSAA. However, those developing CAD-like applications with lots of flat lines and faces could greatly benefit from it. Super-sampling (expensive, but the nicest) could also be available.