Rhino BETA Feature: Direct3D Display

Hi Piotr -

Please post that file (or, if still reproducible, only those annotation text objects).

Thanks for sending the file.
RH-91767 Display: D3D: Text Hops on Selection

I used to see that here as well, but not in a quick test now. That might be file-specific, though.
I was able to reproduce that and will get it on the list.
RH-91756 Display: D3D: Incorrect Linetype Display

-wim

RH-91767 is fixed in Rhino WIP

RH-91756 is fixed in Rhino WIP

I just tried Rhino9 with Direct3D and found that Direct3D is far slower on viewport updates compared to OGL. I can switch back and forth the the FPS difference is quite noticeable. This is with a fairly old machine with a fairly out of date graphics card:

i5-7400 CPU with GTX 1060 graphics.

The scene I’m using is a 3D scanned mesh with some surfaces drawn over top. So, maybe the slowness might be because of the dense mesh from a 3D scanner. But, OpenGL handles it fine.

I don’t otherwise see any visual problems. It looks fine, it’s just a little slow. Not so slow that I couldn’t use it that way, just kind of choppy.

If you are willing to share your 3dm file, I would be happy to take a look and see what is going on. Our goal is to have D3D at least as fast if not faster than OpenGL on the same machine. That may not be possible in some cases since much of this depends on the GPU drivers, but we can try.

Also, switching back and forth between OpenGL and DirectX without restarting Rhino can and will show inconsistent (and inaccurate) numbers. The best thing to do is to restart Rhino right after you’ve switched engines, and then begin your tests.

-J

Is running two instances of Rhino, one in OpenGL and one in DirectX to do side by side comparisons a “bad” thing? (Will it affect performance, or are they acting like two completely separate programs, so if one is idle the other get’s all reasources?)
Only for testing stuff, I can’t see any other reason to do that though. Unless some users needs the OpenGL pipeline for some stuff, and otherwise want DirectX…

It shouldn’t be a bad thing. I need to check if this actually works. If it doesn’t work, we’ll fix that as I do think this is a good idea for testing.

Could I make the suggestion that the info about the graphics card visible when using OpenGL is not visible when using Direct3D.. This can be useful when more than one Graphics card is ‘available’ to the system (as in my case, where an eGPU is being used) and so woudl be helpful to see if possible ?

vs

The SystemInfo command provides more information about your GPUs than that dialog.

-J

yes sure.. but was an easy place to access the info without having to run systeminfo

In my experience, as of Rhino 9.0.26153.12415, dated 2026-06-02, Direct3D mode still delivers significantly lower FPS than OpenGL mode when working with relatively large point clouds.

I’m also finding that OpenGL in Rhino 8 still feels a bit smoother than OpenGL in Rhino 9. In some files, Direct3D in Rhino 9 is not yet smooth enough to be practical, while the same files remain absolutely workable in Rhino 8.

Is the goal for Direct3D performance with large point clouds to be roughly on par with OpenGL by the Rhino 9 release? I’d be happy to provide SystemInfo, FPS comparisons, or a sample file if that would be useful.

Yes, we would like to have everything work as fast if not faster on Direct3d than on OpenGL. This may not be the case for every GPU driver out there, but we’ll see. We haven’t focused on optimizations yet, but I’ll try to get something in to test specifically for point clouds today and we can see how it goes.

Next Tuesday’s WIP will have some optimizations in Direct 3d 11 aimed at point clouds. Let’s see how that does. I can always come back and see if anything else can be done to further improve in this area.

Thank you! I’ve been testing the latest WIP/Beta release, 9.0.26174.12303 from 2026-06-23, with point-cloud-heavy files.

In my experience, Direct3D performance is noticeably better than before. The same files that were previously too choppy to be practical are now usable.

That said, it still does not feel as smooth as Rhino 8 OpenGL on the same files. Rhino 8 remains smooth, while Rhino 9 Direct3D is improved but still somewhat choppy with large point clouds.

See UPD below.

I can confirm same experience. Same not too heavy file is much smoother to manipulate in V8 versus V9. Tried both Direct3D and OpenGL modes.

Upd. Hmm. Other computer works perfectly fine for this file. So I assume there is something about hardware. Old video driver or something. I’ll try to figure out.

I’d like to know whether there are any plans to further optimize Direct3D performance for large-scale scenes.

At the moment, Direct3D performs well on small- to medium-scale projects. However, with city-scale models (larger than 1 km), the viewport display quality degrades significantly.

With the surrounding city context turned off, surface edges are displayed correctly and the shadows remain sharp:

With the surrounding city context turned on, however, some surface edges disappear while others become abnormally thick. The sun shadows also become extremely jagged, making it impossible to produce usable images from the viewport:

Hi Zhuo -

It sounds like at least some of the things that you mention aren’t necessarily limited to Direct3D but are also an issue in viewport display that uses OpenGL and Metal.
That said, we are always interested in getting real use cases where it becomes difficult to work in Rhino. Please upload the 3dm file from https://www.rhino3d.com/upload with a link to this thread.
-wim

We’re always looking for new ways to speed up the display on all GPU technologies. As Wim mentioned often the best way for us to make improvements is to work with models for real projects to see where things slow down.

Thank you for your report. I have logged this issue with our development engineers.

RH-98334 Rendering: The shadow quality of objects in a large scene is poor