Hi Ovito people,
with the Anari renderer, I was able to render coordination polyhedra
a while ago.Checking up on this again I found it doesn’t currently work
on a Nvidia MX250 (Laptop) and also not on an older GTX980. It
worked in the past on a RTX 3060 12GB.
Is there currently a problem with the Anari renderer in the ovito-python module
or does the renderer require a minimal CUDA capability? If so, maybe there
can be a warning message to stderr when trying to invoke the renderer?
For now, I can’t render anything because my CPU is too slow for osprey
and the Anari won’t like my hardware. It works but renders only single color
circles and no polyhedra on the hardware I mentioned.
Thanks for your support and for your work on the great Ovito software!
Let me think about what could be responsible for this. Yes, we have recently updated the tool chain we use for building the OVITO Python module on different platforms (e.g. the CUDA toolkit). Since you’ve mentioned stderr, I assume this question is about Linux, not Windows, right?
Thanks for your response.
Sorry for being not clear enough. Its on Windows 10 with current Nvidia drivers. The stderr = ‘old C programmer’. Also, current ovito python module version (today).
On sunday night, I’ll be able to test it with a RTX 5060Ti/16. Maybe then?
Thanks for the clarification. I’ll check what tool chain we use on Windows and get back to you.
We generally create device code for all CUDA architectures. So, in principle, VisRTX should also work on older Nvidia hardware.
Are you saying that VisRTX (AnariRenderer class) only seems render certain kinds of geometry (e.g. spheres) while others, such as meshes, are missing from the rendered images on the systems affected by the problem without showing any other indication of error? If this is the case, it would be quite surprising and we should ask the developers of Nvidia VisRTX for advice.
And I need one more clarification: Do you have the PyPI version or the Conda version of the OVITO Python module installed (pip install
or conda install
)?
I’m asking because the Conda version is built in a completely different way, in particular, with a different CUDA toolkit.
Hi, it’s an almost standard Python 3.12.4 (WinPython, actually), everything installed with pip. BTW, it worked flawlessly a few month ago on a RTX3060/12, resulted in almost identical image compared to Osprey (with a scene of >5000 atoms and >2000 transparent polyhedra).
But maybe maybe … Today late evening I’ll test it on a 5060Ti/16. We’ll see …
Yes, let’s see if a new hardware model solves the problem. But please take note of your current NVIDIA driver version. I would expect the driver to have an even greater influence than the hardware architecture.
I have tested the current OVITO Python module 3.12.2 for Windows myself to be sure. With an NVIDIA GeForce GTX 1650 Ti and NVIDIA driver version 555.99, I was able to render a correct image of a structure with coordination polyhedra.
Ohh, I tested again on a (very slow) Laptop w/MX250. I changed in my code:
anari = AnariRenderer(
ambient_light_radiance = 2.5,
ambient_occlusion_distance = 24,
ambient_occlusion_samples = 16,
denoising_enabled = True,
direct_light_irradiance = 4,
direct_light_latitude = np.deg2rad(75.0),
direct_light_longitude = np.deg2rad(13.0),
samples_per_pixel = 24,
)
to
anari = AnariRenderer(
# ambient_light_radiance = 2.5,
# ambient_occlusion_distance = 24,
# ambient_occlusion_samples = 16,
# denoising_enabled = True,
# direct_light_irradiance = 4,
# direct_light_latitude = np.deg2rad(75.0),
# direct_light_longitude = np.deg2rad(13.0),
# samples_per_pixel = 24,
)
and, after about 15 min (!) on this GPU, I get the FIRST correct image that appears to be defined by the standard settings. Nvidia driver version is 576.28.
So I guess some of the “old” options I used did not work with the current hardware/driver or anari version?
Thanks for your help!
Interesting. These settings have a strong influence on the lighting, but none of them should completely prevent the rendering of surface meshes (coordination polyhedra). Here’s a comparison between the default AnariRenderer settings and yours for my test scene:


The coordination polyhedra appear overexposed with your settings, but they are still there.
The 15 minutes are unsually long, yes. The first time you render an image, VisRTX compiles its OptiX shaders for your GPU architecture. This process can take several minutes on older systems in my experience. But the compiled shaders get cached on disk and subsequent renders should be very fast (seconds or fractions of a second), at least for typical scenes.
Hi Alexander,
than you for your continued support. Ok, now I put the 5060Ti/16 into my old 9900K box and
everything works well. The new card generates my scene correctly and uses about 1 sec per
frame (for 5.5K atoms with about 2.8K transparent tetrahedrons). The card does not feel much strain, temperature is low, but nvidia-smi reports 100% “volatile GPU util”.
The “overexposure thing” was something I had to change in past versions because
sometimes the values of
ambient_light_radiance = 1.1,
direct_light_irradiance = .4,
were interpreted differently (so I had to figure out how to set them).
The same computer with GTX980/4GB crashes at > 3000 atoms, Anari renderer throws an error as it should (cryptic, does not say “memory too low” or similar. Sorry, I can’t reproduce it because the old card went somewhere else). With default options for Anari, the frames (with lower atom count) look OK on the GTX980 until it crashes on higher atom counts.
My laptop i5/10510U with MX250 renders the full scene with 30 min (!) calculation (on the MX250, I checked) without errors. So everything is where it should be.
Thanks for letting me know. We’ll discuss these observations in our next meeting with the NVIDIA folks.