I am visualizing lines loaded from
vtu files as tubes and I don’t succeed at controlling their diameters.
The diameter somehow varies from file to file even though the display settings are the same.
This is super weird and annoying.
I tested Paraview 5.7.0, 5.8.0 and 5.8.1.
The issue is observed with OSPRay raycaster and OSPRay pathtracer; when disabling Ray Tracing all lines have the same width.
Am I missing a setting?
Is it a known bug?
Is there a workaround?
Here are the sample files and a state file (Paraview 5.8.0) illustrating the issue:
collision_dry_distances_000012.vtu (844 Bytes)
collision_dry_distances_000013.vtu (844 Bytes)
state.pvsm (246.6 KB)
I am pretty sure now that the diameter scales with the total length of all line segments. This can easily be demonstrated by applying a transform filter:
So … where can I assign the absolute, exact tube diameter?
Similarly, the diameter of arrow glyphs depends on their length.
Not being able to specify the actual diameter of these tubes makes it impossible to render network-like structures, … think of a spider web.
This is a known bug. As you have surmised, the point=>sphere and line=>cylinder radius for the ray tracers is, by default, set via a function of the object’s bounding box and the vtkProperty.pointsize/linewidth control. A workaround for you might be to use the “Scale Array” control, which lets you choose a point aligned array to set the radius at each point, but the weird way that goes through a lookup table, may be problematic.
I’ve started on a fix here.
@bastian - as described over on this post the merge request is now going through review. I expect it to appear in 5.9.rc1 in a week or two.
@Dave_DeMarle Awesome! I will wait for it to be released then and mark this thread as solved once that is the case.
Thanks a bunch for your work.
It looks like this feature has not made it into ParaView yet ,
yet it would be such an improvement!
To underline why it would be really helpful to be able to precisely assign line/tube diameters consider a viualization of wireframes. Let me give you an example:
So I set up a state for the visualization of 8 falling rings:
Looks good to me. However, using the exact same state for 24 falling rings of which each is identical to the eight above is less pleasing to my eyes:
But even the line widths of the eight rings look thicker later in time and I have no clue why:
For the visualization of e.g. arrows it’s a good thing to have the tubes scale with length, but in case of wireframes I don’t think it is.
Ahh never mind I must have been blind! There is “Each Exact” now. Will check it out!
@Dave_DeMarle - “Each exact” does not seem to work for wireframes. It has my CPU go crazy until I eventually shut down the non-responding ParaView instance.
Here is a video demonstrating the issue: