RenderPointsAsSpheresOn vertice doesn't show

Hi all

I am facing a problem on a new computer.
In my application I highlight the node selection using a dedicated actor where I put :
GetProperty().SetPointSize(10.0)
and
GetProperty().RenderPointsAsSpheresOn()

But on my new computer (which uses the internal graphic of an AMD Ryzen 5600G) the vertices doesn’t show at all.
If I delete the RenderPointsAsSpheresOn then it works and if I try with a mesa opengl32.dll it also works.
It seems to be an opengl related problem but do you have any idea on how to solve it?

I already checked that I well have latest graphic drivers.
My application is coded in python using pyside2 and a QVTKRenderWindowInteractor.

Thanks in advance for any help

Hello,

What is rendered instead of spheres?

best,

PC

Hi,
Just nothing is shown, like there : QVTKOpenGLWidget: Vertices disappear when RenderPointsAsSpheresON()

Try using QVTKOpenGLNativeWidget instead of QVTKOpenGLWidget.

Thanks for your answer,
unless there is something I don"t understand I don’t use any QVTKOpenGLWidget, I use a QVTKRenderWindowInteractor

Do you get spheres elsewhere? I mean, try to run the code in another hardware. It is also possible that it is a graphics card driver bug. So, make sure you have the latest version installed.

Unfortunately, QVTKRenderWindowInteractor doesn’t seem to have a way to set surface format (if it is using the OpenGL backend) which would be a solution according to QVTKOpenGLWidget: Vertices disappear when RenderPointsAsSpheresON().

Perhaps you could take this issue to developers of QVTKRenderWindowInteractor, since there is a solution to your issue in the C++ API.

Hi,
The behavior is correct on all other computers I have tested, I already checked that I use the latest graphic drivers :-/ I can imagine some opengl problems on old computers but mine is really recent.
I managed to make something that works by using a vtkGlyph3D and a vtkSphereSource but this is less efficient when selecting a large amount of nodes. Especially if I want spheres to keep a constant screen size I added a SetScaleFactor(self.camera.GetParallelScale()) in RenderEvent which become really slow if a lot of spheres are displayed.

So the issue occurs in your computer, right? If this is the case, you should contact the graphics card vendor and report a bug in their driver.

I’ve seen the same problem on 3 different machines (a very new OSX and Windows).
Also others reported about it in vedo.

I also suggest taking a look here: [vtkusers] VTK7.1: render points as spheres does not work when coloring by cell data and check whether that solution applies:

In the example that I send before, the sphere has a double array added to
the cell data and set as the active scalar. The mapper is set to
ScalarModeToUseCellData. On the property of the actor both
RenderLinesAsTubesOn and RenderPointsAsSpheresOn are set. However, only the
tubes are shown, the spheres for the vertices are not.

If I comment out line 36

sphereSource->GetOutput()->GetCellData()->SetActiveScalars(“doubleValues”);

then both tubes and vertex spheres are shown, but of course the cells are
not colored by their data array.

It’s from old VTK 7.1, but it could be a bug that is back.

I don’t know if this is relevant. I raised an issue with sphere rendering 6 years ago.

https://vtk.org/pipermail/vtk-developers/2018-June/036204.html

Hi, is there an update on this issue? I have Thinkpad with Radeon 15E7 graphics (Ryzen 7730U), latest FW 24.7.1, opengl api 4.6 and I have the same problem. Just simple app showing a dot shows nothing when RenderPointsAsSpheres = True, no error produced.
On many other laptops and PC it is working without any problems so it’s probably radeon related.

Any ideas for solution? Using vtkSphereSource is possible but super slow for large number of points and other proposed solutions does not work.