Rhino 9 for Windows is switching from OpenGL to Direct3D as the primary GPU accelerated display technology.
What is Direct3D?
Direct3D is Microsoft’s technology for communicating with the GPU to draw 2D and 3D scenes. It is an alternative to OpenGL.
Why is Rhino switching to Direct3D?
Stability
The primary reason for switching to Direct3D is stability. McNeel technical support has had to deal with many OpenGL driver issues over the years. This has been bad enough that the reason we can’t support Windows ARM or virtualization systems like Parallels or VMWare is because the OpenGL drivers on those systems were very problematic for Rhino’s display architecture and would often crash. Our hope is that by switching to Direct3D we now support these systems. Windows ARM laptops have become very prevalent this last year and we need to support them.
Performance
Our hope is that systems will see an improvement in performance on Direct3D over OpenGL. This is something we’ll have to wait and see. Some drivers are just better than others and individual systems will likely have performance differences between Direct3D and OpenGL
How do I try this out?
Rhino 9 now has a GPU options page which replaces the old OpenGL options page. Switch the GPU technology from OpenGL to Direct3D as shown below. There is also a “show label” checkbox that is useful to help you see which technology is being used. There is also a TestDirect3D command that you can use to toggle between OpenGL and Direct3D. NOTE: it is recommended to restart Rhino when switching GPU technologies.
Rhino 9 is not dropping OpenGL support and you are welcome to use OpenGL if you find that it works better on your system than Direct3D or that you have a plug-in which requires OpenGL. We would like to hear from you to understand why you are sticking with OpenGL so we can improve our Direct3D support. Our plan is to keep OpenGL as the default GPU technology for the time being. Once we have enough functionality in place with Direct3D we will switch the default over to Direct3D.
I notice from subsequent posts here that Systeminfo still lists OpenGL info instead of Direct3D info even when apparently Direct3D is selected. Shouldn’t it also show which mode is in operation and details about the Direct3D driver?
Presumably all the information required is there…the driver date and (DX 11)…
That this move is largely about compatibility with ARM is interesting…illustration that there have got to be more developers working on making games with Direct3D then there are even USERS of OpenGL 3D CAD.
Well after 45 seconds the only glaring issue is that there is no feedback when dragging around the viewport boundaries. Also my shadow-only ground plane is black in the Rendered view mode, seems fine in Monochrome.
Rhino 9 SR0 2025-7-1 (Rhino WIP, 9.0.25182.12305, Git hash:master @ 155a98b900cf48b90ae8255b9420c4f28e1b7ac7)
License type: Not For Resale Lab, build 2025-07-01
License details: Cloud Zoo
Expires on: 2025-08-15
Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 64GB)
.NET 9.0.7
Computer platform: DESKTOP
Standard graphics configuration using DirectX
Primary display: NVIDIA GeForce RTX 3090 (NVidia) Memory: 24GB, Driver date: 6-24-2025 (M-D-Y). DirectX(11)
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
- Secondary monitor attached to adapter port #1
Secondary graphics devices.
Intel(R) UHD Graphics 770 (Intel) Memory: 2GB, Driver date: 6-21-2025 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- There are no monitors attached to this device!
Microsoft Basic Render Driver (Microsoft) Memory: 32GB, Driver date: 0-0-0 (M-D-Y).
> Software simulation device with 0 adapter port(s)
- There are no monitors attached to this device!
DirectX Settings
Safe mode: Off
Rhino plugins that do not ship with Rhino
C:\Program Files\Bongo 2.0 (64-bit)\BongoUI.20.v60.rhp “BongoUI20v60”
C:\Program Files\Rhino 9 WIP\Plug-ins\UpdatesAndStatistics\UpdatesAndStatistics.rhp “UpdatesAndStatistics” 9.0.25182.12305
C:\Program Files\Bongo 2.0 (64-bit)\Rhino6\Bongo.20.rhp “Bongo 2.0”
C:\Users\JamesCarruthers\AppData\Roaming\McNeel\Rhinoceros\packages\9.0\SubstanceImporter\2.0.7\Substance.Win.rhp “SubstanceImporter” 2.0.7.0
C:\Program Files\Rhino 9 WIP\Plug-ins\ConstraintsUI.rhp “Constraints UI” 9.0.25182.12305
ARM is definitely one reason. The OpenGL drivers on ARM completely lock up the laptops when trying to run Rhino. There are also a lot of problematic GPUs out there that are difficult to support with OpenGL.
We also think we can get our Direct3D code to be much more performant than OpenGL. On my tests so far; wireframe and shaded modes are much faster on Direct3D
Hallelujah! OpenGL deserved its retirement years ago! Blender dropping it for Vulkan and Rhino dropping it for D3D is just great news! Can’t wait to give it a go!
I’m running Rhino on a virtual machine (VMWare Workstation on a Linux host). Anti-aliasing now works under Direct3D, it does not using OpenGL.
Have not noticed any adverse affects other than the display-modes “Artistic” and “Pen” no longer properly working using Direct3D, they seem to not delete the old display when rotating the perspective in the view-port.
I value anti-aliasing higher than fancy display modes - so this seems to be an improvement , thank you !
Jeremy is correct. There are several versions of Direct3D installed with Windows and 12 is the most recent version. We are targeting Direct3D 11 in Rhino 9 because it has all of the features we currently need and there are older systems we want to support that do not support Direct3D 12 (there are still a lot of Intel 4000 GPUs out there.)
We can always add support for Direct3D 12 in the future if and when we find a need for it.
That really depends on what the goals are. If you want to support all GPUs running on Windows, then Direct3d is better. If you want to have code that can potentially run on different operating systems, then Vulkan is better. There is also the fact that all Vulkan drivers that I have seen on Windows ARM so far are actually just a layer of extra code on top of Direct3D.